We have a SLES11 system with XEN 3.3 and configured an internal bridge "intbr1" with interfaces "vif2.1" and "vif9.1" to two Linux-guests: # ifconfig (reduced output) intbr1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:169 errors:0 dropped:0 overruns:0 frame:0 TX packets:85 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1458368 (1.3 Mb) TX bytes:28192 (27.5 Kb) vif2.1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:600 errors:0 dropped:0 overruns:0 frame:0 TX packets:612 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:32 RX bytes:751740 (734.1 Kb) TX bytes:757842 (740.0 Kb) vif9.1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:198 errors:0 dropped:0 overruns:0 frame:0 TX packets:202 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:32 RX bytes:260680 (254.5 Kb) TX bytes:263558 (257.3 Kb) # brctl show (reduced output) bridge name bridge id STP enabled interfaces intbr1 8000.feffffffffff no vif2.1 vif9.1 When we send an ICMP-packet with 6400 data-bytes (ping -s 6400 -c 1 192.168.39.1) from Linux-guest connected to "vif9.1" to the other linux-guest connected to "vif2.1" we see with tcpdump connected to intbr1, that some instance (intbr1? vif9.1) defragmented the 5 ip-packets from vif9.1 into 1 ip-packet, though mtu-size for the vif-interfaces, intbr1 and eth-interfaces of the guests are all set to 1500 bytes: # tcpdump -i intbr1 -v tcpdump: WARNING: intbr1: no IPv4 address assigned tcpdump: listening on intbr1, link-type EN10MB (Ethernet), capture size 96 bytes 14:33:12.853741 IP (tos 0x0, ttl 64, id 62828, offset 0, flags [none], proto ICMP (1), length 6428) 192.168.39.2 > 192.168.39.1: ICMP echo request, id 2327, seq 1, length 6408 14:33:12.853956 IP (tos 0x0, ttl 64, id 62329, offset 0, flags [none], proto ICMP (1), length 6428) 192.168.39.1 > 192.168.39.2: ICMP echo reply, id 2327, seq 1, length 6408 14:33:17.851500 arp who-has 192.168.39.1 tell 192.168.39.2 14:33:17.851581 arp reply 192.168.39.1 is-at 00:16:3e:02:24:db (oui Unknown) # tcpdump -i vif2.1 -v tcpdump: WARNING: vif2.1: no IPv4 address assigned tcpdump: listening on vif2.1, link-type EN10MB (Ethernet), capture size 96 bytes 14:33:12.853798 IP (tos 0x0, ttl 64, id 62828, offset 0, flags [+], proto ICMP (1), length 1500) 192.168.39.2 > 192.168.39.1: ICMP echo request, id 2327, seq 1, length 1480 14:33:12.853801 IP (tos 0x0, ttl 64, id 62828, offset 1480, flags [+], proto ICMP (1), length 1500) 192.168.39.2 > 192.168.39.1: icmp 14:33:12.853803 IP (tos 0x0, ttl 64, id 62828, offset 2960, flags [+], proto ICMP (1), length 1500) 192.168.39.2 > 192.168.39.1: icmp 14:33:12.853805 IP (tos 0x0, ttl 64, id 62828, offset 4440, flags [+], proto ICMP (1), length 1500) 192.168.39.2 > 192.168.39.1: icmp 14:33:12.853806 IP (tos 0x0, ttl 64, id 62828, offset 5920, flags [none], proto ICMP (1), length 508) 192.168.39.2 > 192.168.39.1: icmp 14:33:12.853948 IP (tos 0x0, ttl 64, id 62329, offset 0, flags [+], proto ICMP (1), length 1500) 192.168.39.1 > 192.168.39.2: ICMP echo reply, id 2327, seq 1, length 1480 14:33:12.853948 IP (tos 0x0, ttl 64, id 62329, offset 1480, flags [+], proto ICMP (1), length 1500) 192.168.39.1 > 192.168.39.2: icmp 14:33:12.853948 IP (tos 0x0, ttl 64, id 62329, offset 2960, flags [+], proto ICMP (1), length 1500) 192.168.39.1 > 192.168.39.2: icmp 14:33:12.853949 IP (tos 0x0, ttl 64, id 62329, offset 4440, flags [+], proto ICMP (1), length 1500) 192.168.39.1 > 192.168.39.2: icmp 14:33:12.853956 IP (tos 0x0, ttl 64, id 62329, offset 5920, flags [none], proto ICMP (1), length 508) 192.168.39.1 > 192.168.39.2: icmp 14:33:17.851517 arp who-has 192.168.39.1 tell 192.168.39.2 14:33:17.851581 arp reply 192.168.39.1 is-at 00:16:3e:02:24:db (oui Unknown) # tcpdump -i vif9.1 -v tcpdump: WARNING: vif9.1: no IPv4 address assigned tcpdump: listening on vif9.1, link-type EN10MB (Ethernet), capture size 96 bytes 14:33:12.853739 IP (tos 0x0, ttl 64, id 62828, offset 0, flags [+], proto ICMP (1), length 1500) 192.168.39.2 > 192.168.39.1: ICMP echo request, id 2327, seq 1, length 1480 14:33:12.853740 IP (tos 0x0, ttl 64, id 62828, offset 1480, flags [+], proto ICMP (1), length 1500) 192.168.39.2 > 192.168.39.1: icmp 14:33:12.853740 IP (tos 0x0, ttl 64, id 62828, offset 2960, flags [+], proto ICMP (1), length 1500) 192.168.39.2 > 192.168.39.1: icmp 14:33:12.853741 IP (tos 0x0, ttl 64, id 62828, offset 4440, flags [+], proto ICMP (1), length 1500) 192.168.39.2 > 192.168.39.1: icmp 14:33:12.853741 IP (tos 0x0, ttl 64, id 62828, offset 5920, flags [none], proto ICMP (1), length 508) 192.168.39.2 > 192.168.39.1: icmp 14:33:12.853967 IP (tos 0x0, ttl 64, id 62329, offset 0, flags [+], proto ICMP (1), length 1500) 192.168.39.1 > 192.168.39.2: ICMP echo reply, id 2327, seq 1, length 1480 14:33:12.853968 IP (tos 0x0, ttl 64, id 62329, offset 1480, flags [+], proto ICMP (1), length 1500) 192.168.39.1 > 192.168.39.2: icmp 14:33:12.853969 IP (tos 0x0, ttl 64, id 62329, offset 2960, flags [+], proto ICMP (1), length 1500) 192.168.39.1 > 192.168.39.2: icmp 14:33:12.853970 IP (tos 0x0, ttl 64, id 62329, offset 4440, flags [+], proto ICMP (1), length 1500) 192.168.39.1 > 192.168.39.2: icmp 14:33:12.853970 IP (tos 0x0, ttl 64, id 62329, offset 5920, flags [none], proto ICMP (1), length 508) 192.168.39.1 > 192.168.39.2: icmp 14:33:17.851500 arp who-has 192.168.39.1 tell 192.168.39.2 14:33:17.851612 arp reply 192.168.39.1 is-at 00:16:3e:02:24:db (oui Unknown) We also tried to set tso and gso off with ethtool in all interfaces (intbr1, vif2.1, vif9.1 and ethx on guest systems), but with no effect. Does anyone have any idea what instance defragments the ip-packets and why and how we can force this instance not to do this? Thanks! _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users
James Harper
2010-May-18 13:33 UTC
RE: [Xen-users] Do bridges or vif defragment IP-packets?
> > When we send an ICMP-packet with 6400 data-bytes (ping -s 6400 -c 1 > 192.168.39.1) from Linux-guest connected to "vif9.1" to > the other linux-guest connected to "vif2.1" we see with tcpdumpconnected to> intbr1, that some instance (intbr1? vif9.1) defragmented > the 5 ip-packets from vif9.1 into 1 ip-packet, though mtu-size for thevif-> interfaces, intbr1 and eth-interfaces of the guests > are all set to 1500 bytes:What did you expect to happen? If the MTU is 1500 bytes then by definition, no larger packet will be allowed through (TCP is an exception to this where LSO/TSO/GSO is supported) If the ''do not fragment'' flag is not set on the icmp packet then the IP layer on the sending host will fragment the packet at the IP level. If the ''do not fragment'' flag is set then the sending host will respond with an icmp ''fragmentation required'' packet. James _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users
Klose, Dieter
2010-May-18 14:55 UTC
RE: [Xen-users] Do bridges or vif defragment IP-packets?
Hi James,> What did you expect to happen? If the MTU is 1500 bytes then by > definition, no larger packet will be allowed through (TCP is an > exception to this where LSO/TSO/GSO is supported) >I expected, that tcpdump listening to intbr1, shows also 5 ip-packets coming from vif9.1 and 5 ip-packets coming from vif2.1 Dieter _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users
Maybe Matching Threads
- Unexpected (?) bridging behavior in 2.0.7/FC4
- Fwd: Strange network problem
- DOMU loses outside connection
- Infinite loop shutting down xendomains
- Bug#701744: [xen] Update to hypervisor 4.0.1-5.6 or linux-image-2.6.32-5-xen-amd64 2.6.32-48 causes networking (VIF) failures