Subject: Re: route6d feature or bug?
To: None <>
From: None <>
List: current-users
Date: 09/30/1999 00:08:45
>[  zila  ]                       [ server6 ]
>    |                                |
>    |                                |
>    |<=====IPv4 over IPv6 tunnel====>|
>    |                                |
>    <--------IPv6 Ethernetworks------>   (i.e. zila and server6 are not on same link)

>> 	If you receive route update over IPv6 over IPv4 tunnel, that will
>> 	be put onto IPv6 routing table as a route over the tunnel.  This is
>> 	what route6d is for.
>What I saw, was that all routes in the IPv6 routing table changed from
>pointing over the ex0 interface, to the gif0 interface. So, zila tried
>to send (native) IPv6 traffic over the IPv4 over IPv6 tunnel, instead
>of routing the IPv6 traffic directly over the ex0 interface. At least
>that's what i believe happened. At the time I wasn't very eager to
>reproduce the problem. I had to kill route6d, flush the routing table
>and restart it with `-N gif0'.

	Hmm, now I see the problem.

	If you configure IPv4 addresses as physical (outer) address, you are
	configuring it as IPv6 over IPv6 tunnel, as it has IPv6 link-local
	address as logical (inner) address.

	If you configure like below:
	- IPv6 address as physical (outer) address
	- and IPv4 address as logical (inner) address
>95 zila:~> gifconfig gif0
>gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
>        inet6 fe80:5::250:4ff:feec:b1fa  prefixlen 64 		<---this one
>        inet --> netmask 0xffffff00 
>        physical address inet6 3ffe:2a00:100:3004:250:4ff:feec:b1fa --> 3ffe:2a00:100:3001::2
	you are creating IPv4/6 over IPv6 tunnel, as it has both IPv4 and
	IPv6 address as its inner address (notice inner link-local address).
	Inner can be both protocol families.

	RIPng protocol works with link-local addresses, so ripng would run
	on this interface as it can carry IPv6 packet encapsulated into IPv6

	This looks much like caused by a feature for gif interface (that it
	will have inner IPv6 address automatically), not the behavior of

	If you need to disable IPv6 packets to be used as inner, you shold:
	- manually remove inner IPv6 address by using:
		ifconfig gif0 inet6 fe80:xxx -alias
	- or, disable ripng on gif0, by route6d -N gif0.