Страница 1 из 1

FreeBSD-8.1-RELEASE amd64 BCM5715C странности с MTU

Добавлено: 2011-09-25 16:56:02
sudosu
Всем привет, у меня сабжевая сетевая карта. Тему я уже поднимал тут и тут.

есть три железки:
- C2801 (c2801-adventerprisek9-mz.124-3h);
- C2960 (c2960-lanbase-mz.122-35.SE5);
- Sun Fire X2100 M2 (FreeBSD 8.1-RELEASE amd64);
Собраны так:
c2801-fa0/1 <-> fa0/24-c2960-fa0/3 <-> bge0-Sun_Fire_X2100_M2

И происходят с ними странные вещи. Вот немного конфигов/пингов с df-bit:

Код: Выделить всё

[root@sf1 /usr/home/sudosu]# ifconfig bge0
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LINKSTATE>
        ether 00:1b:24:5d:38:1f
        media: Ethernet 100baseTX <full-duplex>
        status: active
[root@sf1 /usr/home/sudosu]# ifconfig vlan17
vlan17: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:1b:24:5d:38:1f
        inet XXX.YYY.254.35 netmask 0xfffffff0 broadcast XXX.YYY.254.47
        media: Ethernet 100baseTX <full-duplex>
        status: active
        vlan: 17 parent interface: bge0
[root@sf1 /usr/home/sudosu]# netstat -r | grep defau
default            XXX.YYY.254.33     UGS         0 21721900 vlan17
[root@sf1 /usr/home/sudosu]#                         # это адрес 2801
[root@sf1 /usr/home/sudosu]# ping -D -c 2 -s 1273 XXX.YYY.254.33
PING XXX.YYY.254.33 (XXX.YYY.254.33): 1273 data bytes
ping: sendto: Message too long
ping: sendto: Message too long

--- XXX.YYY.254.33 ping statistics ---
2 packets transmitted, 0 packets received, 100.0% packet loss
[root@sf1 /usr/home/sudosu]# ping -D -c 2 -s 1272 XXX.YYY.254.33
PING XXX.YYY.254.33 (XXX.YYY.254.33): 1272 data bytes
1280 bytes from XXX.YYY.254.33: icmp_seq=0 ttl=255 time=1.476 ms
1280 bytes from XXX.YYY.254.33: icmp_seq=1 ttl=255 time=1.298 ms

--- XXX.YYY.254.33 ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 1.298/1.387/1.476/0.089 ms
[root@sf1 /usr/home/sudosu]#

C2960-24-SPB-SRV1#sh cdp ne | i sf1
sf1.tc-axis.ru   Fas 0/3           170            H       amd64     vlan17
sf1.tc-axis.ru   Fas 0/3           170            H       amd64     bge0
C2960-24-SPB-SRV1#sh cdp ne | i 280
C2800-SPB-SRV.tc-axis.ru
                 Fas 0/24          139          R S I     2801      Fas 0/1
C2960-24-SPB-SRV1#  sh int fa0/3 mtu

Port      Name               MTU
Fa0/3     "sf1.tech bge0 tru 1500        
C2960-24-SPB-SRV1# sh int fa0/24 mtu

Port      Name               MTU
Fa0/24    "Uplink 2800-SPB-S 1500        
C2960-24-SPB-SRV1#

C2800-SPB-SRV#sh cdp ne | i 2960
C2960-24-SPB-SRV1
                 Fas 0/1            174         S I       WS-C2960-2Fas 0/24
C2800-SPB-SRV#sh int fa0/1 | i MTU
  MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec, 
C2800-SPB-SRV#sh int fa0/1.17 | i MTU
  MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec, 
C2800-SPB-SRV#
На мой взгляд должно ходить 1472, но ходит 1272 в направлении FreeBSD --> 2801.
Есть у кого-нибудь идеи - куда девались 200 байт?

Проблема вообще-то доставляет проблем. Ведь mss FreeBSD определяет из того, какой у нее MTU на соответствующем интерфейсе, а он там 1500. Из-за этого все tcp соединения с большими пакетами разваливаются по тайм-ауту.
Может у кого был опыт решения подобных проблем?

