No menu items!
No menu items!
More

    Cách đặt IP sử dụng dải Link-Local trên Ubuntu

    Ubuntu và Linux nói chung có cơ chế đặc biệt đối với địa chỉ 169.254.x.x, vì đây là dải Link-Local theo chuẩn RFC 3927. Khi bạn cố gán địa chỉ 169.254.x.x, hệ thống mạng (Netplan, systemd-networkd, hoặc NetworkManager) có thể chặn hoặc ghi đè nó.

    Hãy thử đặt IP thủ công bằng lệnh này.

    ip addr add 169.254.170.2/24 dev bond0.22

    Kiểm tra lại:

    ip addr show bond0.22

    Nếu lệnh này hoạt động, có thể Netplan hoặc systemd đang chặn. Bạn có thể ép Netplan không can thiệp bằng networkd bằng các thao tác sau.

    Tắt chế độ Link-Local trên interface

    Linux tự động cấu hình địa chỉ 169.254.x.x nếu không có DHCP. Bạn cần vô hiệu hóa cơ chế này trước khi gán IP thủ công theo các bước sau:

    Vô hiệu hóa IPv4LL trong systemd-networkd

    Nếu Ubuntu dùng systemd-networkd, bạn có thể thử tắt IPv4 Link-Local:

    Tạo file config networkd /etc/systemd/network/99-bond0.22.network và thêm nội dung sau:

    cat > /etc/systemd/network/99-bond0.22.network << 'OEF'
    [Match]
    Name=bond0.22
    
    [Network]
    LinkLocalAddressing=no
    OEF

    Áp dụng thay đổi:

    systemctl restart systemd-networkd

    Mở file Netplan (/etc/netplan/01-netcfg.yaml) và thêm dòng link-local: [] vào bond0.22:

      vlans:
        bond0.22:
          addresses:
          - 169.254.170.2/24
          id: 22
          link: bond0
          link-local: []

    link-local: [] sẽ tắt tự động gán IP 169.254.x.x, cho phép bạn đặt IP theo ý muốn. Áp dụng thay đổi:

    netplan apply

    Sau khi chạy Netplan, kiểm tra:

    ip addr show bond0.22
    

    Nếu không có địa chỉ 169.254.170.2, kiểm tra lệnh:

    ip route
    

    Kiểm tra log Netplan & systemd-networkd nếu còn lỗi.

    journalctl -xeu systemd-networkd | grep bond0.22

    Bạn có thể sử dụng một số cách khác nếu cách trên thất bại như sau:

    Chặn link-local IPv4 trên interface.

    Thêm nội dung sau vào file config sysctl:

    cat > /etc/sysctl.conf << 'OEF'
    net.ipv4.conf.all.accept_local = 0
    net.ipv4.conf.all.arp_ignore = 2
    net.ipv4.conf.all.arp_announce = 2
    OEF
    
    sysctl -p

    Chặn link-local IPv4 bằng kernel parameter (nếu cần)

    Nếu bạn muốn ngăn chặn hoàn toàn địa chỉ 169.254.x.x, thêm tham số sau vào dòng khởi động của kernel trong file /etc/default/grub.

    ipv4.conf.all.promote_secondaries=0

    Mở file /etc/default/grub và tìm dòng.

    GRUB_CMDLINE_LINUX=""

    Sửa thành.

    GRUB_CMDLINE_LINUX="ipv4.conf.all.promote_secondaries=0"

    Sau đó cập nhật GRUB:

    sudo update-grub
    sudo reboot

    Chúc các bạn thành công.

    Bài viết gần đây

    spot_img

    Related Stories

    Leave A Reply

    Please enter your comment!
    Please enter your name here

    Đăng ký nhận thông tin bài viết qua email