Что такое маршрутизация: построение таблиц маршрутизации в Linux
12:52, 06.10.2022
В сети Интернет передача всей информации осуществляется в виде небольших блоков данных – так называемых пакетов. Сам пакет состоит из стартовых битов, заголовка, прицепа и полезной нагрузки – каждый такой блок с данными передается по определенному маршруту, который, в свою очередь, определяется маршрутизатором. Сетевой маршрут «прокладывается» на основании информации, получаемой от таблиц маршрутизации согласно протоколам маршрутизации и инструкциям сетевого администратора.
Таблицы маршрутизации содержат параметры, необходимые для корректной идентификации и чтения сетевого маршрута. В них содержатся следующие разделы:
- Destination (Target). IP-адрес сети назначения – это конечный пункт назначения для пакетов данных.
- Netmask (Genmask). Маска сети.
- Gateway. IP-адрес шлюза.
- Interface. Адрес сетевого интерфейса.
- Metric. Этот параметр определяет приоритет маршрута.
Также опционально в таблице маршрутизации могут указываться адрес отправителя, размер TCP-окна и максимальная величина пакета. Всё это позволяет оптимизировать передачу данных в рамках сети. Далее в статье мы расскажем, как управлять маршрутизацией Linux и поделимся полезными рекомендациями по настройке.
Команды просмотра таблицы маршрутизации
Управление маршрутизацией для ОС Linux осуществляется тремя командами:
- route – позволяет посмотреть таблицу маршрутизации, функционирующую на данный момент;
- netstat – выводит более подробные сведения, включая IP-адрес цели, шлюза, отправителя, а также показывает используемый протокол передачи данных и сетевой интерфейс;
- ip – этот инструмент используется для глубокой настройки сетевых интерфейсов.
Рассмотрим несколько базовых примеров использования этих команд в Linux.
route -n (устаревшее) netstat -rn ip route show cat /proc/net/route
Эти команды позволяют посмотреть таблицу маршрутизации или какие-то отдельные её элементы.
При этом команду route можно использовать лишь для получения сведений в полной числовой форме, но с её помощью не получится настроить политики маршрутизации. Для этой цели следует использовать команду ip. Например так:
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 – маршрут с метрикой.
Также существует возможность создания «зануленного» маршрута, и пакеты, проходящие по нему, будут автоматически удаляться по причине «No route to host». Для этого используется команда:
ip route add blackhole 10.56.50.0/27
Использовать её рекомендуется при DoS-атаках с хоста.
Команды для действий с маршрутами
Как мы отметили выше, команда add позволяет добавлять маршруты. Но это не единственная возможная операция, есть и три других:
- del — для удаления маршрута.
- replace — позволяет один маршрут заменить другим.
- change — для изменения параметров маршрута.
Примеры статической маршрутизации
Представим, что у вас есть два офиса, соединенных друг с другом по IP-туннелю. Один офис имеет IP-адрес 192.168.1.4, а второй – 192.168.1.6. Для подключения локальной сети между ними необходимо прописать на второй маршрутизаторе команду:
route add -net 172.16.10.0/24 gw 192.168.1.4
В результате вы подключите шлюз «192.168.1.4» для сети «172.16.10.0/24». После этого на первом маршрутизаторе прописываем следующее:
route add -net 172.20.0.0/24 gw 192.168.1.6
Как видим, всё достаточно просто и прозрачно.
Для изменения локальной сети второго маршрутизатора мы просто удаляем старую запись:
route del -net 172.20.0.0/24 gw 192.168.1.6
И затем добавляем новый маршрут на первом маршрутизаторе:
route add -net 172.20.0.0/24 gw 192.168.1.6
Где находятся конфигурационные файлы
Конфиги статической маршрутизации будут расположены в разных директориях, в зависимости от используемого дистрибутива:
- Debian GNU/Linux: /etc/network/interfaces
- RHEL/CentOS/Scientifix: etc/sysconfig/network-scripts/route-<interface name>
- Gentoo: /etc/conf.d/net
В них вы также можете задать определенные настройки и параметры для маршрутизации. Если остались вопросы, свяжитесь с нашими специалистами через Livechat.