인용

리눅스에서는 ip route show 명령으로, FreeBSD에서는 netstat -r 명령으로 머신의 라우팅 테이블Routing Table을 볼 수 있다. 리눅스의 netstat는 이제 잘 사용되지 않지만 여전히 존재하며 작동한다. 다음 예문에서는 출력을 두 버전으로 보여주는 것을 피하고자 netstat을 사용했다.

DNS 조회를 피하고, 모든 정보를 숫자로 표현하고자 netstat -rn 명령을 사용한다. 숫자 표현이 더 유용하기 때문이다. 다음은 IPv4 라우팅 테이블의 간단한 예로, 경로들이 어떤 모습으로 돼 있는지 잘 보여준다.

redhat$ netstat -rn
Destination     Genmask          Gateway         Fl  MSS   Iface
132.236.277.0   255.255.255.0    132.236.227.93  U   1500  eth0
default         0.0.0.0          132.236.227.1   UG  1500  eth0
132.236.212.0   255.255.255.192  132.236.212.1   U   1500  eth1
132.236.220.64  255.255.255.192  132.236.212.6   UG  1500  eth1
127.0.0.1       255.255.255.255  127.0.0.1       U   3584  lo

이 호스트에는 두 개의 네트워크 인터페이스가 있다. 네트워크 132.236.227.0/24에 있는 132.236.227.93(eth0)과 네트워크 132.236.212.0/26에 있는 132.236.212.1(eth1)이다.

호스트 내에서만 사용하는 경로(그들의 Genmask는 모든 비트가 참조되기 때문에 255.255.255.255다)를 추가할 수도 있겠지만 목적지(Destination) 필드는 대개 네트워크 주소다.

게이트웨이(Gateway) 필드는 반드시 로컬 네트워크 인터페이스나 인접한 호스트의 완전한 IP 주소를 포함하고 있어야 한다. 리눅스 커널에서는 기본 게이트웨이를 호출하고자 0.0.0.0이 사용될 수도 있다.

예를 들어 위 테이블의 4번째 경로가 말하고 있는 것은 네트워크 132.236.220.64/26에 도달하려면 패킷을 인터페이스 eth1을 통해 게이트웨이 132.236.212.6으로 보내야 한다는 것이다. 두 번째 항목은 기본 경로로, 목록상의 세 가지 네트워크 중 한 곳이나 호스트 자신에게 명시적 주소지정이 되지 않는 패킷들은 기본 게이트웨이 호스트 132.236.227.1로 보내진다.

한 호스트는 직접 연결된 네트워크를 통해 도달할 수 있는 게이트웨이 머신에만 패킷을 라우팅할 수 있다. 로컬호스트의 작업은 그들의 목적지까지 한 흡만 더 가까이 패킷을 이동시킬 수 있게 제한되기 때문에 인접하지 않은 게이트웨이에 관한 정보를 로컬 라우팅 테이블에 포함하는 것은 무의미하다. 12

참고문헌

  • 유닉스·리눅스 시스템 관리 핸드북 5/e / 에비 네메스, 가스 스나이더, 트렌트 헤인, 벤 웨일리, 댄 맥킨 저 외 2명 / 에이콘출판사 / 발행: 2022년 01월 03일 / 원제: UNIX and Linux System Administration Handbook, 5th Edition

주석

  1. 유닉스·리눅스 시스템 관리 핸드북 5/e. 13장. 618쪽. 

  2. 원주: IPv4 소스 라우팅 기능은 이 법칙에 해당되지 않는다.