Linux

存在預設路由的點對點乙太網的 Linux 路由

  • January 19, 2018

解決方案:我的筆記型電腦乙太網介面上的 IP 地址有錯字(請參閱已接受的答案)。下面的文章很可能是正確的設置。


我想通過筆記型電腦和 rpi 之間的點對點乙太網與 Raspberry Pi (rpi) 通信。

wlan0我的筆記型電腦通過 NetworkManager (DHCP) 管理的無線介面連接到 Internet 。我的乙太網介面是eth0並且我已經明確告訴 NetworkManager 忽略它(nmcli dev set eth0 managed no)。

rpi 顯然將範圍內的地址分配169.245.0.0/16給其乙太網介面。當我在筆記型電腦乙太網介面 ( tcpdump -i eth0 -e) 上執行 tcpdump 時,我可以看到 rpi 從169.254.85.159. 我想至少從我的筆記型電腦上 ping 它。


169.245.0.1/16首先,我為筆記型電腦上的乙太網介面分配 IP 地址:

root@localhost ~ # ip addr add 169.245.0.1/16 dev eth0

然後我檢查它是否有正確的地址:

root@localhost ~ # ip a
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: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
   link/ether f5:fc:60:62:92:f1 brd ff:ff:ff:ff:ff:ff
   inet 192.168.0.157/24 brd 192.168.0.255 scope global dynamic noprefixroute wlan0
      valid_lft 1893sec preferred_lft 1893sec
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
   link/ether 50:e5:3c:f4:34:11 brd ff:ff:ff:ff:ff:ff
   inet 169.245.0.1/16 scope global eth0
      valid_lft forever preferred_lft forever

然後我檢查路由表:

root@localhost ~ # ip r
default via 192.168.0.1 dev wlan0 proto dhcp metric 600
169.245.0.0/16 dev eth0 proto kernel scope link src 169.245.0.1
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.157 metric 600

我假設任何東西169.245.0.0/16都會被第二條路線進入。


但顯然它是預設路由條目拾取的:

root@localhost ~ # traceroute 169.254.85.159
traceroute to 169.254.85.159 (169.254.85.159), 30 hops max, 60 byte packets
1  _gateway (192.168.0.1)  4.961 ms  10.669 ms  10.681 ms^C

您能否解釋一下為什麼數據包通過預設路由路由,以及設置這種點對點網路的最正確方法是什麼?


我也嘗試過使用-Bping 的開關來強制介面:

root@localhost ~ # ping -B eth0 169.254.85.159

現在在tcpdump輸出中,我可以看到來自 rpi 的回應要求和回复,但顯然它沒有傳遞給 rpi,ping因為它是無聲的。為什麼?

169.245.0.0/16 到它的乙太網介面。當我在筆記型電腦乙太網介面 (tcpdump -i eth0 -e) 上執行 tcpdump 時,我可以看到來自 169.254.85.159 的 rpi

你好像有錯別字。您的 RPI 為 169. 254 .85.159。並且您將 169. 245 .0.0/16 分配給了您的另一台電腦。254!=245。

儘管如果您的 RPi 真的獲得了 169.254/16 範圍內的 APIPA 地址,我會懷疑您是否有良好的連接性。

引用自:https://serverfault.com/questions/893132