Одной из главнейших задач сетевого уровня модели OSI является маршрутизация. Устройства, которые связывают подсети между собой в единую составную сеть, называются маршрутизаторами. Внутри сети сегменты не разделяются маршрутизаторами, иначе это была бы не одна сеть, а несколько сетей. Маршрутизатор соединят несколько сетей в интерсеть (internetwork или internet).
Данные, которые поступают на сетевой уровень и которые необходимо передать через составную сеть, снабжаются заголовком сетевого уровня. Данные вместе с заголовком образуют пакет. Заголовок пакета сетевого уровня имеет унифицированный формат, не зависящий от форматов кадров канального уровня тех сетей, которые могут входить в объединенную сеть, и несет наряду с другой служебной информацией данные о номере сети, которой предназначается этот пакет. Явная нумерация сетей позволяет протоколам сетевого уровня составлять точную карту межсетевых связей и выбирать рациональные маршруты при любой их топологии, в том числе альтернативные маршруты, если они имеются, что никак не умеют делать мосты и коммутаторы.
Сетевой уровень определяет маршрут пути следования пакета и перемещает его между подсетями. При передаче пакета из одной подсети в другую пакет сетевого уровня, инкапсулированный в прибывший канальный кадр первой подсети, освобождается от заголовков этого кадра и окружается заголовками кадра канального уровня следующей подсети. Информацией, на основе которой делается эта замена, являются служебные поля пакета сетевого уровня.
Резюмируем.
Основная функция маршрутизатора - чтение заголовков пакетов сетевых протоколов, которые принимаются и буферизуются по каждому его порту, и принятие решения о дальнейшем маршруте следования того пакета в соответствии с указанным в нем сетевым адресом. Сетевой адрес пакета сетевого протокола включает, как правило, номер сети номер узла.
Статическая маршрутизация является одним из способов задания маршрута следования пакетов в сетях. При этом протоколы маршрутизации не используются, а необходимая информация заносится системным администратором вручную в соответствующие таблицы маршрутизации. К статическим маршрутам также относится маршрут по умолчанию (default route).
iproute также известна как iproute2.
Пакет iproute состоит из нескольких утилит управления трафиком:
ip route get 192.168.35.55 192.168.35.55 via 192.168.35.254 dev tun1 src 10.26.95.254 cache ipid 0xf0ea
# ip neigh flush all
# ip r | grep default
# ip link list
# ip route flush cache
# ip route add blackhole 10.56.50.0/27
ip addr del 10.90.91.254 dev eth4 или удалить все с интерфейса wlan1 ip addr flush wlan1
Вывести таблицы маршрутизации. Ядро принимает решение о применении той или иной таблицы на основании адреса источника пакета. Эти таблицы применимы для всех пакетов.
# ip rule list 0: from all lookup local 32766: from all lookup main 32767: from all lookup default
Вывести содержимое таблицы local.
# ip route show table local
Таблица local проверяет не адресован ли пакет локальной машине (широковещательный или сетевой адреса интерфейсов). Таблицу local автоматически заполняют команды конфигурации сетевых интерфейсов.
Добавление маршрута через шлюз: ip route add 172.16.10.0/24 via 192.168.1.1 Добавление маршрута через интерфейс: ip route add 172.16.10.0/24 dev eth0 Маршрут с метрикой: ip route add 172.16.10.0/24 dev eth0 metric 100
Кроме add также поддерживаются и другие действия: del — удалить маршрут; replace — заменить маршрут другим; change — изменить параметры маршрута.
Пример 1. Создание таблицы для маршрутизации пакетов с определенного IP- адреса. Локальная сеть 10.26.95.0/24 имеет выход в Интернет с двух разных провайдеров – основной ISP1 (статика) и резервный ISP2 (Настройка DHCP сервера Linux, FreeBSD).
echo '82 velton' >> /etc/iproute2/rt_tables
ip route add default via 82.117.232.1 table 82
ip rule add from 10.26.95.251/32 table 82
ip route flush cache
Пример 2. Создание таблицы для маршрутизации, когда часть сетей (AS) нужно маршрутизировать через резервного провайдер ISP2. Например, это может быть дешевая точка обменом трафика или ресурсы провайдера. whois - найти все IPs вашего провайдера
ip route add default via 82.117.232.1 table 82
ip route add 82.117.224.0/19 via 82.117.234.15 ip route add 85.90.192.0/19 via 82.117.234.15
ip rule add to 82.117.224.0/19 table 82 ip rule add to 85.90.192.0/19 table 82
ip route flush cache