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