Сомневаюсь, как NetworkManager через nmcli управляет статическими маршрутами. У меня есть сервер CentOS 7.1.1503 с тремя сетевыми интерфейсами:
[root@brick ~ ]# nmcli con show
NOMBRE UUID TIPO DISPOSITIVO
int-ofi-nueva 3646ca3f-42b7-4bef-a677-6f92a5d55ee7 802-3-ethernet enp4s0
tvcable-ext e4dce451-6cc1-4a32-a8d6-394905f6a024 802-3-ethernet enp2s0
int-ofi-vieja ecbb8828-cd46-4b18-8b5e-61291a051553 802-3-ethernet enp5s0
Интерфейс enp2s0
это мой WAN-интерфейс и тот, у которого есть маршрут по умолчанию. Я настроил статический маршрут через интерфейс nmcli on enp5s0
, но этот маршрут не добавляется в таблицу маршрутизации даже после перезапуска NetworkManager. Добавляются только маршруты, соответствующие сетям, подключенным к каждому интерфейсу. Вот подробности:
[root@brick ~ ]# ifconfig
enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet xxx.xxx.xxx.xxx netmask 255.255.255.248 broadcast xxx.xxx.xxx.xxx
inet6 fe80::feaa:14ff:fe76:fc7b prefixlen 64 scopeid 0x20<link>
ether fc:aa:14:76:fc:7b txqueuelen 1000 (Ethernet)
RX packets 13928182 bytes 1503741109 (1.4 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 372577 bytes 75107061 (71.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.2.1 netmask 255.255.255.0 broadcast 172.17.2.255
inet6 fe80::fe75:16ff:fe8a:a702 prefixlen 64 scopeid 0x20<link>
ether fc:75:16:8a:a7:02 txqueuelen 1000 (Ethernet)
RX packets 336962 bytes 70850425 (67.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 515100 bytes 589742232 (562.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp5s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.1.2 netmask 255.255.255.0 broadcast 172.17.1.255
inet6 fe80::c6e9:84ff:fe02:fbcc prefixlen 64 scopeid 0x20<link>
ether c4:e9:84:02:fb:cc txqueuelen 1000 (Ethernet)
RX packets 41353 bytes 12914987 (12.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11386 bytes 1672601 (1.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Таблица маршрутизации:
[root@brick ~ ]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 <wan_gateway> 0.0.0.0 UG 100 0 0 enp2s0
172.17.1.0 0.0.0.0 255.255.255.0 U 1 0 0 enp5s0
172.17.2.0 0.0.0.0 255.255.255.0 U 0 0 0 enp4s0
<wan_network> 0.0.0.0 255.255.255.248 U 0 0 0 enp2s0
Конфигурация подключения:
[root@brick ~ ]# nmcli con show int-ofi-vieja
connection.id: int-ofi-vieja
connection.uuid: ecbb8828-cd46-4b18-8b5e-61291a051553
connection.interface-name: enp5s0
connection.type: 802-3-ethernet
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.timestamp: 1444951423
connection.read-only: no
connection.permissions:
connection.zone: --
connection.master: --
connection.slave-type: --
connection.secondaries:
connection.gateway-ping-timeout: 0
802-3-ethernet.port: --
802-3-ethernet.speed: 0
802-3-ethernet.duplex: --
802-3-ethernet.auto-negotiate: yes
802-3-ethernet.mac-address: --
802-3-ethernet.cloned-mac-address: --
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu: auto
802-3-ethernet.s390-subchannels:
802-3-ethernet.s390-nettype: --
802-3-ethernet.s390-options:
ipv4.method: manual
ipv4.dns:
ipv4.dns-search:
ipv4.addresses: 172.17.1.2/24
ipv4.gateway: --
ipv4.routes: { ip = 10.125.25.0/24, nh = 172.17.1.9 }
ipv4.route-metric: 1
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-send-hostname: yes
ipv4.dhcp-hostname: --
ipv4.never-default: no
ipv4.may-fail: yes
[ipv6 settings ommitted for brevity]
Обратите внимание, что свойство ipv4.routes установлено, но маршрут не загружен. Должен ли я установить что-то еще в этом соединении, чтобы ядро его увидело?