Как применить Linux в качестве маршрутизатора между небольшой сетью и Интернетом?

Подключение ЛС к Интернету

Есть несколько способов подключения локальной сети (ЛС) к Интернету, отличающиеся объемом адресного пространства. Можно назвать следующие: через коммутируемое соединение (динамический IP) или выделенную линию с одним IP-адресом или с выделенной подсетью адресов. Есть также вариант с использованием внутренних IP-адресов провайдера. В любом случае компьютер с Linux должен иметь два сетевых интерфейса: один для связи с локальной сетью, другой для Интернета.

Известно, что особенностью коммутируемого доступа по телефонным линиям является непостоянность соединения. Его установку можно инициировать либо вручную специальной командой, либо автоматически. Первый способ подробно описан ранее («Как подключить Linux к Internet» — «Мир ПК», № 6/2000, с. 76). Следует только добавить, что с точки зрения маршрутизации коммутируемая линия почти эквивалентна выделенной с одним IP-адресом с той лишь разницей, что динамический адрес не позволяет устанавливать во внутренней сети общедоступные Web- или почтовые серверы.

Вариант автоматического подключения компьютера с Linux реализуется, например, с помощью утилиты diald: она самостоятельно устанавливает коммутируемое соединение в том случае, когда появляются IP-пакеты, которые нужно переправить во внешнюю сеть (Интернет) из локальной сети.

Другой метод установки коммутируемого соединения использует систему EQL, интегрированную в ядро Linux и позволяющую применять для передачи информации две телефонные линии. В этом случае благодаря перераспределению нагрузки суммарная скорость передачи данных увеличивается. Однако такой метод соединения должен поддерживать и провайдер. Поэтому, скорее всего, эта система лучше подойдет для подключения удаленных филиалов или складов.

Согласование адресов

При соединении локальной сети с Интернетом, когда имеется всего один IP-адрес, проблемой является согласование внутреннего IP-пространства с общим адресным пространством Интернета. В этом случае обычно используют преобразование (или трансляцию) адресов — NAT (Network Address Translation)*.

Следует отметить, что во всех перечисленных выше случаях компьютер с Linux выполняет только одну функцию: «вылавливает» из внутренней сети IP-пакеты с внешними адресами и передает их в сетевой интерфейс, который подключен к cети провайдера. Он также получает пакеты из Интернета, переводит их адреса во внутреннюю нумерацию и передает в локальную сеть. То есть работает, в основном, система трансляции адресов, при этом стандартные механизмы маршрутизации практически не используются.

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

Настройка маршрутизации

Для настройки маршрутизации нужно определить адрес, сетевую маску и IP-адрес шлюза, через который пакет дойдет до адресата. Для этого можно пользоваться стандартной утилитой linuxconf, а точнее ее частью netconf. Раздел Routing and gateways (маршрутизация и шлюзы) позволяет настроить все, что связано с маршрутизацией. Впрочем, можно воспользоваться и текстовыми утилитами ifconfig для настройки сетевых интерфейсов и утилитой route для изучения и изменения таблиц маршрутизации.

Однако нужно иметь в виду, что netconf изменяет определенные конфигурационные файлы, что позволяет восстанавливать состояние при перезагрузке. В то же время текстовые утилиты меняют только текущее состояние системы, не сохраняя настроек в конфигурационных файлах. Поэтому текстовые утилиты лучше использовать для получения справочной информации и тестирования, а уже с помощью netconf «зафиксировать» получившуюся устойчивую конфигурацию. Заметим, что для восстановления сетевой конфигурации netconf пользуется теми же командными утилитами ifconfig и route. Можно даже посмотреть, как это делается, если заглянуть в файл /etc/rc.d/init.d/ network, где хранятся сценарии конфигурирования сетевой инфраструктуры.

Защита внутренней сети

При подключении к Интернету необходимо задуматься о защите внутренней сети. Даже если там не хранится никаких секретов, все равно следует предусмотреть хотя бы минимальную защиту. В противном случае вы рискуете переплатить за подключение. Основу сетевой защиты, как правило, составляет межсетевой экран (firewall), базирующийся на фильтрации пакетов. В Linux предусмотрен механизм фильтрации в виде подсистемы ipchains, с помощью которой можно определять правила обработки IP-пакетов. Поскольку и защита, и маршрутизация работают с одними и теми же пакетами, то и настраивать их нужно совместно. В частности, система безопасности может блокировать некоторые подозрительные IP-пакеты, приходящие извне, и тем самым упростить работу маршрутизатора.

Наиболее сложная настройка маршрутизации требуется при двух внешних подключениях. В этом случае приходится заботиться и о распределении нагрузки между соединениями, и о вычислении минимального расстояния до получателя, и о работе с различными протоколами передачи информации о маршрутах. К счастью, для небольших локальных сетей такая избыточность не нужна, а если она все-таки возникла, то лучше пользоваться коммерческими маршрутизаторами. Кроме того, российская компания SWsoft выпустила дистрибутив Linux под названием xLswitch, который изначально рассчитан на построение маршрутизаторов на основе ПК.

ОБ АВТОРЕ

Валерий Коржов — обозреватель еженедельника ComputerWorld, e-mail: oskar@osp.ru


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

назад