Today I needed to disable the so called zeroconf route. You may observed that in your routing table you have a route for the network 169.254.0.0/16.
# ip route
.......
169.254.0.0/16 dev eth2 scope link metric 1002
169.254.0.0/16 dev eth0 scope link metric 1003
169.254.0.0/16 dev eth1 scope link metric 1004
169.254.0.0/16 dev eth3 scope link metric 1005
default via ..........
..............
To disable it, in a RedHat-like system (Fedora) I just edited the file/etc/sysconfig/network
and I added the line:
NOZEROCONF=yes
via http://techie.yellowgnu.net/disable-zeroconf-route/
———————————————————————————————–
Zero Configuration Network (ZEROCONF)
Most Linux distributions utilise the Zero Configuration Network (ZEROCONF) automation suite. This is an IETF workgroup that planned and coordinated a series of dynamic configuration protocols to allow many operating systems to automatically configure themselves and communicate on a network without the need of DHCP or DNS servers. ZEROCONF utilises the 169.254.0.0/16 network address to autoconfigure using a series of unanswered “ARP” queries and then assumes an address if the queries yield an empty result.
A route to the ZEROCONF network is added to the routing table by the network initscripts.
[bash]# route -n |
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.214.64.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 <– ZEROCONF default IP route 0.0.0.0 10.214.64.254 0.0.0.0 UG 0 0 0 eth0 |
ZEROCONF can be turned off by adding the following entry to the “/etc/sysconfig/network” configuration file.
[bash]# nano /etc/sysconfig/network |
NOZEROCONF=yes |
The value for the “NOZEROCONF” parameter can actually be set to any value, the initscripts only check to determine whether the parameter has zero length. So setting “NOZEROCONF=no” will have the same effect as setting it to “yes”. You will need to comment or remove the variable to reactive ZEROCONF. |
The networking service will need to be restarted before the changes will take effect.
[bash]# /etc/init.d/network restart |
Checking the network routing table again will identify the ZEROCONF route has been disabled and removed from the routing table.
[bash]# route -n |
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.214.64.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 0.0.0.0 10.214.64.254 0.0.0.0 UG 0 0 0 eth0 |
ZEROCONF is also commonly referred to as IPv4 Link-Local (IPv4LL) and Automatic Private IP Addressing (APIPA).