Re: FreeBSD-8.1-RELEASE amd64 BCM5715C странности с MTU

Добавлено: 2011-09-25 19:53:59
Гость
почему то мне кажется что на VLAN не может быть 1500, потому что он инкапсулируется в транк и далее в езернет

а фикситьтакое просто PF+srub на vlan

Re: FreeBSD-8.1-RELEASE amd64 BCM5715C странности с MTU

Добавлено: 2011-09-25 19:55:37
Гость
кстати, не надо путать фрагментацию в tcp сессии и MTU

Re: FreeBSD-8.1-RELEASE amd64 BCM5715C странности с MTU

Добавлено: 2011-09-26 1:36:06
sudosu
Гость писал(а):почему то мне кажется что на VLAN не может быть 1500, потому что он инкапсулируется в транк и далее в езернет
sudosu писал(а): На мой взгляд должно ходить 1472, но ходит 1272...
Там не инкапсуляция, а дополнительные 4 байта в заголовок, я и впрямь про них забыл, т.е. правильно 1468 байт, но не 1272 :(
Гость писал(а): а фикситьтакое просто PF+srub на vlan
Вот этого у меня почему-то не получается:

Код: Выделить всё

[root@sf1 /usr/home/sudosu]# pfctl -s rules | grep scrub && tail -f /var/log/maillog | grep "lost con"
scrub on vlan17 all max-mss 1272 reassemble tcp fragment reassemble
Sep 26 02:25:21 sf1 postfix/smtpd[89355]: lost connection after DATA from unknown[125.162.254.47]
Sep 26 02:30:23 sf1 postfix/smtpd[89509]: lost connection after DATA from pc-25-50-241-201.cm.vtr.net[201.241.50.25]
Sep 26 02:30:34 sf1 postfix/smtpd[89509]: lost connection after RCPT from unknown[220.120.246.239]
Sep 26 02:31:23 sf1 postfix/smtpd[89509]: lost connection after DATA from unknown[186.13.19.157]
Sep 26 02:32:05 sf1 postfix/smtpd[89509]: lost connection after DATA from unknown[186.13.19.157]
^C
[root@sf1 /usr/home/sudosu]#
Может я что-то делаю неправильно?
Гость писал(а):кстати, не надо путать фрагментацию в tcp сессии и MTU
Я, вобщем-то и не путаю, просто первое от второго здорово зависит :smile:

Re: FreeBSD-8.1-RELEASE amd64 BCM5715C странности с MTU

Добавлено: 2011-09-26 12:24:36
Гость
scrub on vlan17 all
должно быть достаточно

Re: FreeBSD-8.1-RELEASE amd64 BCM5715C странности с MTU

Добавлено: 2011-09-26 13:27:30
sudosu
Видимо не хватает:

Код: Выделить всё

[root@sf1 /usr/home/sudosu]# date && pfctl -s rules | grep scrub && tail -f /var/log/maillog | grep "lost con"
понедельник, 26 сентября 2011 г. 13:38:24 (MSD)
scrub on vlan17 all fragment reassemble
Sep 26 13:38:36 sf1 postfix/smtpd[16564]: lost connection after DATA from unknown[41.216.230.106]
Sep 26 13:38:45 sf1 postfix/smtpd[14980]: lost connection after RCPT from unknown[66.110.122.226]
Sep 26 13:39:11 sf1 postfix/smtpd[16564]: lost connection after RCPT from unknown[122.178.189.222]
Sep 26 13:40:31 sf1 postfix/smtpd[14980]: lost connection after RCPT from unknown[220.225.219.21]
Sep 26 13:40:54 sf1 postfix/smtpd[16564]: lost connection after DATA from unknown[123.17.151.134]
Sep 26 13:40:59 sf1 postfix/smtpd[14980]: lost connection after DATA from unknown[123.236.66.84]
Что я делаю неправильно? :(