Networking

更改第二個 NIC 卡沒有網關的預設路由

  • August 18, 2020

我有 2 個 NIC,第 2 個(使用 ip,10.1.1.2)連接到私有 n/w。私有 n/w 上的一台機器(帶有 ip,10.1.1.3 的 Windows)能夠 ping 這台 Linux 機器。但是從這台機器上,我無法ping回來。arping 命令有效。traceroute 10.1.1.3 進入 NIC1 的網關。

為了在幾次實驗後解決這個問題,這是我能做的最好的事情,並希望在進一步的過程中得到幫助:

  1. managed=true通過在 /etc/NetworkManager/NetworkManager.conf 中設置 " " 將管理切換到 NetworkManager
  2. DEFROUTE=no

在以下部分添加

$$ ipv4 $$在文件中,

/etc/NetworkManager/system-connections/Wired connection 2.nmconnection 3. 2 internal2在文件 /etc/iproute2/rt_tables 中添加“ ” 4. ip route add default dev eth1 table internal2 5. ip rule add from all to 10.1.1.3 lookup internal2 prio 1000 6. ip route show table main(見下文) 7. route -n(見下文)

輸出ip route show ...

default via 192.168.1.1 dev eth0 proto static metric 100 
10.1.1.0/24 dev eth1 proto kernel scope link src 10.1.1.2 metric 101 
192.168.116.0/22 dev eth0 proto kernel scope link src 164.99.116.152 metric 100

輸出route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
10.1.1.0        0.0.0.0         255.255.255.0   U     101    0        0 eth1
192.168.116.0   0.0.0.0         255.255.252.0   U     100    0        0 eth0

一段時間後,有時我只看到 2 個條目,這意味著添加的條目被清除:

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
192.168.116.0   0.0.0.0         255.255.252.0   U     100    0        0 eth0

綜上所述,traceroute 和 ping 掛起。一段時間後,當路由表失去一個條目時,事情又恢復了正常。我看到 traceroute 到預設網關。

我的目標是確保 ping 10.1.1.3 給出結果。在專用網路中,沒有網關。

我什至嘗試過以下規則,但網路會在一段時間後恢復到正常狀態:)

ip rule add from all to all lookup internal2 prio 1000

編輯1:添加內容cat /etc/NetworkManager/system-connections/Wired\ connection\ 2.nmconnection

[connection]
id=Wired connection 2
uuid=de14c2b9-4828-3599-8440-c32d778395ed
type=ethernet
autoconnect-priority=-999
permissions=
timestamp=1597651876

[ethernet]
mac-address=00:0C:29:BB:48:72
mac-address-blacklist=

[ipv4]
address1=10.1.1.2/24
dns-search=
method=auto
DEFROUTE=no

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
ip6-privacy=0
method=auto

編輯2:自我修復後,

ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
   inet6 ::1/128 scope host 
      valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
   link/ether 00:0c:29:bb:48:68 brd ff:ff:ff:ff:ff:ff
   inet 192.168.116.152/22 brd 192.168.1.255 scope global noprefixroute eth0
      valid_lft forever preferred_lft forever
   inet6 fda7:e6ee:2e09:0:e444:fc21:ec4b:5dca/64 scope global tentative dynamic noprefixroute 
      valid_lft 2591999sec preferred_lft 604799sec
   inet6 fdfe:9042:c53d:0:181e:7fbb:e3ce:9b9/64 scope global tentative dynamic noprefixroute 
      valid_lft 2592000sec preferred_lft 604800sec
   inet6 fe80::e1dc:c1:89f1:9bd8/64 scope link noprefixroute 
      valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
   link/ether 00:0c:29:bb:48:72 brd ff:ff:ff:ff:ff:ff

編輯 3:作為最後一步,我已經使用發行版(MX Linux)提供的 GUI 界面重新創建了 IP 地址,並使用了一段時間。在自我修復發生之前,這裡是路由表:

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
0.0.0.0         10.1.1.2        0.0.0.0         UG    101    0        0 eth1
10.1.1.0        0.0.0.0         255.255.255.0   U     101    0        0 eth1
192.168.116.0   0.0.0.0         255.255.252.0   U     100    0        0 eth0

我已將網關作為自身節點地址。一切正常,我可以按我的意願 ping。

幾分鐘後,自我修復發生了,之後又是路由表:

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
192.168.116.0   0.0.0.0         255.255.252.0   U     100    0        0 eth0

ip route
default via 192.168.1.1 dev eth0 proto static metric 100 
default via 10.1.1.2 dev eth1 proto static metric 101 
10.1.1.0/24 dev eth1 proto kernel scope link src 10.1.1.2 metric 101 
192.168.116.0/22 dev eth0 proto kernel scope link src 192.168.116.152 metric 100 

編輯4:

按照評論中的建議,使用以下命令禁用明顯的癒合後工作:

service network-manager stop

如果網路正在“癒合”,這可能是 NetworkManager 試圖為您做事。我建議直接停止它並使用較低級別的命令來啟動兩個網路設備。

您需要設置的唯一顯式路由是預設路由。

這應該讓您 ping 專用網路,並在公共網路和 Internet 上執行所有操作。一旦這可行,問題就變成瞭如何配置 NetworkManager 來維持這種狀態(在那裡,我幫不了你)。

幾次重新啟動後,發現即使在 NetworkManager 執行的情況下,配置也可以正常工作。我認為添加 eth1 的 ip 作為網關可能是實際的答案。

引用自:https://unix.stackexchange.com/questions/604963