![Linux의 IPv4 브로드캐스트 라우팅](https://linux55.com/image/62370/Linux%EC%9D%98%20IPv4%20%EB%B8%8C%EB%A1%9C%EB%93%9C%EC%BA%90%EC%8A%A4%ED%8A%B8%20%EB%9D%BC%EC%9A%B0%ED%8C%85.png)
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의 경우 eth0
0.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
는 라우팅할 수 없습니다. 이를 사용할 때 인터페이스를 지정합니다. 방송 기능을 갖춘 최초의 인터페이스를 보여주는 것 같습니다.
하지만 두 경우 모두 주소가 라우팅 가능하다는 가정이 잘못된 것이므로 경로를 찾으려고 할 때 전혀 정보를 얻지 못했다는 사실에 놀랐습니다.