고정 IP와 고정 게이트웨이를 할당한 후 Linux 시스템에 0.0.0.0 게이트웨이가 추가됩니다.

고정 IP와 고정 게이트웨이를 할당한 후 Linux 시스템에 0.0.0.0 게이트웨이가 추가됩니다.

ifconfig 명령을 사용하여 Linux 모듈(TI AM3359 사용자 정의 하드웨어의 사용자 정의 Yocto 배포판)에 고정 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분 정도 지연된 후 라우팅 테이블이 이 IP로 변경됩니다.

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

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

관련 정보