更改第二块 NIC 卡的无网关默认路由

更改第二块 NIC 卡的无网关默认路由

我有 2 个网卡,第二个(IP 地址为 10.1.1.2)连接到专用网络。私有 n/w 上的一台机器(带有 ip 的 Windows,10.1.1.3)能够 ping 这台 Linux 机器。但从这台机器上,我无法 ping 回来。 arping 命令有效。 Traceroute 10.1.1.3 转到 NIC1 的网关。

为了在多次实验后解决这个问题,这是我能做的最好的事情,并希望进一步进行帮助:

  1. managed=true通过在 /etc/NetworkManager/NetworkManager.conf 中设置“ ”将管理切换到 NetworkManager

  2. DEFROUTE=no
    在文件
    /etc/NetworkManager/system-connections/Wired connection 2.nmconnection的 [ipv4] 部分下添加

  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 挂起。一段时间后,当路由表丢失一个条目时,情况又恢复正常。我看到跟踪路由转到默认网关。

我的目标是确保 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

答案1

如果网络正在“恢复”,这可能是 NetworkManager 试图为您做一些事情。我建议完全停止它并使用较低级别的命令来启动两个网络设备。

您需要设置的唯一显式路由是默认路由。

这应该可以让您 ping 专用网络,并在公共网络和互联网上执行所有操作。一旦这个工作正常,问题就变成了如何配置 NetworkManager 来维持这种状态(在那里,我无法帮助你)。

答案2

重新启动几次后,发现即使 NetworkManager 运行,配置也能正常工作。我认为添加 eth1 的 ip 作为网关可能是实际的答案。

相关内容