[nsp] ICMP: time exceeded (reassembly)
Dmitry Volkov
dmitry.volkov at rogers.com
Tue Feb 3 08:48:00 EST 2004
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 ? 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.
If changing encaps stops generating ICMP 11 1 - I would assume that
reassembly happens successfully - and probably software bug on router ?
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/
More information about the cisco-nsp
mailing list