Что такое маршрутизация: построение таблиц маршрутизации в Linux

Что такое маршрутизация: построение таблиц маршрутизации в Linux

06.10.2022
Автор: HostZealot Team
2 мин.
568

В сети Интернет передача всей информации осуществляется в виде небольших блоков данных – так называемых пакетов. Сам пакет состоит из стартовых битов, заголовка, прицепа и полезной нагрузки – каждый такой блок с данными передается по определенному маршруту, который, в свою очередь, определяется маршрутизатором. Сетевой маршрут «прокладывается» на основании информации, получаемой от таблиц маршрутизации согласно протоколам маршрутизации и инструкциям сетевого администратора.

Таблицы маршрутизации содержат параметры, необходимые для корректной идентификации и чтения сетевого маршрута. В них содержатся следующие разделы:

  • 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-атаках с хоста.

Что такое маршрутизация: построение таблиц маршрутизации в linux

Команды для действий с маршрутами

Как мы отметили выше, команда 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.

# Как сделать Поделиться:
Статьи по Теме