测试环境:
1台:H3C S5100-24P-SI (24口千兆交换机)
2台:Intel S3000AH 主板 (RHEL4.6 32位Linux操作系统) IP地址分别为 192.168.1.1 和 192.168.1.132
备注:S3000AH 主板有两个不同芯片的网卡,一个是和USB口封装叠在一起的(82573V/E网络芯片),一个是单独封装的(82541PI网络芯片),网线必须接在这单独封装的口上。
# ping 192.168.1.131 -s 9000 指定包长度(单位是bytes)
# tcpdump -vvv -n -i eth1 icmp 可以看到包长度为9000的包,被分成了6个包
12:12:42.491892 IP (tos 0×0, ttl 64, id 56656, offset 0, flags [+], proto 1, length: 1500) 192.168.1.1 > 192.168.1.131: icmp 1480: echo request seq 0
12:12:42.491899 IP (tos 0×0, ttl 64, id 56656, offset 1480, flags [+], proto 1, length: 1500) 192.168.1.1 > 192.168.1.131: icmp
12:12:42.491904 IP (tos 0×0, ttl 64, id 56656, offset 2960, flags [+], proto 1, length: 1500) 192.168.1.1 > 192.168.1.131: icmp
12:12:42.491910 IP (tos 0×0, ttl 64, id 56656, offset 4440, flags [+], proto 1, length: 1500) 192.168.1.1 > 192.168.1.131: icmp
12:12:42.491914 IP (tos 0×0, ttl 64, id 56656, offset 5920, flags [+], proto 1, length: 1500) 192.168.1.1 > 192.168.1.131: icmp
12:12:42.491918 IP (tos 0×0, ttl 64, id 56656, offset 7400, flags [+], proto 1, length: 1500) 192.168.1.1 > 192.168.1.131: icmp
12:12:42.491922 IP (tos 0×0, ttl 64, id 56656, offset 8880, flags [none], proto 1, length: 148) 192.168.1.1 > 192.168.1.131: icmp
如果禁止包重组(prohibit fragmentation, even local one),就会看到如下的提示:
# ping 192.168.1.131 -s 9000 -M do
From 192.168.1.1 icmp_seq=0 Frag needed and DF set (mtu = 1500)
From 192.168.1.1 icmp_seq=0 Frag needed and DF set (mtu = 1500)
From 192.168.1.1 icmp_seq=0 Frag needed and DF set (mtu = 1500)
From 192.168.1.1 icmp_seq=0 Frag needed and DF set (mtu = 1500)
From 192.168.1.1 icmp_seq=0 Frag needed and DF set (mtu = 1500)
# ifconfig eth1 mtu 9000 指令前后的变化:
eth1 Link encap:Ethernet HWaddr 00:15:17:6F:02:6C
inet addr:192.168.1.132 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::215:17ff:fe6f:26c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
eth1 Link encap:Ethernet HWaddr 00:15:17:6F:02:6C
inet addr:192.168.1.132 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::215:17ff:fe6f:26c/64 Scope:Link
UP BROADCAST MULTICAST MTU:9000 Metric:1
# ping 192.168.1.132 -s 8972 -M do
PING 192.168.1.132 (192.168.1.132) 8972(9000) bytes of data. (自动加了28个字节,打包成9000发给对方)
8980 bytes from 192.168.1.132: icmp_seq=0 ttl=64 time=0.722 ms
8980 bytes from 192.168.1.132: icmp_seq=1 ttl=64 time=1.09 ms
# ping 192.168.1.132 -s 9000 -M do
PING 192.168.1.132 (192.168.1.132) 9000(9028) bytes of data. (这里要设置MTU为9028,不然封包不重组就过不去了)
9008 bytes from 192.168.1.132: icmp_seq=0 ttl=64 time=0.958 ms
9008 bytes from 192.168.1.132: icmp_seq=1 ttl=64 time=0.881 ms
# tcpdump -vvv -n -i eth1 icmp
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
16:29:28.609980 IP (tos 0×0, ttl 64, id 0, offset 0, flags [DF], proto 1, length: 9000) 192.168.1.1 > 192.168.1.132: icmp 8980: echo request seq 0
16:29:28.610684 IP (tos 0×0, ttl 64, id 26165, offset 0, flags [none], proto 1, length: 9000) 192.168.1.132 > 192.168.1.1: icmp 8980: echo reply seq 0
16:29:29.611055 IP (tos 0×0, ttl 64, id 0, offset 0, flags [DF], proto 1, length: 9000) 192.168.1.1 > 192.168.1.132: icmp 8980: echo request seq 1
16:29:29.612132 IP (tos 0×0, ttl 64, id 26166, offset 0, flags [none], proto 1, length: 9000) 192.168.1.132 > 192.168.1.1: icmp 8980: echo reply seq 1
Windows下类似的命令:
C:\Documents and Settings\gengrf >ping 172.17.4.20 -l 9000 -f
Pinging 172.17.4.20 with 9000 bytes of data:
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Linux 下使用 minicom 这个命令来控制交换机,可以查看是否支持 Jumbo Frame ,如果不支持,可以用 jumboframe enable 指令开启。
#minicom -s 设置连接参数并保存:
/dev/ttyS0 (表示COM1)
9600 8N1 (表示传输速率为 9600bit/s 、 8 位数据位、 1 位停止位、无校验和无流控)
#minicom 再次执行后就可以连到交换机了
<H3C>
%Apr 2 05:41:32:378 2000 H3C SHELL/5/LOGIN:- 1 - Console(aux0) in unit1 login
<H3C>system-view
[H3C]interface gigabitethernet 1/0/1 (可以设置到1/0/28 后面4个是光纤口)
[H3C-GigabitEthernet1/0/1]display interface GigabitEthernet1/0/23 (可以指定端口,如果不指定,那就遍列出来所有端口的信息)
GigabitEthernet1/0/23 current state : UP
IP Sending Frames’ Format is PKTFMT_ETHNT_2, Hardware address is 000f-e2bc-f853
Media type is twisted pair, loopback not set
Port hardware type is 1000_BASE_T
1000Mbps-speed mode, full-duplex mode
Link speed type is autonegotiation, link duplex type is autonegotiation
Flow-control is not enabled
The Maximum Frame Length is 9216
Broadcast MAX-ratio: 100%
Unknown Multicast Packet drop: Disable
Unknown Unicast Packet drop: Disable
Allow jumbo frame to pass
PVID: 1
Mdi type: auto
Port link-type: access
Tagged VLAN ID : none
Untagged VLAN ID : 1
Last 300 seconds input: 0 packets/sec 0 bytes/sec
Last 300 seconds output: 0 packets/sec 1 bytes/sec
Input(total): 3547277 packets, - bytes
- broadcasts, - multicasts, - pauses
Input(normal): 3547277 packets, 550373662 bytes
19 broadcasts, 0 multicasts, 0 pauses
Input: 0 input errors, 0 runts, 0 giants, - throttles, 0 CRC
0 frame, 0 overruns, 0 aborts, - ignored, - parity errors
Output(total): 3427734 packets, - bytes
- broadcasts, - multicasts, - pauses
Output(normal): 3427734 packets, 351951118 bytes
27 broadcasts, 198 multicasts, 0 pauses
Output: 0 output errors, - underruns, - buffer failures
0 aborts, 0 deferred, 0 collisions, 0 late collisions
- lost carrier, - no carrier