Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
TechNoir
Зарегистрирован: 22.08.2003 Сообщения: 1632 Откуда: Moscou
|
Добавлено: Сб Апр 10 2004 15:27 Заголовок сообщения: NAT и активный ftp. |
|
|
Существует утверждение, что клиент с приватным IP, ходящий в инет через NAT не может заходить на ftp в активном режиме.
Внимание вопрос: Верно ли утверждение? _________________ Vive la Russie! |
|
Вернуться к началу |
|
 |
Met Гость
|
Добавлено: Сб Апр 10 2004 18:03 Заголовок сообщения: |
|
|
В принципе да .... поскольку при не пассивном режиме работы ftp , взаимодействие происходит если не изменяет память:
1. клиент обращается на 21-й порт сервера с определенного порта по tcp
2. сервер со своего 20-го производит коннект на вышеуказанный клиентский порт и передает list доступных файлов по протоколу подобному telnet
3. дальше между 20-м портом сервера и идет сама прокачка файла ...
Может чего то и попутал с портами , но суть в том ,что при NAT - клиентский хост отшлет серверу ftp не свой реальный ip и порт по которому обращался , а ip NAT сервера и подложный порт который будет отмечен в таблице трансляции ... ничего не подозревающий сервер естественно начнет конектится на тот ip:port который нашел в заголовках и попытается установить сессию по этим параметрам . Естественно ничего не подозревающий NAT тупо отбрасывает пришедший пакет , так как не видит в своих таблицах совпадающих адресатов для порта 20 ftp сервера. В общем вся проблема , что вторая сессия иницилизируется снаружи и за NAT попасть не может .
Для того чтобы все работало - включаем в настройках клиента пассивный режим, при котором на шаге 1 клиент объявляет серверу , что не надо 2-м шагом конектится к нему с 20-го порта , а типа подожди и я сам устанавлю сессию с другого выбранного порта на твой порт 20 и мы начнем работать . |
|
Вернуться к началу |
|
 |
TechNoir
Зарегистрирован: 22.08.2003 Сообщения: 1632 Откуда: Moscou
|
Добавлено: Сб Апр 10 2004 18:29 Заголовок сообщения: |
|
|
Все дело в том что у меня через NAT все прокатывает.
Через пассивный (само собой) и что удивительно через обычный ("активный"). Наблюдаю это, во-первых с самого ftp-клиента, а также tcpdump показывает в сети перед NAT и в сети после что NAT действительно NATит при запросе с ftp сервера с исходящего порта номер 20 (ftp-data). Но как, запись в таблице соответствий ведь не могла появиться.
Однако, порылся в инете. Написано:
------------------------------------
"Команды PORT и ответ на PASV посылают IP адрес и номер порта в теле сообщения в десятичном представлении. При прохождении через NAT возникает необходимость, корректировать эту информацию в теле FTP-сообщения. Поскольку каждая цифра в представленном в десятичном ASCII виде IP адресе это лишний байт нашего пактеа, при изменении адреса в сторону увеличения или уменьшения количества цифр в октетах, размер всего пакета соответствующим образом изменится. Таким образом перед NATом стоит дополнительная задача - внести изменения в TCP sequence number, пересчитать контрольные суммы и размеры пакетов как IP так и TCP. Так что если у вас "нерадивый" NAT, не утруждающий себя хотя бы одним из вышеперечисленных занятий - с ftp могут случится проблемы. Все вышесказанное, кстати, справедливо и применительно к другим протоколам, в которых изменения IP адреса влечет за собой изменение размера пакета."
----------------------------------- _________________ Vive la Russie! |
|
Вернуться к началу |
|
 |
Гость
|
Добавлено: Сб Апр 10 2004 22:56 Заголовок сообщения: |
|
|
Хм ... очень интересно ! Спасибо за интересную тему !
Кстати а на чем реализована трансляция в твоем случае ? - небось ipchains или iptables Потому что со WinRoute, WinGate точно не пашет ... а с аппаратными основами , например Cisco IOS я не пробовал ... как то по автомату всегда включаю пассив за натом. |
|
Вернуться к началу |
|
 |
TechNoir
Зарегистрирован: 22.08.2003 Сообщения: 1632 Откуда: Moscou
|
Добавлено: Вс Апр 11 2004 11:40 Заголовок сообщения: |
|
|
Я не особенно знаком с WinRoute и WinGate. - вообще с NAT'ом под Windows.
Ты хочешь сказать, что например используя ftp-клиент Windows Commander ты вынужден ходить на ftp-сервера только в пассивном режиме. В обычном ТОЧНО не получается?
У меня Unix FreeBSD. Делаю с помощью ipfw. На удивление работает.
Кто расскажет работает ли активный ftp - через линуксовый NAT? _________________ Vive la Russie! |
|
Вернуться к началу |
|
 |
TechNoir
Зарегистрирован: 22.08.2003 Сообщения: 1632 Откуда: Moscou
|
Добавлено: Вт Апр 13 2004 21:34 Заголовок сообщения: |
|
|
Да... это... И3008 ты бы тоже сказал чего-нибудь _________________ Vive la Russie! |
|
Вернуться к началу |
|
 |
DmitriyS
Зарегистрирован: 19.06.2002 Сообщения: 381 Откуда: Е-бург
|
Добавлено: Ср Апр 14 2004 07:34 Заголовок сообщения: |
|
|
Из-за ната работает активный FTP, если используется ядровый модуль модуль ip_nat_ftp.o (или если он вкомпилен в ядро). Это в линухе, в других юнихах есть подобное. Так же для ната реализованы и другин протоколы аля irc, quake1 и т.д. |
|
Вернуться к началу |
|
 |
|