Subject: Re: kern/9387: Forwarding loop on down interfaces
To: None <tech-net@netbsd.org>
From: None <itojun@iijlab.net>
List: tech-net
Date: 02/11/2000 03:57:16
>>Number: 9387
>>Category: kern
>>Synopsis: Forwarding loop on down interfaces
This one is quite serious IMHO. I think it needs to go into 1.4.2.
4.4BSD accepted packets to address on !IFF_UP interfaces.
For example, you can ping 10.1.1.1 in the following scenario
with 4.4BSD.
# ifconfig lo1 10.1.1.1
# ping 10.1.1.1 <--- works as expected
# ifconfig lo0 down
# ping 10.1.1.1 <--- still works
{free,open}bsd still behave like this.
In early 1999 netbsd changed behavior to not to accept it. however,
the code does not drop it so it will go into ip_forwarding.
ip_forwarding would send it to loopback, then the packet comes back
in with ttl -= 1. we'll see the loop until ttl goes to 0.
What is the right behavior here?
1. revert to traditional 4.4BSD behavior. accept packets to
address on !IFF_UP interface. (people who likes weak model will
like the behavior)
2. silently discard it
3. try to send icmp error only once (note that it may not be able to
go out the node, and it may come back to itself via loopback)
Tomio's patch achieves this.
I'm in favor of 3 at this moment, but I'm not sure if I'm thinking
correctly - so I need your second opinion.
itojun