[PATCH 3/7 net-2.6.25] [IPV4]: Prohibit assignment of 0.0.0.0
as interface address.
Denis V. Lunev
den at sw.ru
Fri Jan 25 07:12:41 PST 2008
Daniel Lezcano wrote:
> Denis V. Lunev wrote:
>> Daniel Lezcano wrote:
>>> Denis V. Lunev wrote:
>>>> I could hardly imagine why sombady needs to assign 0.0.0.0 as an
>>>> address or interface destination address. The kernel will behave in a
>>>> way in several places if this is possible, as ifa_local != 0 is
>>>> as initialized/non-initialized state of the ifa.
>>> AFAICS, we should be able to set at an interface address to 0.0.0.0, in
>>> order to remove an IP address from an interface and keep this one up.
>>> I see two trivial cases:
>>> * remove the ipv4 on an interface but continue to use it through ipv6
>>> * move ipv4 address from the interface to an attached bridge
>> For this case there is an IOCTL/netlink "remove IP address".
> And I forgot to mention the general broadcast.
> This is need for the dhcp protocol. If you are not able to set your
> interface to 0.0.0.0, you will be not able to send a 255.255.255.255
> broadcast message to have your IP address.
OK. Dave, pls disregard this patch. I suspect that others in the set
should not intersect with this one.
To summarize the discussion:
there is the only reason for this assignment: old IOCTL interface does
not have a way to remove IP address except this, though netlink has a
method for it that's why I am a little bit confused :)
This is handled in the __inet_insert_ifa: ifa is just removed there and,
correctly, ifa with 0.0.0.0 address can't exists in the kernel.
More information about the Containers