Настройка policy routing через nmcli


В интернете документации не очень много, и зачастую не в лучшем виде.

все оказалось сравнительно просто: echo "100 ext" >> /etc/iproute2/rt_tables

nmcli co add type ethernet ifname enp6s19 con-name enp6s19 nmcli co mod enp6s19 ipv4.addresses 192.168.1.230/24 nmcli connection modify enp6s19 +ipv4.method manual и основное: nmcli co modify enp6s19 ipv4.routes "0.0.0.0/1 192.168.1.1 table=100, 128.0.0.0/1 192.168.1.1 table=100" nmcli co modify enp6s19 ipv4.routing-rules "priority 100 from 192.168.1.230/24 table 100" Поднимаем интерфейс и проверяем: nmcli co up enp6s19

$ ip route show table ext 0.0.0.0/1 via 192.168.1.1 dev enp6s19 proto static metric 101 128.0.0.0/1 via 192.168.1.1 dev enp6s19 proto static metric 101 $ ip rule list 32764: from 192.168.1.230 iif enp6s19 lookup ext

Успех.

PS: путь через "nmcli .. ipv4.route-table 100" - ошибочен. Согласно [[документации]][1] [1]: https://networkmanager.dev/docs/api/latest/nm-settings-nmcli.html "документации" - эта функция переносит все маршруты во внешнюю таблицу, но переносит и основные, статичные маршруты, из-за чего даже пинг до шлюза ходить не будет. Создано для совместимости, используется при управлении интерфейсом, который управляется НЕ из nmcli.

Запись добавлена | Категория: Linux | Опубликовано | Автор: |