Linux의 IPv4 브로드캐스트 라우팅

Linux의 IPv4 브로드캐스트 라우팅

lo루프백 인터페이스 하나 와 물리적 네트워크 인터페이스 두 개 eth0, 이렇게 세 개의 네트워크 인터페이스가 있는 서버가 있습니다 eth1.

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:1d:09:f0:92:ab brd ff:ff:ff:ff:ff:ff
    inet 93.184.216.34/22 brd 93.184.219.255 scope global eth0
    inet6 fe80::21d:9ff:fef0:92ab/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:1d:09:f0:92:ac brd ff:ff:ff:ff:ff:ff
    inet 10.228.2.2/24 scope global eth1
    inet6 fe80::21d:9ff:fef0:92ac/64 scope link 
       valid_lft forever preferred_lft forever

이제 255.255.255.255 또는 0.0.0.0.0(이전 IP 브로드캐스트 주소)에 대한 경로를 확인하면 패킷이 세 네트워크 인터페이스 모두에서 전달될 것으로 예상됩니다. 대신 255.255.255.255의 경우 eth00.0.0.0의 경우 다음을 사용하세요 lo.

root@server:~# ip route get 255.255.255.255
broadcast 255.255.255.255 dev eth0  src  93.184.216.34
    cache <local,brd> 
root@server:~# ip route get 0.0.0.0
local 127.0.0.1 dev lo  src 127.0.0.1 
    cache <local> 
root@server:~# 

왜 이런 일이 발생합니까?

답변1

0.0.0.0브로드캐스트 주소가 아닙니다. 소프트웨어는 종종 이를 "임의" 주소로 사용하는데, 이는 발견한 첫 번째 인터페이스를 표시하는 이유를 설명할 수 있습니다. 어떤 상황에서도 라우팅이 불가능합니다.

주소 255.255.255.255는 라우팅할 수 없습니다. 이를 사용할 때 인터페이스를 지정합니다. 방송 기능을 갖춘 최초의 인터페이스를 보여주는 것 같습니다.

하지만 두 경우 모두 주소가 라우팅 가능하다는 가정이 잘못된 것이므로 경로를 찾으려고 할 때 전혀 정보를 얻지 못했다는 사실에 놀랐습니다.

관련 정보