Как прописать маршруты

После подключения L3 VPN нужно настроить маршрутизацию между сегментами сети. Пропишите маршруты до каждого сегмента из используемой сети через новые адреса шлюзов.

Для этой сети:

  1. Машины сегментов должны быть подключены к выделенным сетям.
  2. Надо настроить на интерфейсах IP-адреса.
  3. Из сегмента 1 требуется маршрут в сеть b.b.b.b через GW (a.a.a.254).
  4. Из сегмента 2 требуется маршрут в сеть a.a.a.a через GW (b.b.b.254).

Пример для Windows

Чтобы прописать маршруты на сервере (выделенном сервере, облачном сервере), введите команду в консоли:

route -p ADD a.a.a.a MASK 255.255.255.0 b.b.b.254 METRIC 1

, где:

  • route — программа работы с маршрутами;
  • ADD – команда для добавления маршрута;
  • -p – этот ключ нужен, чтобы сохранить маршрут;
  • MASK – маски сети;
  • METRIC 1 – параметр, определяющий приоритет указанного выше шлюза, 1 — наивысший приоритет.

Проверить прописанные маршруты можно командой route print.

Пример для Ubuntu/Debian

Чтобы прописать маршруты в ОС Ubuntu, проверьте существующие маршруты командой route или netstat -nr:

route 
Kernel IP routing table 
Destination Gateway Genmask Flags Metric Ref Use Iface 
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0 
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 

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

Добавьте статический маршрут в подсеть 192.168.2.0 с 24 маской (255.255.255.0), в роли шлюза укажите, например, 192.168.0.100. Команда будет выглядеть следующим образом:

route add -net 192.168.2.0/24 gw 192.168.0.100 

Проверьте существующие маршруты:

route 
Kernel IP routing table 
Destination Gateway Genmask Flags Metric Ref Use Iface 
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0 
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 
192.168.2.0 192.168.0.100 255.255.255.0 UG 0 0 0 eth0 

Начиная с версии Ubuntu 17.10 Netplan используется по умолчанию как утилита для конфигурирования сетевых настроек.

В предыдущих версиях Ubuntu использовалась утилита ifconfig и конфигурационный файл /etc/network/interfaces.

В нашем случае все образы OS Linux используют систему Cloud-init для инициализации системы при первом запуске. В ОС Ubuntu утилита Netplan установлена, но не используется.

Если произойдет перезагрузка сервера, то маршрут пропадет, как и с семейством RHEL.

Сохранение маршрута при перезагрузке сервера

Чтобы при перезагрузке сервера маршрут не пропал, нужно для соответствующего сетевого интерфейса, в нашем случае это eth0, пропишите нужный маршрут в файле конфигурации /etc/network/interfaces.d/50-cloud-init.cfg:

  1. Отключите возможность настройки сети через Cloud-init и создайте файл:
touch /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
  1. Добавьте в созданный файл необходимые параметры конфигурации Cloud-init, отключающие конфигурирование сети:
echo "network: {config: disabled}" >> /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg 
  1. Добавьте в файл конфигурации маршрут up route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.0.100:
vi /etc/network/interfaces.d/50-cloud-init.cfg 

Пример:

auto lo 
  iface lo inet loopback 
       dns-nameservers 188.93.16.19 188.93.17.19 
auto eth0 
  iface eth0 inet static 
      address 192.168.0.2/24 
      mtu 1500 
      post-up route add default gw 192.168.0.1 || true 
      pre-down route del default gw 192.168.0.1 || true 

up route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.0.100 
  1. Перезагрузите сервис:
systemctl restart networking 
 Для Ubuntu 18 используйте команду:
 ```
 systemctl restart networking.service
 ```
  1. Проверьте существующие маршруты:
route 
Kernel IP routing table 
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0 
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 
192.168.2.0 192.168.0.100 255.255.255.0 UG 0 0 0 eth0 

Маршрут успешно прописался и не пропадет, если перезагрузить сервис.

Пример для CentOS/Fedora/RHEL

Проверьте существующие маршруты командой route или netstat -nr:

route 
Kernel IP routing table 
Destination Gateway Genmask Flags Metric Ref Use Iface 
default gateway 0.0.0.0 UG 0 0 0 eth0 
link-local 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 

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

Добавьте статический маршрут в подсеть 192.168.2.0 с 24 маской (255.255.255.0), в роли шлюза укажите, например, 192.168.0.100. Команда будет выглядеть следующим образом:

route add -net 192.168.2.0/24 gw 192.168.0.100 

Проверьте добавленные маршруты:

route 
Kernel IP routing table 
Destination Gateway Genmask Flags Metric Ref Use Iface 
default gateway 0.0.0.0 UG 0 0 0 eth0 
link-local 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.2.0 192.168.0.100 255.255.255.0 UG 0 0 0 eth0 

Маршрут успешно добавлен.

Если произойдет перезагрузка системы, то добавленный маршрут будет удален.

Сохранение маршрута при перезагрузке сервера

Чтобы при перезагрузке системы маршрут не был удален, в каталоге /etc/sysconfig/network-scripts создайте файл с именем route-eth0 (соответствует нужному интерфейсу eth0):

  1. Отключите возможность настройки сети через Cloud-init и создайте файл:
touch /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
  1. Добавьте в созданный файл необходимые параметры конфигурации Cloud-init, отключающие конфигурирование сети:
echo "network: {config: disabled}" >> /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg 
  1. Удалите текущий файл настроек:
rm -f /etc/sysconfig/network-scripts/route-eth0
  1. Создайте новый файл:
touch /etc/sysconfig/network-scripts/route-eth0 
  1. Добавьте новый нужный маршрут:
echo "192.168.2.0/24 via 192.168.0.100" >> /etc/sysconfig/network-scripts/route-eth0 
  1. Перезапустите сетевые службы, чтобы изменения вступили в силу:
systemctl restart network 
  1. Проверьте наличие маршрута:
route 
Kernel IP routing table 
Destination Gateway Genmask Flags Metric Ref Use Ifaceа
default gateway 0.0.0.0 UG 0 0 0 eth0 
link-local 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 
192.168.2.0 192.168.0.100 255.255.255.0 UG 0 0 0 eth0