Статические маршруты в Linux

Опубликовано: 28 Апрель, 2015 в разделе: Обучение

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

Например, если нужно передать пакет данных на узел, который находится в той же самой сети, которой принадлежит один из интерфейсов — пакет будет отправлен через соответствующий интерфейс и пакет достигнет получателя (если нет — проблемы, по которым это произошло мы будем рассматривать в другой статье).

Здесь стоит ввести такое понятие, как шлюз по умолчанию (default gateway). Чаще всего, это маршрутизатор провайдера или устройство, которое расположено непосредственно между нашим узлом и внешним миром.

Шлюз по умолчанию (в Windows это «основной шлюз») — узел, на который будет посылаться пакет, если он принадлежит не «нашей» подсети, а так же для него нет специального маршрута. Так называемый «шлюз последней надежды». Как если бы компьютер просто скидывал все непонятные пакеты вышестоящему узлу, дабы голова (процессор) болела уже у него.

Ну и кроме этого, в системе могут быть статические или динамические маршрутные записи, которые определяют назначение для пакетов, следующих до определенных узлов или сетей.

Сейчас мы поговорим именно о статических маршрутах, то есть прописанных на постоянной основе.

Посмотреть текущие маршруты можно командой:

# route

или

# netstat -r

Таблица статических маршрутов

Таблица статических маршрутов

Маршрут добавляется в таблицу так:

# route add -net 10.0.100.0 netmask 255.255.255.0 gateway 192.16.1.1 eth0

Такая запись будет обозначать, что все пакеты, адресом назначения которых будет являться сеть 10.0.100.0/24 должны будут отправиться на адрес 192.168.1.1 через интерфейс eth0. Подразумевается, что 192.168.1.1 знает, куда их переправить дальше.

Linux добавляем статический маршрут

Linux добавляем статический маршрут

Так же существует синтаксис для узла:

# route add -host 192.168.40.9 gw 192.168.1.1 dev eth0

Которая будет равнозначна:

# route add -net 192.168.40.9 netmask 255.255.255.255 gateway 192.168.1.1 dev eth0

Иными словами, маска /32 (255.255.255.255) используется для хоста, а маска /0 (0.0.0.0) используется для маршрута по умолчанию (все).

Кстати, добавить маршрут по умолчанию можно так:

Linux маршрут по умолчанию

Linux маршрут по умолчанию

# route add default gw <IP>

Удаление маршрутов производится ничуть не сложнее, чем их добавление. Команду add заменяем на команду del, указываем те же параметры (или по крайней мере достаточное их количество, чтобы однозначно идентифицировать строку таблицы статической маршрутизации).

Удаляем статический маршрут Linux

Удаляем статический маршрут Linux

# route del -net 10.0.100.0 netmask 255.255.255.0

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

# vim /etc/sysconfig/network-scripts/route-eth0

10.0.0.0/8 via 192.168.1.2

И перезапустим сетевую подсистему. Посмотрим, что получилось:

Добавляем постоянный статический маршрут в Linux

Добавляем постоянный статический маршрут в Linux

Лабораторная работа

2 комментария

  1. Василий:

    красаучег! 🙂

  2. Добрый день. Большое спасибо за отличный материал. Нужно.
    С уважением Васильев Лев
    Ленарович https://vk.com/ayurveda.kazan

Добавить комментарий для Василий Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.