Журнал Системный Администратор, Февраль 2005

Журнал Системный Администратор

Февраль 2005

Цена: $4.5 US

  Подписаться

Зарегистриванные пользователи, пожалуйста следуйте этой ссылке


FreeBSD tips: NAT по старинке

Сергей Супрунов

В наши дни, когда свободных IP-адресов становится все меньше и меньше, трансляция сетевых адресов (Network Address Translation – NAT) становится все более актуальной. Трудно найти провайдера, который, не сопротивляясь, даст вам нужное количество реальных адресов. Наиболее типичная ситуация – когда в «комплекте» с подключением к сети Интернет выделяется один-единственный IP-адрес. В результате внутреннюю сеть приходится строить на одной из приватных подсетей (что это такое, мы рассмотрим немного позже), и эти «левые», как их называют в народе, адреса нужно каким-то образом транслировать в тот единственный реальный, данный провайдером. Cразу стоит указать и на определенное преимущество такого подхода – в большинстве случаев локальная сеть становится невидимой снаружи, то есть любой внешний хост может общаться только с сервером NAT, ничего не подозревая о наличии (не говоря уже о структуре) вашей внутренней сети. В данной статье будет показано, как настроить NAT-сервер на базе FreeBSD. В качестве инструмента будет использоваться демон natd в связке с ipfw. В современных версиях системы такая схема считается не самой лучшей в плане гибкости и нагрузки на систему, и более предпочтительным является вариант на базе IPFilter – ipnat (этот NAT будет рассмотрен в одной из следующих статей). Тем не менее старый добрый natd до сих пор честно служит на просторах Сети, и оставлять его без внимания было бы, по меньшей мере, невежливо.

Сначала – немного теории. Как известно, в сети Интернет каждый хост, взаимодействующий с другими, должен иметь уникальный IP-адрес, по которому он и распознается. Несколько сетей (10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16) выделяются в так называемый «нерегистрируемый» диапазон, то есть они могут использоваться для нужд внутренних сетей без какой-либо регистрации. Эти адреса именуют также приватными, или «серыми». Чтобы избежать конфликтов адресов в глобальной сети, пакеты с такими адресами не должны выходить за пределы шлюза, ограничивающего соответствующую внутреннюю сеть. Поэтому такие адреса иногда называют немаршрутизируемыми (хотя внутри локальной сети они замечательно маршрутизируются). Вообще нужно заметить, что деление на реальные и приватные весьма условно. Я, например, учитывая дефицит «настоящих» адресов, выданных на наш узел, широко практикую раздачу клиентам адресов из сети 192.168.x.x, «пряча» их за NAT. Таким образом, с точки зрения клиента эти адреса будут реальными.

Оставшая часть статьи доступна только подписчикам. Если вы желаете продолжить чтение этой статьи, то вам необходимо подписаться на эту статью или весь номер.

Подписаться на весь номер

Зарегистриванные пользователи, пожалуйста следуйте по этой ссылке