Здравствуйте. А уточните, пожалуйста, по какой причине стоимость изменилась? Была стоимость в 1 рубль, стала в 9900 рублей. |
Маршрутизация в Linux
Пример 10.5.Добавление альтернативного маршрута для узла-источника на шлюзе.
Пусть шлюз локальной сети 192.168.1.0/24 имеет два сетевых интерфейса c IP-адресами 192.168.1.1/24 и 192.168.56.102/24 соответственно, маршрут по умолчанию — 192.168.56.1. Необходимо, чтобы шлюз отправлял трафик узла 192.168.1.10 по альтернативному маршруту 192.168.56.2.
Для решения данной задачи [ 27 ] , во-первых, добавим в файл /etc/iproute2/rt_tables описание дополнительной таблицы маршрутизации (номер и имя таблицы выбираются произвольно, в данном случае 200 и altroute ):
# echo 200 altroute >> /etc/iproute2/rt_tables
Во-вторых, добавим правило направления исходящих пакетов узла 192.168.1.10 в таблицу altroute:
# ip rule add from 192.168.1.10 lookup altroute
Список правил после выполнения данной команды:
# ip rule show 0: from all lookup local 32765: from 192.168.1.10 lookup altroute 32766: from all lookup main 32767: from all lookup default
В третьих, нужно в таблицу altroute добавить соответствующий маршрут:
# ip route add default via 192.168.56.2 dev eth1 table altroute # ip route flush cache
Содержимое таблицы altroute:
# ip route show table altroute default via 192.168.56.2 dev eth1
В результате на шлюзе исходящие пакеты узла 192.168.1.10 соответствующим правилом будут отправляться в таблицу altroute, в которой как маршрут по умолчанию, указан узел 192.168.56.2. В тоже время исходящие пакеты других узлов сети 192.168.1.0/24 будут маршрутизироваться в соответствии с маршрутами, указанными в таблице main.
Ключевые термины
Статическая маршрутизация — такой способ маршрутизации, при котором все необходимые маршруты устанавливаются администратором вручную (с помощью команд и конфигурационных файлов).
Маршрутизация по назначению (destination-routing) — классический подход к маршрутизации, при котором используется адрес назначения в качестве аргумента при принятии решения какому шлюзу передавать пакет.
Маршрутизация на основе политик (policy-routing) — маршрутизация на основе различных параметров: адреса источника, вид и порт транспортного протокола и т. д.
Маршрутизация по источнику (source-based routing) — вариант маршрутизации на основе политик, использующий адрес отправителя для принятия решения о маршрутизации.
Краткие итоги
- Сетевая подсистема Linux может обрабатывать как пакеты локального узла (по умолчанию), так и пакеты, не принадлежащие данному узлу (режим маршрутизатора). Обычно маршрутизатор имеет два и более физических сетевых интерфейсов или хотя бы два и более IP-адресов из разных сетей. Необходимая для режима маршрутизатора функция пересылки пакетов (forwarding) требует дополнительной активации в настройках ядра Linux.
- Выбор локального адреса для исходящих соединений в большинстве случаев системой осуществляется автоматически, исходя из имеющихся IP-адресов и таблицы маршрутизации. Синтаксис команды ip route позволяет повлиять на выбор локального IP-адреса при соединении с удаленными системами. Для этого служит параметр src с указанием предпочитаемого IP-адреса (должен быть установлен на сетевом интерфейсе компьютера) для отправки пакетов на направление, определяемое в команде префиксом маршрутизации. Кроме того, сетевое программное обеспечение обычно имеет настройки, позволяющие выбирать IP-адрес для исходящих подключений.
- Управление расширенными функциями маршрутизации в Linux осуществляется путем манипуляций дополнительными таблицами маршрутизации и правилами, определяющими порядок прохождения пакетов через эти таблицы. Для управления списком правил используется команда ip rule.
Упражнения
В среде VirtualBox реализовать стенд для изучения маршрутизации, состоящий из двух виртуальных машин: основной ВМ и дополнительной ВМ.
Основная ВМ предназначена для реализации функции маршрутизации пакетов удаленных сетей. Непосредственно к ней подключены сети: 192.168.0.0/24, 192.168.1.0/24 и 192.168.2.0/24 ("физические" интерфейсы: eth1 с IP-адресом 192.168.0.1, eth2 c IP-адресом 192.168.1.1, eth3 c IP-адресом 192.168.2.1). Последние два интерфейса используются для связи с удаленными сетями (шлюз по умолчанию — 192.168.1.2, альтернативный маршрут — 192.168.2.2).
Дополнительная ВМ предназначена для тестирования настроек маршрутизатора и межсетевого экрана путем отсылки тестовых IP-пакетов. Сеть 192.168.0.0/24 объединяет виртуальные машины (для дополнительной ВМ — IP-адрес 192.168.0.2 на интерфейсе eth1, в качестве шлюза по умолчанию - 192.168.0.1).
Все сетевые адаптеры включены во внутреннюю сеть VirtualBox, которая работает в режиме концентратора.
# tcpdump -nep -i eth2
1.Установить основной IP-адрес (192.168.0.2 /24) и шлюз по умолчанию (192.168.0.1) на дополнительной ВМ:
# ip addr add dev eth1 local 192.168.0.2 /24 broadcast 192.168.0.255 # ip link set eth1 up # ip route add default via 192.168.0.1
2.Установить в основной ВМ:
а)На интерфейс eth1 IP-адрес 192.168.0.1 /24
б)На интерфейс eth2 IP-адрес 192.168.1.1 /24
в)На интерфейс eth3 IP-адрес 192.168.2.1 /24
г)В качестве шлюза по умолчанию IP-адрес: 192.168.1.2
д)Внести статические записи в ARP-таблицу относительно адресов 192.168.1.2 и 192.168.2.2 (для их эмуляции):
# ip neighb add 192.168.1.2 lladdr 00:00:00:00:00:AA dev eth2 # ip neighb add 192.168.2.2 lladdr 00:00:00:00:00:BB dev eth3
е)Включить в ядре ОС функцию маршрутизации:
# echo 1 > /proc/sys/net/ipv4/ip_forward
3.Проверить прохождения пакетов от узла 192.168.0.2 по маршруту по умолчанию:
а)В основной ВМ настроить прослушивание трафика на интерфейсе eth2, идущего на MAC-адрес узла 192.168.1.2:
# tcpdump -nep -i eth2
б)В дополнительной ВМ осуществить отправку тестовых ICMP-пакетов гипотетическому узлу 192.168.90.10 с IP-адреса 192.168.0.2:
# ping 192.168.90.10
в)Если все манипуляции проделаны правильно, то в дополнительной ВМ будет отображаться сообщение о недоступности узла 192.168.90.10, а в основной ВМ в TCPDump будут отображаться исходящие фреймы на узел 00:00:00:00:00:AA, содержащие пакеты с исходящим IP-адресом 192.168.90.10.
4.Установить статический маршрут до сети 192.168.100.0 /24 через альтернативный шлюз 192.168.2.2:
а) В основной ВМ:
# ip route add to 192.168.100.0/24 via 192.168.2.2
б)Запуская TCPDump на интерфейсах eth1 и eth2 основной ВМ и используя команду ping в дополнительной ВМ убедиться, что трафик на сеть 192.168.100.0 /24 идет на интерфейс 192.168.2.2, а весь остальной трафик - на 192.168.1.2.
5.В основной ВМ установить маршрут до узла 192.168.101.11 через альтернативный шлюз 192.168.2.2.
6.В основной ВМ установить для пакетов узла 192.168.0.5 маршрут по умолчанию через альтернативный шлюз 192.168.2.2 (пример 10.5). В дополнительной ВМ установить дополнительный адрес 192.168.0.5 и проверить работоспособность установленного маршрута.