Маршрутизация IP в ОС Linux
В этой лекции
- Способы подключения к сети в ОС Linux
- Применение утилиты ipfwadm
- Применение утилиты ipchains
- Настройка маршрутизации на клиентских рабочих станциях
В этой книге делается попытка помочь администраторам сетей и почтовых систем установить и настроить полнофункциональный сервер электронной почты под управлением ОС Linux для работы в сети Internet. Возможно, эта лекция вызовет у некоторых из вас недоумение: зачем говорить об IP-маршрутизации, когда книга посвящена работе почтового сервера? Выбирая платформу для почтового сервера, необходимо руководствоваться несколькими критериями. Для обеспечения работы сервера электронной почты в настоящее время существует огромное количество программного обеспечения и операционных систем (хотя ни одна из них не сможет сравнится с ОС Linux). Чаще всего при создании локальной вычислительной сети возникает необходимость подключения ее к сети Internet. В некоторых ОС (таких, например, как Windows NT 4.0) уже заложены функции для подключения локальной сети к Internet. Другие ОС (например, Windows 95) требуют дополнительного программного обеспечения для поддержки этих функций.
Если вы остановили свой выбор на ОС Linux в качестве платформы для почтового сервера, то у вас появится вполне закономерное желание использовать его и как маршрутизатор при подключении рабочих станций к сети Internet. Это действительно возможно. В этой лекции описывается, каким образом сервер на базе ОС Linux доставляет электронную почту и обеспечивает доступ к сети Internet для рабочих станции локальной сети, выступая в качестве маршрутизатора.
Способы подключения к сети в ОС Linux
Подключение отдельных рабочих станций к сети Internet с помощью сервера под управлением ОС Linux вы можете осуществить двумя способами:
- получить диапазон реальных IP-адресов и использовать в качестве маршрутизатора сервер на базе ОС Linux;
- воспользоваться диапазоном общедоступных IP-адресов и использовать сервер на базе ОС Linux для преобразования IP-адресов (маскарадинга).
В первом случае необходимо, чтобы каждому устройству в сети (каждой рабочей станции) был присвоен реальный IP-адрес, при этом должна быть правильно настроена маршрутизация вашей сети в сеть Internet. Тогда сервер под управлением ОС Linux выступает в роли обычного маршрутизатора IP-пакетов из локальной сети через узел провайдера в сеть Internet.
Получить блок IP-адресов можно двумя путями: обратившись в сетевой информационный центр Network Information Center (NIC) или арендуя их у провайдера сети Internet. Во втором случае провайдер выделяет блок IP-адресов из своего адресного пространства, которое он, в свою очередь, получает в NIC. Регистрация блока IP-адресов в сетевом информационном центре довольно дорогостоящее мероприятие. В последнее время стали появляться слухи о том, что в сетевом информационном центре практически не осталось свободных блоков IP-адресов, так как некоторые организации зарегистрировали большие блоки IP-адресов и не используют их. Как правило, провайдеры сети Internet предоставляют своим клиентам блок IP-адресов из собственного диапазона. К сожалению, если в вашей сети предполагается использование более 5–6 рабочих станций, то такая схема выделения IP-адресов вам не подойдет, так как провайдеры обычно не выдают крупные блоки IP-адресов.
Чаще всего на практике встречается второй способ подключения клиентов к сети. В локальной сети назначаются IP-адреса из общедоступного диапазона — 192.168.0.0. Все рабочие станции в сети устанавливают сетевые соединения с сервером на базе ОС Linux, используя адреса именно из этого диапазона. Однако устройства, которые имеют общедоступный IP-адрес, не могут работать напрямую в сети Internet. Диапазоны адресов корпоративной сети были специально разработаны для использования во внутренних сетях, не имеющих соединения с сетью Internet.
Однако на базе сервера под управлением ОС Linux можно выполнять преобразование или подстановку IP-адресов (маскарадинг). Это делается следующим образом. При подключении сервера на базе ОС Linux к провайдеру Internet ему статически или динамически назначается реальный IP-адрес. Главная уловка заключается в том, что IP-адрес любой рабочей станции в сети можно преобразовать с помощью механизма маскарадинга в реальный IP-адрес, полученный сервером на базе ОС Linux при необходимости послать пакет в сеть Internet. Хост в сети Internet, принявший пакет, посылает ответный пакет на адрес сервера под управлением ОС Linux. Далее Linux-сервер должен произвести обратное преобразование IP-адреса и доставить пакет на соответствующую рабочую станцию в локальной сети.
На базе почтового сервера под управлением ОС Linux можно реализовать оба способа подключения клиентов к сети. В последующих разделах дается описание этих способов.
Локальная сеть с блоком реальных IP-адресов
Если для вашей локальной сети получен блок реальных IP-адресов, то, естественно, преобразование адресов не потребуется. В этом случае сервер под управлением ОС Linux выполняет функцию маршрутизации пакетов между локальной сетью и Internet. На рис.19.1 представлен пример подключения рабочей станции к сети Internet с использованием в качестве маршрутизатора сервера под управлением ОС Linux.
При такой схеме подключения любой хост в сети Internet может посылать IP-пакеты прямо на рабочую станцию в локальной сети, так как сеть, в которой она находится, имеет реальный адрес в Internet. Для того чтобы сервер под управлением ОС Linux мог работать в режиме маршрутизатора IP-пакетов, этот режим должен быть разрешен на уровне ядра операционной системы. На рис.19.1 клиент локальной сети с IP-адресом 5.6.8.2 устанавливает соединение с удаленным хостом 1.2.3.4. Когда в качестве маршрутизатора выступает локальный почтовый сервер, то этот процесс выглядит так.
- Клиент посылает пакет на удаленный хост с адресом 1.2.3.4.
- Локальный почтовый сервер пересылает этот пакет на сервер провайдера, указывая в качестве отправителя пакеты рабочую станцию с адресом 5.6.8.2.
- Сервер провайдера указывает маршрут для пакета на хост с адресом 1.2.3.4 и возвращает ответ на адрес 5.6.8.2.
- Удаленный хост принимает пакет и посылает ответ на адрес 5.6.8.2.
- Сервер провайдера обнаруживает на входе пакет, предназначенный для рабочей станции с адресом 5.6.8.2, и пересылает его в соответствующую сеть.
- Локальный почтовый сервер, который одновременно выполняет функции маршрутизатора, обнаруживает пакет, адресованный рабочей станции 5.6.8.2, и направляет его туда.
Если в ядре не разрешена пересылка IP-пакетов, то его нужно перекомпилировать.
Чтобы определить, разрешен ли режим пересылки IP-пакетов, обратитесь к файлу /proc/sys/net/ipv4/ip_forward. Установив значение файла ip_forward в '1' вы разрешите пересылку IP-пакетов. Это выполняется с помощью команды, заданной пользователем с правами root:
echo '1' > /proc/sys/net/ipv4/ip_forward
Замечание
В связи с ростом популярности протокола TCP/IP и механизма преобразования адресов (маскарадинга), в большинство современных дистрибутивов ОС Linux пересылка IP включена по умолчанию. Если в имеющейся версии ядра ОС Linux поддержка пересылки IP отсутствует, то необходимо включить ее и перекомпилировать ядро системы. Более детально процесс конфигурирования ядра ОС Linux описан в других книгах издательства Sams Publishing.
Предупреждение
При внесении каких-либо изменений в ядро операционной системы будьте предельно осторожны. В некоторых случаях внесенные вами изменения могут привести к невозможности загрузки системы.