두 번째 NIC 카드의 게이트웨이 없는 기본 경로 변경

두 번째 NIC 카드의 게이트웨이 없는 기본 경로 변경

2개의 네트워크 카드가 있는데 두 번째 카드(IP 주소 10.1.1.2)는 개인 네트워크에 연결되어 있습니다. 개인용 네트워크(Windows, IP가 있는 10.1.1.3)의 머신은 이 Linux 머신을 핑할 수 있습니다. 하지만 이 컴퓨터에서는 핑을 보낼 수 없습니다. arping 명령이 작동합니다. Traceroute 10.1.1.3은 NIC1의 게이트웨이로 이동합니다.

많은 실험을 거친 후 이 문제를 해결하기 위해 이것이 제가 할 수 있는 최선이며 추가 도움을 바랍니다.

  1. managed=true/etc/NetworkManager/NetworkManager.conf에서 " "를 설정하여 관리를 NetworkManager로 전환합니다.

  2. DEFROUTE=no
    /etc/NetworkManager/system-connections/Wired 연결 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를 게이트웨이로 추가하는 것이 실제 답변이 될 수 있다고 생각합니다.

관련 정보