lkml.org 
[lkml]   [2003]   [Feb]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subject2.4.20 Broken Path MTU Discovery?
Hi,

I have an issue with Path MTU Discovery in linux 2.4.20 box, although I don't know if this is an kernel issue or a network driver issue (8139too).

Network is connected to an outside Cisco router that has MTU set to 400 for output.
Linux has one ethernet interface, MTU set to 1500 (default).
PMTU is activated:
> cat /proc/sys/net/ipv4/ip_no_pmtu_disc
0

Not using iproute2.

Behaviour:
1. Linux send packet with DF set and len > 400.
2. Ciaco router sends icmp to linux box informing MTU is 400.
3. Linux short the packet sent, but send it without DF set.
¿Linux is giving up PMTU?
¿Why linux is not adjusting mtu to 400 as advertised by router and use PMTU?

As long as I know, fragmentation should be avoided in the internet, they tend to be blocked at firewalls and they consume resources in routers.

I have reviewed the PMTU RFC:
RFC 1191
http://www.ietf.org/rfc/rfc1191.txt

¿May be the Linux box is giving up PMTU? ¿Why? it now knows MTU is 400.
I have others windows boxes in the network, they work fine with PMTU.

The PMTU discovery process ends when the host's estimate of the PMTU
is low enough that its datagrams can be delivered without
fragmentation. Or, the host may elect to end the discovery process
by ceasing to set the DF bit in the datagram headers; it may do so,
for example, because it is willing to have datagrams fragmented in
some circumstances. Normally, the host continues to set DF in all
datagrams, so that if the route changes and the new PMTU is lower, it
will be discovered.


Here are some sniffer traces taken by snort.
Linux is 192.168.128.16, trying to connect to HTTP www.cnn.com (64.236.24.12):

TCP Establishment
=================

02/02-19:42:19.003341 192.168.128.16:2175 -> 64.236.24.12:80
TCP TTL:64 TOS:0x0 ID:61539 IpLen:20 DgmLen:60 DF
******S* Seq: 0xE59FD9DD Ack: 0x0 Win: 0x16D0 TcpLen: 40
TCP Options (5) => MSS: 1460 SackOK TS: 6629822 0 NOP WS: 0
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

02/02-19:42:19.213587 64.236.24.12:80 -> 192.168.128.16:2175
TCP TTL:62 TOS:0x0 ID:0 IpLen:20 DgmLen:60 DF
***A**S* Seq: 0xE678E021 Ack: 0xE59FD9DE Win: 0x16A0 TcpLen: 40
TCP Options (5) => MSS: 1460 SackOK TS: 29413933 6629822 NOP WS: 0
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

02/02-19:42:19.213715 192.168.128.16:2175 -> 64.236.24.12:80
TCP TTL:64 TOS:0x0 ID:61540 IpLen:20 DgmLen:52 DF
***A**** Seq: 0xE59FD9DE Ack: 0xE678E022 Win: 0x16D0 TcpLen: 32
TCP Options (3) => NOP NOP TS: 6629843 29413933
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+


HTTP REQUEST
============

02/02-19:42:19.216995 192.168.128.16:2175 -> 64.236.24.12:80
TCP TTL:64 TOS:0x0 ID:61541 IpLen:20 DgmLen:604 DF
***AP*** Seq: 0xE59FD9DE Ack: 0xE678E022 Win: 0x16D0 TcpLen: 32
TCP Options (3) => NOP NOP TS: 6629843 29413933
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+


ROUTER INFORMS MTU IS 400 (ICMP)
================================

02/02-19:42:19.219745 192.168.128.200 -> 192.168.128.16
ICMP TTL:255 TOS:0x0 ID:22656 IpLen:20 DgmLen:56
Type:3 Code:4 DESTINATION UNREACHABLE: FRAGMENTATION NEEDED, DF SET
NEXT LINK MTU: 400

