[nsp] ICMP: time exceeded (reassembly)
Victor Sudakov
sudakov at sibptus.tomsk.ru
Wed Feb 4 01:09:39 EST 2004
Dmitry Volkov wrote:
> Usually router doesn't do fragmentation of TCP because vast majority of any
> type of hosts send packets with DF bit =1
> and it's end-hosts duties to do frag/defrag
> What traffic did You send through tunnel ? ICMP, UDP ?
Does it make any difference? As already stated, the tunnel carrier
packets are being fragmented, not the tunnel payload.
> In this case router
> will do frag/defrag and as Tim said there is high probability that fragments
> were stopped in between on the way from sender to receiver.
> I don't understand how changing of encapsulation from GRE to IPIP would stop
> frag/defrag.
Neither do I.
> If changing encaps stops generating ICMP 11 1 - I would assume that
> reassembly happens successfully - and probably software bug on router ?
Perhaps in the case of IPIP there is no fragmentation and therefore no
reassembly at all. This may be a bug in the FreeBSD 5.x gre
implementation, but this should be further investigated.
> However IP MTU for IPIP is 1480 and for GRE 1476
>
> Dmitry
>
>
> > -----Original Message-----
> > From: cisco-nsp-bounces at puck.nether.net
> > [mailto:cisco-nsp-bounces at puck.nether.net]On Behalf Of Victor Sudakov
> > Sent: Tuesday, February 03, 2004 1:29 AM
> > To: Bulger, Tim
> > Cc: cisco-nsp at puck.nether.net
> > Subject: Re: [nsp] ICMP: time exceeded (reassembly)
> >
> >
> > Bulger, Tim wrote:
> > > The router sends ICMP messages because for the tunnel
> > packets, it acts
> > > as a host.
> >
> > I see. This means that the outer tunnel packets are being fragmented,
> > not the payload packets. Thanks for the hint.
> >
> > > It only acts as a router for the tunnel payload. If the MTU
> > > of your tunnel interfaces is 1476, there should be no
> > fragmentation of
> >
> > Tunnel5 is up, line protocol is up
> > Hardware is Tunnel
> > Description: test
> > Internet address is 212.73.125.5/30
> > MTU 1514 bytes, BW 9 Kbit, DLY 500000 usec,
> > reliability 255/255, txload 1/255, rxload 1/255
> > Encapsulation TUNNEL, loopback not set
> >
> > The default seems to be MTU 1514 bytes, while "ip mtu" is certainly
> > 1476 (also default).
> >
> > > the tunnel packets themselves unless an interface on the
> > path between
> > > endpoints has a lower MTU than your endpoints. It is quite possible
> > > that a firewall or ACL (more likely) is blocking those fragments,
> > > resulting in reassembly timeouts.
> >
> > It is important to understand why those packets get fragmented at all.
> > When we changed tunnel mode from GRE to IPIP, the tunnel started
> > working fine and there was no fragmentation.
> >
> > >
> > > Good luck,
> > > Tim
> > >
> > > -----Original Message-----
> > > From: Victor Sudakov [mailto:sudakov at sibptus.tomsk.ru]
> > > Sent: Monday, February 02, 2004 8:50 PM
> > > To: cisco-nsp at puck.nether.net
> > > Subject: [nsp] ICMP: time exceeded (reassembly)
> > >
> > > Colleagues,
> > >
> > > A GRE tunnel is configured between a Cisco router and a
> > FreeBSD host.
> > > The config on the router is:
> > >
> > > !
> > > interface Tunnel5
> > > description test
> > > ip address 212.73.125.5 255.255.255.252
> > > ip verify unicast reverse-path
> > > tunnel source 212.73.125.217
> > > tunnel destination 212.192.122.147
> > > !
> > >
> > > The problem is that large datagrams cannot pass through the tunnel
> > > and the router sends the following ICMP messages to the other tunnel
> > > endpoint:
> > >
> > > 24782: ICMP: time exceeded (reassembly) sent to
> > 212.192.122.147 (dest
> > > was 212.73.125.217)
> > > 24783: ICMP: time exceeded (reassembly) sent to
> > 212.192.122.147 (dest
> > > was 212.73.125.217)
> > > 24826: ICMP: time exceeded (reassembly) sent to
> > 212.192.122.147 (dest
> > > was 212.73.125.217)
> > >
> > > I suppose the datagrams get fragmented because packets are
> > larger than
> > > the tunnel MTU which is the default 1476 on both sides. My
> > question is
> > > why is the router unable to reassemble the fragments?
> > >
> > > RFC792 reads:
> > >
> > > =========================
> > >
> > > ICMP Fields:
> > >
> > > Type
> > >
> > > 11
> > >
> > > Code
> > >
> > > 0 = time to live exceeded in transit;
> > >
> > > 1 = fragment reassembly time exceeded.
> > >
> > > [dd]
> > >
> > > Description
> > >
> > > If the gateway processing a datagram finds the time
> > to live field
> > > is zero it must discard the datagram. The gateway
> > may also notify
> > > the source host via the time exceeded message.
> > >
> > > If a host reassembling a fragmented datagram cannot
> > complete the
> > > reassembly due to missing fragments within its time limit it
> > > discards the datagram, and it may send a time
> > exceeded message.
> > >
> > > If fragment zero is not available then no time
> > exceeded need be
> > > sent at all.
> > >
> > > Code 0 may be received from a gateway. Code 1 may be received
> > > from a host.
> > > =========================
> > >
> > > Looks like a Cisco router is not supposed to send Code 1 messages at
> > > all, because it is a router and not a host.
> > >
> > > Any help is appreciated.
> > >
> > > --
> > > Victor Sudakov, VAS4-RIPE, VAS47-RIPN
> > > _______________________________________________
> > > cisco-nsp mailing list cisco-nsp at puck.nether.net
> > > https://puck.nether.net/mailman/listinfo/cisco-nsp
> > > archive at http://puck.nether.net/pipermail/cisco-nsp/
> > >
> >
> > --
> > Victor Sudakov, VAS4-RIPE, VAS47-RIPN
> > _______________________________________________
> > cisco-nsp mailing list cisco-nsp at puck.nether.net
> > https://puck.nether.net/mailman/listinfo/cisco-nsp
> > archive at http://puck.nether.net/pipermail/cisco-nsp/
--
Victor Sudakov, VAS4-RIPE, VAS47-RIPN
More information about the cisco-nsp
mailing list