Дано: классическая схема подключения с FTP-сервером за NAT.
Требуется: Настроить маршрутизатор ESR так, чтобы была возможность подключаться к FTP-серверу клиентам в активном либо пассивном режиме из сети Интернет.
Решение:
FTP использует клиент-серверную архитектуру, что означает, что передача данных происходит между двумя программами: клиентской и серверной. Кратко рассмотрим особенности особенности режимов подключения. Протокол FTP работает поверх протокола TCP. Использует одновременно два TCP - соединения: одно из них отвечает за управление передачей данных, а второй за передачу данных. Управляющее соединение всегда происходит со стороны клиента на порт сервера 21 и остается на протяжении всего сеанса работы открытым. Соединение данных открывается и закрывается по мере необходимости в приеме или получении данных.
Клиент инициирует TCP - соединение с динамического порта (1024-65535) к порту номер 21 на FTP - сервере. Дальнейшие действия зависят от того, какой режим FTP (Активный или Пассивный) выбран.
В активном режиме, когда клиент подключается, он также сообщает серверу номер порта (из динамического диапазона 1024-65535) для того, чтобы сервер мог подключиться к клиенту для установки соединения для передачи данных. FTP-сервер подключается к заданному номеру порта клиента, используя со своей стороны номер TCP-порта 20 для передачи данных.
В пассивном режиме, сервер сообщает клиенту при его подключении номер TCP-порта (из динамического диапазона 1024-65535), к которому можно подключиться для установки соединения передачи данных.
Главное отличие между активным режимом FTP и пассивным режимом FTP – это сторона, которая открывает соединение для передачи данных. В активном режиме клиент должен принять соединение от FTP-сервера. В пассивном режиме клиент всегда инициирует соединение.
Исходя из этих данных, для активного режима понадобиться сконфигурировать DNAT-трансляцию на 21 TCP порт FTP сервера.
Для пассивного режима дополнительно потребуется добавить пул портов для передачи данных, которые может использовать клиент.
Для уменьшения количества открытых портов при настройке ESR, вместо настройки пула, включим ip firewall sessions tracking ftp (функция отслеживания сессий уровня приложений для протокола ftp).
Для корректной работы ftp-сервера за NAT для пассивного режима ftp используем nat alg ftp (функция трансляции IP-адресов в заголовках уровня приложений).
hostname R0 object-group service FTP port-range 21 exit object-group network LAN ip prefix 192.0.2.0/24 exit object-group network WAN ip address-range 203.0.113.1 exit interface gigabitethernet 1/0/1 description "LAN" ip firewall disable ip address 192.0.2.1/24 exit interface gigabitethernet 1/0/2 description "WAN" ip firewall disable ip address 203.0.113.1/30 exit ip firewall sessions counters nat destination pool FTP ip address 192.0.2.2 ip port 21 exit ruleset DNAT from interface gigabitethernet 1/0/2 rule 10 match protocol tcp match destination-address object-group WAN match destination-port object-group FTP action destination-nat pool FTP enable exit exit exit nat source ruleset TEST to interface gigabitethernet 1/0/2 rule 10 match source-address object-group LAN action source-nat interface enable exit exit exit ip route 0.0.0.0/0 203.0.113.2
R0# show ip firewall sessions Codes: E - expected, U - unreplied, A - assured, C - confirmed Prot Aging Inside source Inside destination Outside source Outside destination Pkts Bytes Status ----- ---------- --------------------- --------------------- --------------------- --------------------- ---------- ---------- ------ tcp 112 192.0.2.2:20 198.51.100.2:49900 203.0.113.1:20 198.51.100.2:49900 5 1421 AC tcp 112 192.0.2.2:20 198.51.100.2:49901 203.0.113.1:20 198.51.100.2:49901 117 6092 AC tcp 112 192.0.2.2:20 198.51.100.2:49902 203.0.113.1:20 198.51.100.2:49902 5 1484 AC tcp 102 192.0.2.2:20 198.51.100.2:49895 203.0.113.1:20 198.51.100.2:49895 5 1421 AC tcp 112 198.51.100.2:49893 192.0.3.2:21 198.51.100.2:49893 203.0.113.1:21 29 1443 AC
hostname R1 object-group service FTP port-range 21 exit object-group network LAN ip prefix 192.0.2.0/24 exit object-group network WAN ip address-range 203.0.113.1 exit interface gigabitethernet 1/0/1 description "LAN" ip firewall disable ip address 192.0.2.1/24 exit interface gigabitethernet 1/0/2 description "WAN" ip firewall disable ip address 203.0.113.1/30 exit ip firewall sessions counters ip firewall sessions tracking ftp nat destination pool FTP ip address 192.0.2.2 ip port 21 exit ruleset DNAT from interface gigabitethernet 1/0/2 rule 10 match protocol tcp match destination-address object-group WAN match destination-port object-group FTP action destination-nat pool FTP enable exit exit exit nat source ruleset TEST to interface gigabitethernet 1/0/2 rule 10 match source-address object-group LAN action source-nat interface enable exit exit exit nat alg ftp ip route 0.0.0.0/0 203.0.113.2
R1# show ip firewall sessions Codes: E - expected, U - unreplied, A - assured, C - confirmed Prot Aging Inside source Inside destination Outside source Outside destination Pkts Bytes Status ----- ---------- --------------------- --------------------- --------------------- --------------------- ---------- ---------- ------ tcp 91 198.51.100.2:49507 192.0.2.2:10097 198.51.100.2:49507 203.0.113.1:10097 4 168 EAC tcp 116 198.51.100.2:49505 192.0.2.2:21 198.51.100.2:49505 203.0.113.1:21 29 1651 AC tcp 116 198.51.100.2:49512 192.0.2.2:10090 198.51.100.2:49512 203.0.113.1:10090 4 168 EAC tcp 117 198.51.100.2:49513 192.0.2.2:10097 198.51.100.2:49513 203.0.113.1:10097 12 12786 EAC tcp 117 198.51.100.2:49514 192.0.2.2:10090 198.51.100.2:49514 203.0.113.1:10090 4 168 EAC