** ORIGINAL DATAGRAM DUMP:
192.168.128.16:2175 -> 64.236.24.12:80
TCP TTL:63 TOS:0x0 ID:61541 IpLen:20 DgmLen:604 DF
Seq: 0xE59FD9DE Ack: 0x2F204854
** END OF DUMP
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+


LINUX SHORT LEN BY 52 bytes?
DF NOT SET?
GIVING OUT PMTU??
============================

02/02-19:42:19.220063 192.168.128.16:2175 -> 64.236.24.12:80
TCP TTL:64 TOS:0x0 ID:3449 IpLen:20 DgmLen:552
***A**** Seq: 0xE59FD9DE Ack: 0xE678E022 Win: 0x16D0 TcpLen: 32
TCP Options (3) => NOP NOP TS: 6629843 29413933
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

02/02-19:42:19.843267 192.168.128.16:2175 -> 64.236.24.12:80
TCP TTL:64 TOS:0x0 ID:3450 IpLen:20 DgmLen:552
***A**** Seq: 0xE59FD9DE Ack: 0xE678E022 Win: 0x16D0 TcpLen: 32
TCP Options (3) => NOP NOP TS: 6629906 29413933
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

02/02-19:42:21.103163 192.168.128.16:2175 -> 64.236.24.12:80
TCP TTL:64 TOS:0x0 ID:3451 IpLen:20 DgmLen:552
***A**** Seq: 0xE59FD9DE Ack: 0xE678E022 Win: 0x16D0 TcpLen: 32
TCP Options (3) => NOP NOP TS: 6630032 29413933
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

02/02-19:42:23.622973 192.168.128.16:2175 -> 64.236.24.12:80
TCP TTL:64 TOS:0x0 ID:3452 IpLen:20 DgmLen:552
***A**** Seq: 0xE59FD9DE Ack: 0xE678E022 Win: 0x16D0 TcpLen: 32
TCP Options (3) => NOP NOP TS: 6630284 29413933
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+


AGAIN WITH DF SET??
===================

02/02-19:42:28.662657 192.168.128.16:2175 -> 64.236.24.12:80
TCP TTL:64 TOS:0x0 ID:61542 IpLen:20 DgmLen:552 DF
***A**** Seq: 0xE59FD9DE Ack: 0xE678E022 Win: 0x16D0 TcpLen: 32
TCP Options (3) => NOP NOP TS: 6630788 29413933
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

ROUTER INFORMS MTU IS 400 (ICMP)
================================

02/02-19:42:28.666355 192.168.128.200 -> 192.168.128.16
ICMP TTL:255 TOS:0x0 ID:22657 IpLen:20 DgmLen:56
Type:3 Code:4 DESTINATION UNREACHABLE: FRAGMENTATION NEEDED, DF SET
NEXT LINK MTU: 400

** ORIGINAL DATAGRAM DUMP:
192.168.128.16:2175 -> 64.236.24.12:80
TCP TTL:63 TOS:0x0 ID:61542 IpLen:20 DgmLen:552 DF
Seq: 0xE59FD9DE Ack: 0x2F204854
** END OF DUMP
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+


DF NOT SET? (AGAIN)
===================

02/02-19:42:38.741842 192.168.128.16:2175 -> 64.236.24.12:80
TCP TTL:64 TOS:0x0 ID:3453 IpLen:20 DgmLen:552
***A**** Seq: 0xE59FD9DE Ack: 0xE678E022 Win: 0x16D0 TcpLen: 32
TCP Options (3) => NOP NOP TS: 6631796 29413933
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

02/02-19:42:58.900285 192.168.128.16:2175 -> 64.236.24.12:80
TCP TTL:64 TOS:0x0 ID:3454 IpLen:20 DgmLen:552
***A**** Seq: 0xE59FD9DE Ack: 0xE678E022 Win: 0x16D0 TcpLen: 32
TCP Options (3) => NOP NOP TS: 6633812 29413933
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+


Regards,
Carlos Velasco


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:32    [W:0.045 / U:0.604 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site