지정된 인터페이스를 통해 고정 IP 주소를 사용하는 장치로 트래픽을 라우팅합니다. 작동하지 않나요?

지정된 인터페이스를 통해 고정 IP 주소를 사용하는 장치로 트래픽을 라우팅합니다. 작동하지 않나요?

고정 IP 주소(192.168.1.16)로 구성한 단일 장치가 있고 Ubuntu Linux PC의 4번째 포트(enp4s0)에 직접 연결되어 있습니다. m/c는 세 번째 포트(enp3s0)를 통해 내 LAN에도 연결됩니다. 내 LAN은 DHCP를 사용하여 192.168.1.1/24 네트워크의 IP를 표시합니다.

이제 enp4s0을 통해 192.168.1.19에서 내 장치를 핑할 수 있기를 원하므로 이 명령을 사용하여 단일 IP 주소를 통해 경로를 추가했습니다.

sudo ip route add 192.168.1.19/32 dev enp4s0

불행히도 핑이 실패합니다.

$ ping 192.168.1.19
PING 192.168.1.19 (192.168.1.19) 56(84) bytes of data.
From 192.168.1.168 icmp_seq=1 Destination Host Unreachable
From 192.168.1.168 icmp_seq=2 Destination Host Unreachable
From 192.168.1.168 icmp_seq=3 Destination Host Unreachable

일부 상태를 보면 링크가 다운되었다고 표시됩니다.

$ ip route
default via 192.168.1.1 dev enp3s0 proto dhcp metric 101
default via 10.136.209.45 dev wwan0 proto static metric 700
10.136.209.40/29 dev wwan0 proto kernel scope link src 10.136.209.44 metric 700
169.254.0.0/16 dev enp3s0 scope link metric 1000
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
192.168.1.0/24 dev enp3s0 proto kernel scope link src 192.168.1.168 metric 101
192.168.1.19 dev enp4s0 scope link linkdown

$ ip address
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: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 78:d0:04:31:91:bd brd ff:ff:ff:ff:ff:ff
3: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 78:d0:04:31:91:be brd ff:ff:ff:ff:ff:ff
4: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 78:d0:04:31:91:bf brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.168/24 brd 192.168.1.255 scope global dynamic noprefixroute enp3s0
       valid_lft 85575sec preferred_lft 85575sec
    inet6 fe80::1191:4ec4:6844:2273/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
5: enp4s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 78:d0:04:31:91:c0 brd ff:ff:ff:ff:ff:ff
6: wwan0: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
    link/ether e6:83:24:bc:f6:81 brd ff:ff:ff:ff:ff:ff
    inet 10.136.209.44/29 brd 10.136.209.47 scope global noprefixroute wwan0
       valid_lft forever preferred_lft forever
7: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:f1:f6:93:0b brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:f1ff:fef6:930b/64 scope link
       valid_lft forever preferred_lft forever
9: veth36abd25@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default
    link/ether ae:27:23:82:70:6a brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::ac27:23ff:fe82:706a/64 scope link
       valid_lft forever preferred_lft forever

192.168.1.19에서 장치에 연결하기 위해 수행해야 할 다른 작업이 누락되었습니까?


업데이트:

케이블을 바꿔보면서 커넥터의 순서가 논리적이지 않다는 것을 발견했습니다! 1,2,3,4가 아닌 실제로는 1,4,3,2입니다.

그래서 제가 enp4s0이라고 생각했던 것이 사실은 en2s0입니다. 이러한 혼란을 극복하고 이제또 다른 문제여기에 설명된 대로:

