静的IPと静的ゲートウェイを割り当てた後、Linuxマシンにゲートウェイ0.0.0.0が追加されます

静的IPと静的ゲートウェイを割り当てた後、Linuxマシンにゲートウェイ0.0.0.0が追加されます

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

関連情報