РЕШЕНИЕ: Опечатка в IP-адресе интерфейса Ethernet моего ноутбука (см. Принятый ответ). Следующая запись, скорее всего, является правильной настройкой.
Я хотел бы связаться с Raspberry Pi (rpi) через двухточечный Ethernet между моим ноутбуком и rpi.
Мой ноутбук подключен к Интернету по беспроводной сети wlan0
интерфейс, управляемый NetworkManager (DHCP). Мой интерфейс Ethernet eth0
и я явно сказал NetworkManager игнорировать его (nmcli dev set eth0 managed no
).
rpi явно назначает адрес в диапазоне 169.245.0.0/16
к его интерфейсу Ethernet. Когда я запускаю tcpdump на интерфейсе Ethernet моего ноутбука (tcpdump -i eth0 -e
) Я вижу, как говорят rpi из 169.254.85.159
. Хотелось бы хотя бы пинговать его со своего ноутбука.
Сначала я назначаю IP-адрес 169.245.0.1/16
к интерфейсу Ethernet на моем ноутбуке:
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
Не могли бы вы объяснить, почему пакет маршрутизируется по маршруту по умолчанию и как лучше всего настроить такую сеть точка-точка?
Я также пробовал использовать -B
переключатель ping для принудительного использования интерфейса:
root@localhost ~ # ping -B eth0 169.254.85.159
Теперь в tcpdump
output Я вижу эхо-запросы и ответы от rpi, но, по-видимому, они не доставляются в ping
потому что он тихий. Зачем?
169.245.0.0/16 к его интерфейсу Ethernet. Когда я запускаю tcpdump на интерфейсе Ethernet моего ноутбука (tcpdump -i eth0 -e), я вижу, как rpi говорит с 169.254.85.159
Похоже, у вас есть опечатка. Ваш RPI - 169.254.85.159. И вам присвоили 169.245.0.0 / 16 на другой компьютер. 254! = 245.
Хотя, если ваш RPi действительно получает адрес APIPA в диапазоне 169.254 / 16, это заставляет меня задаться вопросом, есть ли у вас хорошее соединение.