$ sudo ip route add 192.168.1.19/32 dev enp2s0
$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         setup.ubnt.com  0.0.0.0         UG    102    0        0 enp3s0
default         _gateway        0.0.0.0         UG    700    0        0 wwan0
10.63.138.32    0.0.0.0         255.255.255.248 U     700    0        0 wwan0
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 enp3s0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.1.0     0.0.0.0         255.255.255.0   U     102    0        0 enp3s0
eZ80Acclaim     0.0.0.0         255.255.255.255 UH    0      0        0 enp2s0
$ ping 192.168.1.19
PING 192.168.1.19 (192.168.1.19) 56(84) bytes of data.
64 bytes from 192.168.1.19: icmp_seq=1 ttl=250 time=1.01 ms
64 bytes from 192.168.1.19: icmp_seq=2 ttl=250 time=1.06 ms
64 bytes from 192.168.1.19: icmp_seq=3 ttl=250 time=1.18 ms
64 bytes from 192.168.1.19: icmp_seq=4 ttl=250 time=1.27 ms
64 bytes from 192.168.1.19: icmp_seq=5 ttl=250 time=1.18 ms
64 bytes from 192.168.1.19: icmp_seq=6 ttl=250 time=1.04 ms
64 bytes from 192.168.1.19: icmp_seq=7 ttl=250 time=1.17 ms
64 bytes from 192.168.1.19: icmp_seq=8 ttl=250 time=1.18 ms
64 bytes from 192.168.1.19: icmp_seq=9 ttl=250 time=1.05 ms
64 bytes from 192.168.1.19: icmp_seq=10 ttl=250 time=1.17 ms
64 bytes from 192.168.1.19: icmp_seq=11 ttl=250 time=1.43 ms
64 bytes from 192.168.1.19: icmp_seq=12 ttl=250 time=0.941 ms
From 192.168.1.168 icmp_seq=13 Destination Host Unreachable
From 192.168.1.168 icmp_seq=14 Destination Host Unreachable
From 192.168.1.168 icmp_seq=15 Destination Host Unreachable
^C
--- 192.168.1.19 ping statistics ---
18 packets transmitted, 12 received, +3 errors, 33.3333% packet loss, time 17129ms
rtt min/avg/max/mdev = 0.941/1.139/1.433/0.124 ms, pipe 4
$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         setup.ubnt.com  0.0.0.0         UG    102    0        0 enp3s0
default         _gateway        0.0.0.0         UG    700    0        0 wwan0
10.63.138.32    0.0.0.0         255.255.255.248 U     700    0        0 wwan0
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 enp3s0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.1.0     0.0.0.0         255.255.255.0   U     102    0        0 enp3s0
$

보시다시피 경로가 경로 테이블에 추가되고 장치에 대한 ping이 작동합니다. 그러나 몇 초 후에는 목적지에 도달할 수 없게 됩니다. 다시 루트 테이블을 보면 루트가 제거된 것을 볼 수 있습니다!!

이제 문제는 '누가' 경로를 제거했으며 왜 그랬는가입니다.

답변1

네트워크 카드가 연결되어 있지 않은 경우(보이는 대로) 통신업체 상태를 무시해야 합니다.

보다이 다른 질문자세한 내용은

답변2

고정 경로가 삭제되는 것에 대한 답을 찾은 것 같습니다. NetworkManger(nmcli)는 경로를 직접 추가하는 것을 좋아하지 않아서 백그라운드에서 경로를 종료시키는 것 같습니다.

영감을 좀 얻었어요여기대신 nmcli를 사용하여 내 장치에 대한 고정 경로를 추가하는 방법에 대해 알아보세요. 그래서 저는 이 명령을 사용하여 필요한 경로를 추가했습니다.

$ sudo nmcli con add type ethernet con-name "static-ip" ifname enp2s0 ipv4.method manual ipv4.addresses 192.168.1.19/32 gw4 0.0.0.0

모든 작업을 정확히 이해하고 있는지는 잘 모르겠지만 작동하는 것 같고 이제 항상 192.168.1.19에서 내 장치를 핑할 수 있습니다. 더 좋은 점은 재부팅 후에도 변경 사항이 지속되며 동일한 192.168.1.0/24 네트워크에 있는 랩톱에서 장치를 핑할 수 있는 것 같습니다.

관련 정보