Distribution: Vlan (8021q) lost ipv4 packet Hardware Environment: HP tc3100 + switch 3com 3c16886A Software Environment: Mandrake 10 official + kernel 2.6.7-2mdk Problem Description: While using vlan (eth0.2) for connection to internet mostly sites don't work (ex: www.ziobudda.net bad, punto-informatico.it ok) The connection starts but no packet are recived. tcpdump -i eth0.2 -vv -X host www.ziobudda.net tcpdump: listening on eth0.2, link-type EN10MB (Ethernet), capture size 96 bytes 09:03:48.715078 IP (tos 0x0, ttl 64, id 51924, offset 0, flags [DF], length: 52) 81.112.63.189.32933 > 193.254.241.4.http: F [tcp sum ok] 2920000677:2920000677(0) ack 2170843880 win 5840 <nop,nop,timestamp 1895751 271281932> 0x0000 4500 0034 cad4 4000 4006 2bbf 5170 3fbd E..4..@.@.+.Qp?. 0x0010 c1fe f104 80a5 0050 ae0b aca5 8164 72e8 .......P.....dr. 0x0020 8011 16d0 df2c 0000 0101 080a 001c ed47 .....,.........G 0x0030 102b 6f0c .+o. 09:03:48.723397 IP (tos 0x0, ttl 54, id 7661, offset 0, flags [DF], length: 52) 193.254.241.4.http > 81.112.63.189.32933: . [tcp sum ok] 2897:2897(0) ack 1 win 6432 <nop,nop,timestamp 271285501 1895751> 0x0000 4500 0034 1ded 4000 3606 e2a6 c1fe f104 E..4..@.6....... 0x0010 5170 3fbd 0050 80a5 8164 7e38 ae0b aca6 Qp?..P...d~8.... 0x0020 8010 1920 c39b 0000 0101 080a 102b 7cfd .............+|. 0x0030 001c ed47 ...G 09:03:48.826211 IP (tos 0x0, ttl 64, id 20222, offset 0, flags [DF], length: 60) 81.112.63.189.32934 > 193.254.241.4.http: S [tcp sum ok] 2985141064:2985141064(0) win 5840 <mss 1460,sackOK,timestamp 1895862 0,nop,wscale 0> 0x0000 4500 003c 4efe 4000 4006 a78d 5170 3fbd E..<N.@.@...Qp?. 0x0010 c1fe f104 80a6 0050 b1ed a348 0000 0000 .......P...H.... 0x0020 a002 16d0 2907 0000 0204 05b4 0402 080a ....)........... 0x0030 001c edb6 0000 0000 0103 0300 ............ 09:03:48.834155 IP (tos 0x0, ttl 54, id 0, offset 0, flags [DF], length: 60) 193.254.241.4.http > 81.112.63.189.32934: S [tcp sum ok] 2195619523:2195619523 (0) ack 2985141065 win 5792 <mss 1460,sackOK,timestamp 271285512 1895862,nop,wscale 0> 0x0000 4500 003c 0000 4000 3606 008c c1fe f104 E..<..@.6....... 0x0010 5170 3fbd 0050 80a6 82de 7ec3 b1ed a349 Qp?..P....~....I 0x0020 a012 16a0 9a50 0000 0204 05b4 0402 080a .....P.......... 0x0030 102b 7d08 001c edb6 0103 0300 .+}......... 09:03:48.834228 IP (tos 0x0, ttl 64, id 20223, offset 0, flags [DF], length: 52) 81.112.63.189.32934 > 193.254.241.4.http: . [tcp sum ok] 1:1(0) ack 1 win 5840 <nop,nop,timestamp 1895870 271285512> 0x0000 4500 0034 4eff 4000 4006 a794 5170 3fbd E..4N.@.@...Qp?. 0x0010 c1fe f104 80a6 0050 b1ed a349 82de 7ec4 .......P...I..~. 0x0020 8010 16d0 c8dd 0000 0101 080a 001c edbe ................ 0x0030 102b 7d08 .+}. 09:03:48.836162 IP (tos 0x0, ttl 64, id 20224, offset 0, flags [DF], length: 451) 81.112.63.189.32934 > 193.254.241.4.http: P 1:400(399) ack 1 win 5840 <nop,nop,timestamp 1895872 271285512> 0x0000 4500 01c3 4f00 4000 4006 a604 5170 3fbd E...O.@.@...Qp?. 0x0010 c1fe f104 80a6 0050 b1ed a349 82de 7ec4 .......P...I..~. 0x0020 8018 16d0 78ce 0000 0101 080a 001c edc0 ....x........... 0x0030 102b 7d08 4745 5420 2f20 4854 5450 2f31 .+}.GET./.HTTP/1 0x0040 2e31 0d0a 436f 6e6e 6563 7469 6f6e 3a20 .1..Connection:. 0x0050 4b65 Ke 09:03:48.846287 IP (tos 0x0, ttl 54, id 973, offset 0, flags [DF], length: 52) 193.254.241.4.http > 81.112.63.189.32934: . [tcp sum ok] 1:1(0) ack 400 win 6432 <nop,nop,timestamp 271285513 1895872> 0x0000 4500 0034 03cd 4000 3606 fcc6 c1fe f104 E..4..@.6....... 0x0010 5170 3fbd 0050 80a6 82de 7ec4 b1ed a4d8 Qp?..P....~..... 0x0020 8010 1920 c4fb 0000 0101 080a 102b 7d09 .............+}. 0x0030 001c edc0 (no more) the ping works and the telnet towards others ports (but 80) work if I use une other net card for direct connettion (eth1) internet connections works perfectly Steps to reproduce: hdsl + router cisco + 3com switch layer 3 + vlan eth0 local lan eth0.2 internet links www.ziobudda.net tks W:-}
It's likely that your driver does not handle the extra 4 bytes of the VLAN header. What driver/NIC are you using in the Linux VLAN machine?
I am using eepro100 eepro100 : Intel Corp.|NetServer 10/100TX [NETWORK_ETHERNET] eth0: OEM i82557/i82558 10/100 Ethernet, 00:30:6E:1F:00:E4, IRQ 20. Board assembly 506585-133, Physical connectors present: RJ45 Primary interface chip i82555 PHY #1. General self-test: passed. Serial sub-system self-test: passed. Internal registers self-test: passed. ROM checksum self-test: passed (0xb874c1d3) I have test the problem so in kernel-2.4.25.2mdk-1-1mdk and have problem like in other machine whit mandrake 10 off + nic 3Com Corporation|3c905C-TX [Fast Etherlink] [NETWORK_ETHERNET]
I have found: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=88592 Description of problem: The NIC drivers from the linux kernel must be pached in order not to drop "oversized frames" received. A tagged frame has a suplimentary header (tag) which contains informations about the vlan id it comes from, etc. The tagged frames are 4 bytes longer that the normal untagged ethernet frames. Almost all NIC drivers from the linux kernel (except e100 I suppose) drop this frames because are considered being oversized before untagging them. http://www.candelatech.com/~greear/vlan/howto.html#eepro Here is a patch sent in by gleb@nbase.co.il filename="linux-2.2.14-eepro100-vlan.patch" --- linux/drivers/net/eepro100.c Tue Oct 26 20:53:40 1999 +++ linux1/drivers/net/eepro100.c Sun May 14 07:47:34 2000 @@ -377,12 +377,12 @@ const char i82557_config_cmd[22] = { 22, 0x08, 0, 0, 0, 0x80, 0x32, 0x03, 1, /* 1=Use MII 0=Use AUI */ 0, 0x2E, 0, 0x60, 0, - 0xf2, 0x48, 0, 0x40, 0xf2, 0x80, /* 0x40=Force full- duplex */ + 0xf2, 0x48, 0, 0x40, 0xfa, 0x80, /* 0x40=Force full- duplex */ 0x3f, 0x05, }; const char i82558_config_cmd[22] = { 22, 0x08, 0, 1, 0, 0x80, 0x22, 0x03, 1, /* 1=Use MII 0=Use AUI */ 0, 0x2E, 0, 0x60, 0x08, 0x88, - 0x68, 0, 0x40, 0xf2, 0xBD, /* 0xBD->0xFD=Force full-duplex */ + 0x68, 0, 0x40, 0xfa, 0xBD, /* 0xBD->0xFD=Force full-duplex */ 0x31, 0x05, }; /* PHY media interface chips. */ now tray if it resolv the problem
Just use the e100 driver, then everything will work OK. If the eepro100 is still officially supported, this bug should be assigned to whoever supports it. However, the eepro100 VLAN patch has been around for years and no one shows any interest in applying it...
Created attachment 3299 [details] 3c59x patch for vlans (tested in production for 90 days now) I'm comming from the Gentoo bugzilla to the kernel bugzilla because I have problems with the behavior of the 3c59x driver in a VLAN setup. This patch is the original 2.4 patch for this driver, but 'patched' so it cleanly applies for the 2.6 kernels. I also tryed the eepro100 patches for this problem which does _not_ work, the intel e100 does. I would like to request to get this patch into the mainline kernel. So the most used 3com card works with VLANs out-of-the-box. I did not made it myself, but I am using it in production on two firewalls, multiple interfaces and vlans, for three months.
Hi! Could you please fwd your patch to Jeff Garzik and cc netdev@oss.sgi.com for mainline kernel inclusion?. thanks! Nivedita
So I have patched the kernel 2.6.3 and now work the driver 3c59x perfectly in vlan with the patch of http://www.candelatech.com/~greear/vlan/howto.html in this page there are some other patch and like the patch is insert into vanilla tree. tks to all W:-}