воскресенье, 30 марта 2025 г.

Прописание маршрута с указанием IP source в Linux

Если Linux машина имеет несколько IP интерфейсов, то создавать статический маршрут правильно с привязкой к определенному исходному IP-адресу (src)
Если используется NetworkManager, то делается это утилитой nmcli.

1. Необходимо узнать имена интерфейсов и принадлежность IP адреса интерфейсу.
Это делается командами:
1.1.
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 127.0.0.1/8 scope host lo
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 172.31.0.3/28 brd 172.31.0.15 scope global noprefixroute ens18
3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 10.63.70.170/29 brd 10.63.70.175 scope global noprefixroute ens19

1.2
# nmcli con
NAME    UUID                                  TYPE      DEVICE
ens18  95fdeba9-6dcc-31d1-9758-879d140cbc55  ethernet  ens18
System ens19          03c4dac8-78f9-36c3-8580-d35a45e6f2ea  ethernet  ens19

Команда "ip a" покажет IP адреса и их привязку к коротким названиям интерфейсов.
Команда "nmcli con" покажет привязку коротких названий интерфейсов к полному наименованию.
В данном примере интерфейс "ens19" имеет полное имя "System ens19".
2. Прописать маршрут с заданием IP адреса источника нужно с указанием полного наименования интерфейса, вот так:
# nmcli connection modify "System ens19" +ipv4.routes "10.63.90.1/32 10.63.70.169 src=10.63.70.170"
# nmcli connection up "System ens19"

Тут прописывается маршрут на сеть 10.63.90.1/32 через gateway 10.63.70.169 c IP источника 10.63.70.170
3. Команда удаления маршрута (если потребуется):
# nmcli connection modify "System ens19" ipv4.routes ""

Комментариев нет:

Отправить комментарий