Глава 11. IP Masquerade и Network Address Translation

Этот сервис нужен для подключения локальной сети через один компьютер к большой внешней сети. Связано это как с появлением необходимости в защите сетей с помощью firewall, так и с тем, что полноценные сетевые адреса дороги да и не всегда нужны. В качестве примера рассмотрим сеть небольшой фирмы. Она имеет одну машину-шлюз, подключенную к Internet, остальные машины должны работать через этот шлюз. Но что делать, если их адреса относятся к внутренней частной сети? На помощь приходит IP Masquerade.

Одной из частей этого сервиса является сетевая трансляция адресов (Network Address Translation, NAT). NAT описывает процесс изменения сетевых адресов, содержащихся в заголовках пакетов. Этот подход является идеальным для решения проблемы. Таким образом, ВСЯ сеть может реально работать с Internet через ОДИН IP-адрес!

IP masquerading позволяет использовать частный IP-адрес в локальной сети и поручить маршрутизатору преобразование адресов с учетов сервисов и портов. Когда такой маршрутизатор получает пакет из внутренней сети, он меняет его так, будто пакет пришел на самом деле от маршрутизатора. Затем пакет отсылается в сеть. С пакетами ответов из сети выполняется то же самое, но в обратном порядке.

Мы имеем маленькую сеть Ethernet на частных адресах, которые не могут использоваться в Internet. Сеть имеет Linux-маршрутизатор, обеспечивающий доступ к Internet. Одно из автоматизированных рабочих мест в сети (192.168.1.3) пожелало установить подключение к удаленному компьютеру 209.1.106.178 через порт 8888. Автоматизированное рабочее место направляет пакет маршрутизатору, который идентифицирует этот запрос подключения как требование услуг masquerade. Он принимает пакет, выделяет для него порт 1035, заменяет адрес и номер порта в пакете и передает пакет в сеть. Компьютер адресата полагает, что получил подключения из Linux-компьютера, который обеспечивает masquerade, и посылает ответ. Маршрутизатор после получения этого ответа находит связь в таблице masquerade и производит обратную замену адреса и порта. Локальный компьютер полагает, что он работает непосредственно с удаленным компьютером. Удаленный главный компьютер не знает ничего относительно локального компьютера вообще и полагает, что получил подключение с Linux-компьютера, обеспечивающего masquerade.

А вот этот последний компьютер знает, что эти два компьютера говорят друг другу на каких портах, и выполняет прозрачную подстановку адресов и портов. Внешне выглядит сложно, но реальная настройка отличается простотой.

Краевые эффекты

IP masquerade порождает несколько побочных эффектов. Поскольку машина с IP masquerade находится на краю двух сетей, эффекты получили название краевых. Частью они полезны, частью не очень.

Ни один из компьютеров в сети позади маршрутизатора masquerade никогда не проявится в сети непосредственно. Следовательно, вы нуждаетесь только в одном реальном адресе IP, чтобы позволить всем компьютерам делать сетевые подключения в Internet. Это имеет и плохую сторону: ни один из этих компьютеров не видим из Internet, и вы не можете непосредственно соединяться с ними из Internet. Единственный компьютер, видимый в masquerade-сети, это машина, которая обеспечивает masquerade. Это важно, когда используются услуги типа почты или FTP. Этот факт помогает определять то, что услуги нужно обеспечить masquerade-компьютером.

Второй момент: поскольку внутренние компьютеры ни при каких обстоятельствах не будут видны из внешней сети, резко падают требования к их защите, иногда на шлюзе даже не нужен firewall! Однако, лучше его все же использовать, поскольку надежность всей сети определяется надежностью шлюза.

Третье, IP masquerade будет иметь некоторое воздействие на эффективность вашей работы с сетями. При большом числе машин такое явление начнет проявляться. IP masquerade должен делать много работы для каждого пакета. Так что ставьте на шлюз машину помощнее.

Наконец, некоторые сетевые сервисы либо вообще не работают через masquerade, либо требуют немало работы по их настройке. Обычно это сервисы, которым нужны входящие соединения: Direct Communications Channels (DCC), IRC, разные видео и аудио трансляций. Некоторые из этих услуг имеют модули для своей работы в такой ситуации, другие вообще не могут быть использованы.