Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 Aug 2000 15:00:30 +0300
From:      Pavel Gulchouck <gul@gul.kiev.ua>
To:        Tarik Alj <aljtarik@cholla.inrs-telecom.uquebec.ca>
Cc:        freebsd-net@freebsd.org
Subject:   Re: VLAN MTU? 1500? 1504? Why?
Message-ID:  <20000806150029.A26345@lucky.carrier.kiev.ua>
In-Reply-To: <200008041342.JAA05141@cholla.INRS-Telecom.UQuebec.CA>; from Tarik Alj on Fri, Aug 04, 2000 at 04:44:59PM %2B0300
References:  <200008041342.JAA05141@cholla.INRS-Telecom.UQuebec.CA>

next in thread | previous in thread | raw e-mail | index | archive | help
  Hi!

On Fri, Aug 04, 2000 at 04:44:59PM +0300, Tarik Alj writes:

> >Louie, Thanks for your comments and for framing the question more
> >clearly.
> >
> >Let's assume we do want to do 1500-byte frames on the virtual interfaces
> >and go on to an ugly aspect of implementing it.
> >
> >Longer frames seem to require that the physical interface "know" that
> >1504-byte frames should be allowed when the VLAN or 802.1p driver is
> >above it but prohibited otherwise. Conversely, the VLAN driver should
> >"ask" before assuming that the physical interface can handle the larger
> >frames so that it can fail the open in those cases where the driver can't
> >handle them?
> >
> >Is there any existing mechanism for "negotiation" of MTU between the
> >physical layer and virtual layer? If not, should there be? I suppose we
> >could crank the MTU of all physical interfaces up to whatever they can
> >really handle instead of artificially limiting them to 1500 bytes, but
> >that sounds icky.
> >
> >In short, it seem kind of gross to have to hack the source code of the
> >physical driver when you intend to use it with a virtual driver above it.
> >Is it worth making an elegant solution to this or should we just let the
> >few who need longer frames continue futzing the source of the physical
> >drivers?
> 
> Well the actual solution isn't very elegant, is it? But there doesn't seem to be 
> a simple way to fix this. A _new_ MTU will require the existing drivers to be 
> modified anyways, but as things go more and more NICs should support 802.1Q 
> tagging.
> 
> In my opinion VLANs are most useful (and were designed, I believe) for bridging 
> segments (that includes trunking), thus 802.1Q tagging should be done by the 
> bridge module.
> 
> If you follow IEEE (a document that goes by the name P802.3ac/D3.1, "Frame 
> Extensions for VLAN Tagging on 802.3 Networks) it is the Ethernet frame that 
> gets bigger, not the IP packet that gets smaller. (my 2c :). 

Now I have 802.1Q trunk on FreeBSD 4.1-stable with Catalyst 3548.
And I don't know how I can solve the MTU problem. 1500-bytes ping
does not pass, but 1400-bytes does.

'ifconfig vlan0 mtu 1500' has no effect.
'ifconfig fxp0 mtu 1504' responds "Invalid argument".
Catalyst says "% Interface FastEthernet0/2 does not support user settable mtu.".
I cannot decrease ip mtu at all interfaces of all devices on
the vlans in the network, because here's colocation servers.
What should I do?

And I found one curious feature: if I'm running tcpdump on fxp0,
all packets passes ok. Without tcpdump they drops. Now I'm thinking
about run tcpdump as daemon. ;-)

Here's tcpdump out on vlan interface with running tcpdump on fxp0:

13:46:05.231569 zeus.call > isida.call: icmp: echo request (frag 13715:1472@0+)
13:46:05.231580 zeus.call > isida.call: (frag 13715:36@1472)
13:46:05.233872 isida.call > zeus.call: icmp: echo reply (frag 13715:1480@0+)
13:46:05.233880 isida.call > zeus.call: (frag 13715:28@1480)
13:46:06.241441 zeus.call > isida.call: icmp: echo request (frag 13738:1472@0+)
13:46:06.241450 zeus.call > isida.call: (frag 13738:36@1472)
13:46:06.243809 isida.call > zeus.call: icmp: echo reply (frag 13738:1480@0+)
13:46:06.243818 isida.call > zeus.call: (frag 13738:28@1480)
13:46:07.251321 zeus.call > isida.call: icmp: echo request (frag 13758:1472@0+)
13:46:07.251331 zeus.call > isida.call: (frag 13758:36@1472)
13:46:07.253628 isida.call > zeus.call: icmp: echo reply (frag 13758:1480@0+)
13:46:07.253636 isida.call > zeus.call: (frag 13758:28@1480)
13:46:08.261198 zeus.call > isida.call: icmp: echo request (frag 13777:1472@0+)
13:46:08.261207 zeus.call > isida.call: (frag 13777:36@1472)
13:46:08.263541 isida.call > zeus.call: icmp: echo reply (frag 13777:1480@0+)
13:46:08.263549 isida.call > zeus.call: (frag 13777:28@1480)

And here's without dumping fxp0:

13:46:42.390477 zeus.call > isida.call: icmp: echo request (frag 14372:1472@0+)
13:46:42.390486 zeus.call > isida.call: (frag 14372:36@1472)
13:46:42.392800 isida.call > zeus.call: (frag 14372:28@1480)
13:46:43.397059 zeus.call > isida.call: icmp: echo request (frag 14397:1472@0+)
13:46:43.397065 zeus.call > isida.call: (frag 14397:36@1472)
13:46:43.399602 isida.call > zeus.call: (frag 14397:28@1480)
13:46:44.406963 zeus.call > isida.call: icmp: echo request (frag 14415:1472@0+)
13:46:44.406970 zeus.call > isida.call: (frag 14415:36@1472)
13:46:44.409305 isida.call > zeus.call: (frag 14415:28@1480)
13:46:45.411392 zeus.call > isida.call: icmp: echo request (frag 14434:1472@0+)
13:46:45.411399 zeus.call > isida.call: (frag 14434:36@1472)
13:46:45.413675 isida.call > zeus.call: (frag 14434:28@1480)
13:46:46.426710 zeus.call > isida.call: icmp: echo request (frag 14448:1472@0+)
13:46:46.426717 zeus.call > isida.call: (frag 14448:36@1472)
13:46:46.429018 isida.call > zeus.call: (frag 14448:28@1480)

Zeus (FreeBSD) sends to isida (Cisco router) packets fragmented to
1472 bytes. Isida responds packets fragmented to 1480 bytes. This
1480-bytes packets drops without tcpdump and reaches the destination
with tcpdump running.

Ping between cisco routers via trunk link are always ok (mtu 1500).

Any comments?

gul@zeus;~>ifconfig fxp0
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        ether 00:d0:b7:60:67:7e
        media: autoselect (100baseTX <full-duplex>) status: active
        supported media: autoselect 100baseTX <full-duplex> 100baseTX 10baseT/UTP <full-duplex> 10baseT/UTP
gul@zeus;~>ifconfig vlan2
vlan2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1496
        inet 10.0.1.1 netmask 0xffffff00 broadcast 10.0.1.255
        ether 00:d0:b7:60:67:7e
        vlan: 1 parent interface: fxp0

-- 
                                Lucky carrier,
                                                  Pavel



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000806150029.A26345>