от чего зависит длина фрейма (проблема с FTP сервером)

Модераторы: Trinity admin`s, Free-lance moderator`s

Ответить
ars9691
Junior member
Сообщения: 10
Зарегистрирован: 07 май 2009, 11:08
Откуда: Екатеринбург

от чего зависит длина фрейма (проблема с FTP сервером)

Сообщение ars9691 » 03 фев 2011, 09:40

В локальной сети имеется FTP-сервер на линуксе (CentOS 5.2), шлюз в интернет тоже на линуксе (CentOS 5.5 NAT, iptables). Доступ к FTP серверу имеется как из локалки так и из интернет, работает нормально. Решил перенести FTP сервер на виртуальную машину (создал новую на том же хосте VMWare где стоит VM со шлюзом в интернет. И тут возникла проблема при скачивании файлов с моего FTP-сервера пользователями из интернета, при этом при закачке файлов на сервер проблем нет. Посмотрел сканером что происходит. Если скачивать с физического сервера то длина фрейма 1514 байт (длина данных FTP Data: 1448 bytes),

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

No.     Time        Source                Destination           Protocol Info
     17 11.665804   85.xxx.xxx.xxx         192.168.20.5          FTP      Request: RETR test.txt
     18 11.668818   192.168.20.5          85.xxx.xxx.xxx         TCP      ftp-data > 4992 [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=417598143 TSER=0 WS=7
     19 11.678884   85.xxx.xxx.xxx         192.168.20.5          TCP      4992 > ftp-data [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460 WS=0 TSV=0 TSER=0
     20 11.678955   192.168.20.5          85.xxx.xxx.xxx         TCP      ftp-data > 4992 [ACK] Seq=1 Ack=1 Win=5888 Len=0 TSV=417598153 TSER=0
     21 11.679185   192.168.20.5          85.xxx.xxx.xxx         FTP      Response: 150 Opening BINARY mode data connection fo
     22 11.707768   192.168.20.5          85.xxx.xxx.xxx         FTP-DATA FTP Data: 1448 bytes
     23 11.707859   192.168.20.5          85.xxx.xxx.xxx         FTP-DATA FTP Data: 1448 bytes
     24 11.745105   85.xxx.xxx.xxx         192.168.20.5          TCP      4992 > ftp-data [ACK] Seq=1 Ack=2897 Win=65535 Len=0 TSV=543588 TSER=417598182
     25 11.745163   192.168.20.5          85.xxx.xxx.xxx         FTP-DATA FTP Data: 1448 bytes
а с виртуального 2962 байта ( фрейм 33 длина данных FTP Data: 2896 bytes)

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

No.     Time        Source                Destination           Protocol Info
     31 10.854725   85.xxx.xxx.xxx         192.168.20.8          FTP      Request: RETR test.txt
     32 10.856640   192.168.20.8          85.xxx.xxx.xxx         FTP      Response: 150 Opening BINARY mode data c
Frame 33 (2962 bytes on wire, 96 bytes captured)
Ethernet II, Src: Vmware_86:34:c1 (00:50:56:86:34:c1), Dst: Vmware_86:12:16 (00:50:56:86:12:16)
Internet Protocol, Src: 192.168.20.8 (192.168.20.8), Dst: 85.xxx.xxx.xxx (85.xxx.xxx.xxx)
Transmission Control Protocol, Src Port: 22830 (22830), Dst Port: 46747 (46747), Seq: 1, Ack: 1, Len: 2896
[Packet size limited during capture: JXTA truncated]
     33 10.856770   192.168.20.8          85.xxx.xxx.xxx         TCP      22830 > 46747 [ACK] Seq=1 Ack=1 Win=5824 Len=2896 TSV=4453880 TSER=91880548[Packet size limited during capture]
     34 10.856794   192.168.20.8          85.xxx.xxx.xxx         TCP      22830 > 46747 [ACK] Seq=2897 Ack=1 Win=5824 Len=1448 TSV=4453880 TSER=91880548[Packet size limited during capture]
     35 10.882306   85.xxx.xxx.xxx         192.168.20.8          TCP      46747 > 22830 [ACK] Seq=1 Ack=1449 Win=8832 Len=0 TSV=91880575 TSER=4453880
     36 10.882325   192.168.20.8          85.xxx.xxx.xxx         TCP      22830 > 46747 [PSH, ACK] Seq=4345 Ack=1 Win=5824 Len=2896 TSV=4453906 TSER=91880575[Packet size limited during capture]
Вот что происходит на шлюзе

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

16	33.344710	192.168.20.7	192.168.254.246	FTP	Response: 200 PORT command successful. Consider using PASV.
17	33.350417	192.168.254.246	192.168.20.7	FTP	Request: RETR test.txt
18	33.390730	192.168.20.7	192.168.254.246	TCP	ftp > htcp [ACK] Seq=155 Ack=74 Win=5840 Len=0
19	33.645790	192.168.20.7	192.168.254.246	TCP	ftp-data > 4829 [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=161325850 TSER=0 WS=6
20	33.650450	192.168.254.246	192.168.20.7	TCP	4829 > ftp-data [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460 WS=0 TSV=0 TSER=0
21	33.650464	192.168.20.7	192.168.254.246	TCP	ftp-data > 4829 [ACK] Seq=1 Ack=1 Win=5888 Len=0 TSV=161325854 TSER=0
22	33.650544	192.168.20.7	192.168.254.246	FTP	Response: 150 Opening BINARY mode data connection for test.txt (2013756 bytes).
23	33.650784	192.168.20.7	192.168.254.246	FTP-DATA	FTP Data: 2896 bytes
24	33.650908	192.168.20.1	192.168.20.7	ICMP	Destination unreachable (Fragmentation needed)
25	33.650926	192.168.20.7	192.168.254.246	FTP-DATA	[TCP Out-Of-Order] FTP Data: 1392 bytes
26	33.650952	192.168.20.7	192.168.254.246	FTP-DATA	[TCP Out-Of-Order] FTP Data: 1392 bytes
27	33.658416	192.168.254.246	192.168.20.7	TCP	4829 > ftp-data [ACK] Seq=1 Ack=2785 Win=65535 Len=0 TSV=500982 TSER=161325855
28	33.658433	192.168.20.7	192.168.254.246	FTP-DATA	[TCP Retransmission] FTP Data: 112 bytes
29	33.658463	192.168.20.7	192.168.254.246	FTP-DATA	FTP Data: 2784 bytes
30	33.658590	192.168.20.1	192.168.20.7	ICMP	Destination unreachable (Fragmentation needed)
31	33.790420	192.168.254.246	192.168.20.7	TCP	4829 > ftp-data [ACK] Seq=1 Ack=2897 Win=65423 Len=0 TSV=500984 TSER=161325862
32	33.790438	192.168.20.7	192.168.254.246	FTP-DATA	FTP Data: 2784 bytes
33	33.790525	192.168.20.1	192.168.20.7	ICMP	Destination unreachable (Fragmentation needed)
34	33.790558	192.168.254.246	192.168.20.7	TCP	htcp > ftp [ACK] Seq=74 Ack=226 Win=65310 Len=0
35	34.011667	192.168.20.7	192.168.254.246	FTP-DATA	[TCP Retransmission] FTP Data: 1392 bytes
36	34.018543	192.168.254.246	192.168.20.7	TCP	4829 > ftp-data [ACK] Seq=1 Ack=4289 Win=65535 Len=0 TSV=500986 TSER=161326213
37	34.018562	192.168.20.7	192.168.254.246	FTP-DATA	[TCP Retransmission] FTP Data: 1392 bytes
38	34.018591	192.168.20.7	192.168.254.246	FTP-DATA	[TCP Retransmission] FTP Data: 1392 bytes
39	34.026490	192.168.254.246	192.168.20.7	TCP	4829 > ftp-data [ACK] Seq=1 Ack=7073 Win=65535 Len=0 TSV=500986 TSER=161326220
Не смотря на MSS=1460 от клиента сервер гонит данные большей длины (FTP Data: 2896 bytes) потом пересылает пакеты меньшего размера и опять начинает передавать пакеты больше MTU.
Перенес виртуальный FTP-сервер на другой хост с VMWare (VM FTP-сервер и VM интернет-шлюз на разных хостах VMWare) стало работать нормально.
Подскажите где "копать" - настраивать линух или vmware, или и то и другое ?

P.S.на физической машине FTP-сервер адаптер на 100mb, на vmware 1000mb (DL380)
MTU на всех адаптерах в линуксе 1500, в vmware тоже 1500

and3008
Заслуженный сетевик
Сообщения: 1109
Зарегистрирован: 03 янв 2004, 23:30
Откуда: Н.Новгород

Re: от чего зависит длина фрейма (проблема с FTP сервером)

Сообщение and3008 » 06 фев 2011, 18:58

Какому-то устройству с адресом 192.168.20.1 не нравится длина пакета, с которой происходит переда данных. Он шлет ICMP-пакет FTP-серверу, мол шли пакеты меньше. В трейсе это ICMP-пакет (Fragmentation needed). FTP-сервер шлет несколько пакетов меньшего размера, а потом из-за технологии "медленного старта" (составная часть протокола TCP), опять пытается слать большие пакеты. Опять отлуп, опять тормоза. Все работает, но хреново.

ИТОГО:
Смотрите, кто является шлюзом по умолчанию на физическом сервере и кто на виртуальном. Ну и выводы делайте. Вероятнее всего это разные роутеры, подключенные к разным каналам связи. А возможно это и не так, но копать надо и туда тоже. Так же на MTU влияет VLAN-ы и Jumbo-Frame, если они в среде VMWare настраивались. Результаты анализа могут быть весьма неожиданными для вас. Копайте.

Ответить

Вернуться в «Сети - Технические вопросы, решение проблем»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 14 гостей