Đã bao giờ bạn để ý trong bảng định tuyến (routing table) của hệ thống Linux có một route là “169.254.0.0/16” hay không ? Nếu có thì nó là gì ? và có thể tắt việc hệ thống tự add route đó vào bảng định tuyến Linux hay không ? Hôm nay chúng ta sẽ tìm hiểu cách để tắt route ZEROCONF – 169.254.0.0/16 route.
Route 169.254.0.0/16 là gì?
Nó có tên gọi là ZEROCONF route , theo định nghĩa của Wiki tại đây : https://en.wikipedia.org/wiki/Zero-configuration_networking . Thì ZEROCONF sử dụng cơ chế APIA.
APIA, từ viết tắt của Automatic Private IP Addressing, tức là cơ chế đánh địa chỉ riêng tự động. Với APIA, các máy trạm DHCP có thể tự cấu hình cho chính nó một địa chỉ IP và một subnet mask khi máy chủ DHCP gặp sự cố, hoặc cho trường hợp máy chủ không tồn tại trên mạng. Khi một máy trạm DHCP khởi động lên, đầu tiên nó tìm kiếm một máy chủ DHCP để có thể nhận lấy một địa chỉ IP và subnet mask từ đó.
Nếu máy trạm không thể tìm kiếm được các thông tin này, nó sử dụng chức năng APIPA để tự động cấu hình chính nó với một địa chỉ IP trong khoảng địa chỉ dành riêng cho Microsoft. Khoảng địa chỉ này là từ 169.254.0.1 cho tới 169.254.255.254. Máy trạm cũng tự cấu hình subnet mask của nó là subnet mask mặc định của địa chỉ lớp B là 255.255.0.0. Một máy trạm sẽ sử dụng các cấu hình này cho đến khi phát hiện máy chủ DHCP và lấy được cấu hình thay thế.
Vậy route “169.254.0.0/16” được sản sinh ra từ hoạt động của APIA. Thường trên Linux, đôi khi mỗi lần hệ thống boot lên thì route ZEROCONF sẽ tự kích hoạt và add vảo định tuyến route nếu có hoạt động DHCP. Có khi cũng chẳng cần DHCP mà nó cũng tự add vào nữa mới hay.
Một số output về route ZEROCONF , sử dụng lệnh IP và lệnh ROUTE trên Linux:
# ip route 169.254.0.0/16 dev eth0 scope link metric 1002 default via 192.168.0.1 dev eth0
# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
Làm sao để disable route ZEROCONF
Để tắt hoạt động add route ZEROCONF và bảng định tuyến của Linux thì ta cần chỉnh sửa file /etc/sysconfig/network với nội dung như sau .
# vi /etc/sysconfig/network NOZEROCONF=yes
Hãy thêm nội dung cấu hình “NOZEROCONF=yes” vào file trên và restart lại network.
+ CentOS 6
# service network restart
+ CentOS 7
# systemctl restart network
Sau đó bạn kiểm tra lại thông tin bảng định tuyến route sẽ thấy mất đi.
# ip route default via 192.168.0.1 dev eth0
# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
Như vậy bạn đã biết cách tắt route ZEROCONF được thêm vào bảng định tuyến trên Linux rồi.