Centos
基於策略的路由 - CentOS 7.6.1810 既不拾取規則也不拾取路由
我在綁定連接上有 2 個 VLAN,我無法使用基於策略的路由。實際上我可以讓它們手動工作,但我無法堅持配置以在重新啟動後繼續存在。我已經閱讀了十幾篇文章、教程、操作方法和官方文件。我在這裡僅列出連接列表中的相關條目:
# nmcli con NAME UUID TYPE DEVICE bond0 slave 1 ...-91ef-... ethernet eno1 bond0 slave 2 ...-242e-... ethernet eno2 Bond connection bond0 ...-0fbe-... bond bond0 VLAN connection bond0.3410 ...-3ebd-... vlan bond0.3410 VLAN connection bond0.3411 ...-91a9-... vlan bond0.3411
新表已添加到
rt_tables
列表中。# cat /etc/iproute2/rt_tables # # reserved values # 255 local 254 main 253 default 0 unspec 1 3410 2 3411
然後我為兩個 VLAN 介面創建了自定義規則:
# cat /etc/sysconfig/network-scripts/rule-bond0.3410 iif bond0.3410 table 3410 from 10.129.240.0/23 table 3410 # cat /etc/sysconfig/network-scripts/rule-bond0.3411 iif bond0.3411 table 3411 from 10.129.242.0/24 table 3411
並定義了希望的路由規則。
# cat /etc/sysconfig/network-scripts/route-bond0.3410 10.129.240.0/23 dev bond0.3410 scope link table 3410 default via 10.129.241.254 dev bond0.3410 table 3410 # cat /etc/sysconfig/network-scripts/route-bond0.3411 10.129.242.0/24 dev bond0.3411 scope link table 3411 default via 10.129.242.254 dev bond0.3411 table 3411
令我困擾的是,沒有一條規則和路線被採納。我嘗試重新啟動網路服務
systemctl restart network
,重新啟動節點,通過nmcli con up <con_name>
.所有這些修改都沒有帶來任何改變:
# ip route list 10.129.240.0/23 dev bond0.3410 proto kernel scope link src 10.129.240.1 metric 400 10.129.242.0/24 dev bond0.3411 proto kernel scope link src 10.129.242.1 metric 401 # ip rule list 0: from all lookup local 32766: from all lookup main 32767: from all lookup default
我唯一確定的是自定義路由表
3410
並且3411
存在(因為在按表列出路由時不會引發錯誤,例如ip route list table 3411
)。我還應該說,當我手動執行條目時(例如
ip route add default <ip> dev <dev> table <table>
),條目就會生效。
如果您使用 NetworkManager 進行網路管理(與 /etc/init.d/network 相反),那麼您需要 NetworkManager-dispatcher-routing-rules 包。