Ubuntu에 localhost에 대한 경로가없는 이유는 무엇입니까? 172.17.42.1

$ sudo docker run --rm ubuntu:14.04 route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.17.42.1     0.0.0.0         UG    0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth0

이것이 127.0.0.0/8이 루프백 장치가 아닌 172.17.42.1의 게이트웨이로 라우팅되는 것을 의미하지 않습니까?



답변

route명령은 더 이상 사용되지 않으므로 더 이상 사용해서는 안됩니다.

새로운 방법은 iproute 명령 집합을 사용하는 것입니다.이 명령은 모두 ip개체 와 함께 호출됩니다 . 예를 들면 다음과 같습니다.

$ ip route show
default via 192.168.1.254 dev eth0
192.168.0.0/23 dev eth0  proto kernel  scope link  src 192.168.1.27

자, 당신이 말하는 것을 들었습니다. 이것은 기본적으로 동일한 정보입니다! 예, 그러나 이것은 전체 이야기가 아닙니다. 라우팅 테이블 (예, 복수)이 규칙 테이블에 오기 전에 :

$ ip rule show
    0:  from all lookup local
32766:  from all lookup main
32767:  from all lookup default

이전에 살펴본 main라우팅 테이블 은 라우팅 테이블입니다. 귀하의 질문은 local라우팅 테이블에 관한 것이며 , 여기에는 로컬 연결과 관련된 모든 경로가 포함되어 있습니다. 이 테이블은 다음과 같이 표시 될 수 있습니다.

$ ip ro sh table local
broadcast 127.0.0.0 dev lo  proto kernel  scope link  src 127.0.0.1
local 127.0.0.0/8 dev lo  proto kernel  scope host  src 127.0.0.1
local 127.0.0.1 dev lo  proto kernel  scope host  src 127.0.0.1
broadcast 127.255.255.255 dev lo  proto kernel  scope link  src 127.0.0.1
broadcast 192.168.0.0 dev eth0  proto kernel  scope link  src 192.168.1.27
local 192.168.1.27 dev eth0  proto kernel  scope host  src 192.168.1.27
broadcast 192.168.1.255 dev eth0  proto kernel  scope link  src 192.168.1.27

( ip옵션 / 매개 변수가 여전히 고유하다면 옵션과 매개 변수를 약어로 사용할 수 있습니다 . 따라서 ip ro sh와 동일합니다 ip route show.)

여기서 루프백 경로를 볼 수 있습니다.

정책 기반 라우팅으로 모든 종류의 훌륭한 작업을 수행 할 수 있습니다 . 필자 는 Matthew G. Marsh의 Linux를 통한 정책 라우팅 을 읽어 보는 것이 좋습니다 .


답변

route명령은 10 년 전부터 오래 iproute2되었으므로 패키지 와 함께 가야 합니다.

사용 ip route show하면 main표가 표시됩니다. local표 를 표시하려면을 사용하십시오 ip route show table local.

도움이 되었기를 바랍니다.