Трансляция сетевых адресов (NAT)
Я получаю сообщения о том, что заполнена таблица трансляции для TCP (или UDP) протокола; однако, при просмотре окна активных соединений видно, что число активных соединений в данный момент заметно меньше максимально допустимого значения, установленного в системе. В чем тут дело?
Дело в том, что транслятор сетевых адресов считает активными те соединения, которые еще не достигли тайм-аута (устновленного в окне настройки параметров), независимо от того, были ли эти соединения закрыты или нет.
Предположим, что тайм-аут составляет 900 секунд (предустановленное значение). Тогда это означает, что все соединения, установленные в течение последних 15 минут, содержаться удерживаться в таблице трансляции. Некоторые протоколы, такие как HTTP, используют большое число небольших соединений для передачи данных, и в связи с этим они могут явиться причиной того, что таблица соединений транслятора адресов будет заполнена явно меньшим числом соединений, чем ожидалось.
Решение этой проблемы состоит в том, чтобы увеличивать максимальное число соединений до тех пор, пока не будет найдено значение, при котором не будут генерироваться данные сообщения.
Когда я пользуюсь транслятором сетевых адресов межсетевого экрана Aker с FTP, на дисплее появляются два соединения к одному и тому же хосту назначения, одно с моего хоста, а другое с межсетевого экрана. В чем дело?
Это нормальное поведение транслятора сетевых адресов в отношении FTP протокола. На дисплее соединения всегда появляются парами, что продемонстрировано ниже на примере (предположим, что межсетевой экран имеет IP адрес 200.239.39.1):
10.0.0.1 1078 aaa.bbb.ccc.ddd 21
200.239.39.1 1040 aaa.bbb.ccc.ddd 21
Два соединения появляются на дисплее потому, что FTP соединение клиента прозрачно перенаправляется FTP proxy, запущенному на межсетевом экране, и этот proxy устанавливает соединение в направлении необходимого сервера. Такое происходит только в отношении контрольного канала FTP. Канал передачи данных, так же как и соединения других протоколов, проходит через обычный транслятор сетевых адресов, запущенный внутри ядра.
Как только я добавляю хост в серверную таблицу трансляции, все инициированные таким хостом соединения имеют адрес источника св соответствии с таблицей, кроме FTP соединений, которые имеют в качестве адреса источника глобальный виртуальный адрес. Что я делаю неправильно?
Ничего. Все FTP соединения автоматически перенаправляются локальному proxy, и поэтому, в качестве виртуальный IP адрес является их адресом источника. Этот процесс происходит независимо от того, имеет ли хост свой IP адрес в серверной таблице трансляции или нет.