ifconfig コマンドを使用して、Linux モジュール (TI AM3359 カスタム ハードウェア上のカスタム Yocto Distribution) に静的 IP アドレスを割り当てています。
sudo ifconfig eth1 10.11.3.80 netmask 255.255.248.0
sudo route add default gw 10.11.0.1 eth1
これを約 60 秒前に実行すると、ルーティング テーブルは次のようになり、範囲 172.10.xx.xx の動的 IP からモジュールに無期限に ping を実行できるようになります。
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.11.0.1 0.0.0.0 UG 0 0 0 eth1
10.11.0.0 0.0.0.0 255.255.248.0 U 0 0 0 eth1
しかし、電源投入後すぐに静的 IP を割り当てると、約 1 分程度の遅延後にルーティング テーブルがこれに変わります。
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 eth1
0.0.0.0 10.11.0.1 0.0.0.0 UG 0 0 0 eth1
10.11.0.0 0.0.0.0 255.255.248.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
このシナリオが発生すると、動的 IP アドレスからボードに ping を実行できなくなります。
解決策を求めてインターネットのほぼすべてを調べましたが、何も見つからなかったため、どうすればよいか提案してください。
私のファイアウォールは次のようになります:
root@a:~# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
これは 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: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
3: eth0: <NO-CARRIER,BROADCAST,MULTICAST,PROMISC,DYNAMIC,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether 3c:e0:64:14:b3:c9 brd ff:ff:ff:ff:ff:ff
4: eth1: <BROADCAST,MULTICAST,PROMISC,DYNAMIC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 3c:e0:64:14:b3:cb brd ff:ff:ff:ff:ff:ff
inet 10.11.3.80/21 brd 10.11.7.255 scope global eth1
valid_lft forever preferred_lft forever
inet 169.254.199.165/16 brd 169.254.255.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::3ee0:64ff:fe14:b3cb/64 scope link
valid_lft forever preferred_lft forever
同様の IP 範囲、たとえば範囲 10.xx.x.xx からモジュールに ping を実行しようとすると、機能することに注意してください。
zeroconf、ファイアウォールを無効にしたり、dhcp を無効にしたりしてみました。しかし、どれも機能していないようでした。
編集:
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: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/sit 0.0.0.0 brd 0.0.0.0
3: eth0: <NO-CARRIER,BROADCAST,MULTICAST,PROMISC,DYNAMIC,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether 3c:e0:64:14:b3:c9 brd ff:ff:ff:ff:ff:ff
4: eth1: <BROADCAST,MULTICAST,PROMISC,DYNAMIC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 3c:e0:64:14:b3:cb brd ff:ff:ff:ff:ff:ff
inet 10.11.3.80/21 brd 10.11.7.255 scope global eth1
valid_lft forever preferred_lft forever
inet 169.254.199.165/16 brd 169.254.255.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::3ee0:64ff:fe14:b3cb/64 scope link
valid_lft forever preferred_lft forever
ip r
default dev eth1 scope link
default via 10.11.0.1 dev eth1
10.11.0.0/21 dev eth1 proto kernel scope link src 10.11.3.80
169.254.0.0/16 dev eth1 proto kernel scope link src 169.254.199.165