Шлюз в инет

Степан Ильин aka Step

Хакер, номер #076, стр. 076-024-1

(faq@real.xakep.ru)

Организуем в локалке совместный интернет-канал с системой учета трафика

Широкополосный доступ в интернет стремительно дешевеет. Все чаще и чаще люди спрашивают меня: «Как сделать так, чтобы несколько компьютеров в локалке могли работать в инете через одно подключение?». Решить эту проблему чрезвычайно просто, не обладая при этом глубокими познаниями в администрировании. Даже в Windows XP имеются все необходимые средства для организации шлюза между внутренней и внешней глобальной сетью.

В чем сила, NAT?

Для полноценного решения этой задачи, так или иначе, придется воспользоваться технологией NAT или, иначе говоря, трансляцией сетевых адресов (Network Address Translation. Ее, в частности, должен поддерживать маршрутизатор, который обеспечивает связь между внутренней сетью и интернетом. Понятием «маршрутизатор» в нашем случае нужно воспринимать компьютер, специальным образом настроенный для передачи IP-пакетов в нужном направлении. Это направление определяется исходя из специальных правил, которые записаны в таблицу маршрутизации (получить текущую таблицу можно командой route /print). Принято выделять статические и динамические правила. Первые жестко зафиксированы и могут быть внесены, изменены или удалены только администратором. Динамические, в свою очередь, вносятся в таблицу маршрутизации автоматически, используя данные, полученные от других маршрутизаторов.

Каждый компьютер локальной сети для полноценного обмена пакетами должен иметь свой уникальный IP-адрес. С другой стороны, во внешней сети (инете) любой узел также имеет его. Каким же образом избегается путаница? Для этого специальным стандартом RFC были определены адреса блоков, которые применяются исключительно в локальных сетях. Ими стали диапазоны 10.0.0.0-10.255.255.255, 172.16.0.0-172.16.255.255, 192.168.0.0-192.168.255.255.Стандарт гарантировал, что они никогда не будут применяться во внешних сетях. И не обманул. Пакеты с такими адресами попросту не маршрутизируются в интернет, но это отнюдь не значит, что связь машины из локалки и сервера в интернете невозможна. Был разработан специальный механизм, который передает пакеты узлам во внешнюю сеть, получает от них ответы, после чего доставляет их обратно компьютерам внутри локалки. Как ты уже понял, это NAT.

Для организации коллективного подключения к инету, необходим, по меньшей мере, один IP-адрес из внешней сети — его предоставляет провайдер. Сетевой интерфейс с внешним IP устанавливается в маршрутизатор, туда же ставится еще одна сетевуха для доступа в локальную сеть. Чтобы понять технологию NAT, рассмотрим ее работу на примере.

Начну с того, что любой IP-пакет состоит из заголовка и поля данных. Два основных поля заголовка: адрес отправителя (SRC IP) и адрес получателя (DST IP). Допустим, клиент из локальной сети (адрес записывается в SCR IP) посылает пакет узлу с адресом server.ru (DST IP). Когда пакет прибывает на маршрутизатор, тот модифицирует заголовок специальным образом. В качестве адреса отправителя указывается IP-адрес маршрутизатора во внешней сети, что обеспечивает возможность получения ответа. При этом все изначальные параметры пакета записываются в NAT-таблице. Теперь, когда от сервера server.ru придет ответный пакет, маршрутизатор сможет произвести обратную замену и доставить его клиентскому компьютеру.

Содержание  Вперед на стр. 076-024-2
ttfb: 3.2808780670166 ms