В таблице могут быть вписаны маршруты не к сетям в целом, а к отдельным конкретным хостам. У таких записей (в примере – вторая и третья строки) маска сети равна 255.255.255.255, а в поле флагов присутствует символ «Н» (хост).
В приведенном примере последняя строка соответствует маршруту по умолчанию. Сеть 0.0.0.0 с маской 0.0.0.0 окажется соответствующей для любого IP-адреса, если маршрут для него не найден ранее. Таким образом, в примере все пакеты, для которых не найден специальный маршрут, будут пересылаться через шлюз с адресом 192.168.50.8, называемый также шлюзом по умолчанию. Обычно в роли шлюза по умолчанию указывается шлюз, соединяющий данную сеть с Internet.
Изменения в маршрутную таблицу вносятся при помощи команды route с соответствующими параметрами. Добавить маршрут можно командой «route add», с ключом «-net» для сети и «-host» для отдельного хоста:
route add –net <номер> netmask <маска> gw <шлюз> dev <интерфейс>
route add –host <адрес> gw <шлюз> dev <интерфейс>
Поле «gw» (шлюз) в команде является необязательным. Если оно не указано, считается, что с получателем имеется прямое соединение без промежуточных шлюзов. Примеры применения команды:
route add –net 10.4.10.0 netmask 255.255.255.0 gw 10.4.7.17 dev eth0
route add –host 192.168.50.7 gw 192.168.22.36 dev eth0
Удалить запись в таблице маршрутизации можно командой «route del»:
route del –net 10.4.10.0 netmask 255.255.255.0 gw 10.4.7.17
route del –host 192.168.50.7 gw 192.168.22.36
Поскольку существует множество вариантов UNIX с некоторыми отличиями в реализации сетевой подсистемы, формат команд в них может несколько отличаться. Приведенные примеры относятся к Linux.
Ручное редактирование маршрутной таблицы используется обычно на этапе отладки новых соединений. В типовом режиме команды «route add» автоматически исполняются в составе сценариев инициализации при запуске сетевой подсистемы. Для редактирования списка маршрутов, устанавливаемых при загрузке, в большинстве систем имеются достаточно удобные для пользователя графические утилиты.
8.3 Использование UNIX-хоста в роли маршрутизатора.
Согласно сложившейся в области локальных сетей терминологии, термины «маршрутизатор», «шлюз» или «роутер» используются для обозначения узла, выполняющего ретрансляцию пакетов между двумя или более IP-сетями. Маршрутизатор может быть аппаратным, т.е. реализованным в виде специализированного устройства, или программным, представляющим собой универсальный компьютер с программным обеспечением, поддерживающим маршрутизацию.
Компьютер, работающий под управлением операционной системы из семейства UNIX, может быть эффективно использован в роли программного маршрутизатора. В UNIX способность исполнять роль шлюза обычно реализуется на уровне ядра. Тем не менее, функция ретрансляции пакетов (IP-forwarding) может быть включена либо выключена по усмотрению администратора. Обычно для этого служит одна из опций графических утилит конфигурирования сети, относящаяся к настройкам стека TCP/IP.
В Linux состояние функции ретрансляции пакетов определяется флагом, отображаемым как файл /proc/sys/net/ipv4/ip_forward. Единица в этом файле означает, что хост выполняет ретрансляцию, ноль – что ретрансляция запрещена. Этот флаг автоматически устанавливается в «1», если в файле общих настроек сети /etc/sysconfig/network присутствует строка
FORWARD_IPV4=yes
Как и в других реализациях UNIX, все версии Linux содержат графические утилиты для выполнения этих настроек.
Описанный выше режим маршрутизации, основанный на постоянной маршрутной таблице, носит название статической маршрутизации. Кроме него, в достаточно сложных сетях, где существуют обходные маршруты и вероятны изменения топологии (отказы узлов, временные пути и т.п.) используется динамическая маршрутизация. При динамической маршрутизации на шлюзе выполняется процесс-демон, который периодически обменивается с соседними шлюзами информацией о состоянии сети и на основании этих данных корректирует маршрутную таблицу. Стандартные протоколы динамической маршрутизации позволяют поддерживать такой обмен информацией и строить маршрутную таблицу по критериям оптимальности маршрутов.
Ранние реализации динамической маршрутизации в UNIX-системах основывались на демоне routed, который поддерживал стандартный протокол маршрутизации RIP. В настоящее время шире используется более удачный демон gated, работающий по стандартам RIP, HELLO, EGP, BGP.
В простейшем случае шлюз ретранслирует все транзитные пакеты. Однако часто, из соображений безопасности, требуется ограничить передачу пакетов, в частности, между Internet и локальной сетью. Для этого шлюз должен работать в режиме firewall, или брандмауэра. Под термином брандмауэр понимается хост, являющийся маршрутизатором между двумя IP-сетями и обеспечивающий безопасность одной из них (обычно локальной сети) путем ограничений, налагаемых на передачу пакетов. Брандмауэр анализирует адресную часть каждого пакета и ретранслирует только те из них, которые не могут представлять угрозу для хостов локальной сети.
Некоторые варианты UNIX поддерживают функцию firewall на уровне ядра; пример такой реализации (в ОС Linux) приведен ниже. В других случаях используются программы-демоны, в частности, широко известный пакет screend.
В предельном случае брандмауэр полностью запрещает ретрансляцию пакетов и работает в режиме proxy-сервера. Proxy-сервер принимает запросы прикладных программ из локальной сети и переадресует их серверам Internet от своего имени. Proxy-сервера поддерживают ограниченный набор протоколов прикладного уровня (FTP, HTTP и т.п.); существуют также специализированные протоколы взаимодействия с proxy – SOCKS4 и SOCKS5.
Proxy-сервер исполняется в виде сетевого демона. Наиболее известной реализацией proxy для UNIX является пакет squid.
Кроме того, при невозможности непосредственной ретрансляции пакетов между сетями может использоваться и технология маскарадинга, подробно описанная ниже.
8.4 Символические имена узлов сети TCP/IP
Поскольку в сетях TCP/IP помимо основной адресации (4-байтовые IP-адреса) используется также адресация на основе символических имен, в системе должен присутствовать механизм преобразования между этими адресами. Процесс преобразования символических имен в соответствующие им IP-адреса называется разрешением имен. В UNIX прямое и обратное разрешение имен реализовано на уровне стандартных библиотек; этот набор функций называется ресолвером.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.