[support] UMIP: Disappearing packets ???
Arnaud Ebalard
arno at natisbad.org
Thu May 14 22:56:02 JST 2009
Hi,
Mattias Blomqvist <mattias.blomqvist at gmail.com> writes:
> The setup on the MN was the following after starting mip6d.
> ip6tnl1<->outgoing interface (XX)<->.....<->HA
> ip6tnl1 had a MTU of 1280.
> interface XX had a MTU of 1280. (TUN/TAP interface in tun mode)
ok, had forgotten the tunnel iface was on you mn.
> The middle box did not send packet too big since the packets never
> left the MN.
>
> There were no fragmentation of IPv6 packets. That means that ip6tnl1
> accepted an IPv6 packet of size 1280, added the outer IPv6 header
> resulting in a size of 1320. But the kernel didn't send this to
> interface XX since it has a MTU of 1280. Setting the MTU of XX to 1320
> solved the problem.
>
> So much for getting the packets to actually leave the MN.
>
> If a router on the way report a packet too big with an MTU of 1280, as
> far as I can tell it would end up in ip6_tnl_err here:
> http://lxr.linux.no/linux+v2.6.29/net/ipv6/ip6_tunnel.c#L387
> But the PMTU will never be set below 1280 which means the ip6tnl1
> interface will always accept packets of size 1280, encapsulate them
> and send them on their way with size 1320.
>
> I don't know if the linux kernel doesn't fragment as is required by
> RFC 2473 (see chapter 7.1(b)) or if mip6d sets up the ip6tnl interface
> in such a way that it doesn't fragment?
Well, rereading the document, in your specific case and in theory, the
tunnel XX is the one that should send the ICMPv6 packet too big to the
ip6tnl iface. Then the ip6tnl iface should update associated pmtu and
fragment packets that are over that value once encapsulated. Well, in
theory.
I don't have much time to look at the code but this is an interesting
question. Note that I initially had the same kind of issue when using
miredo as my connection mean for umip. My /etc/miredo/client-hook now
has a forced MTU of 1400.
> mip6d sets IP6_TNL_F_IGN_ENCAP_LIMIT on the tunnel. Anything to do
> with this?
I don't have the time to look at what ip6ip6_tnl_xmit() and
ip6_tnl_xmit2() will do with it
( http://lxr.mstier.de/linux/source/net/ipv6/ip6_tunnel.c#1018 )
Cheers,
a+
More information about the Support
mailing list