경로 출력을 이해하는 방법

경로 출력을 이해하는 방법

Ubuntu 시스템의 네트워크를 구성하고 있다고 가정해 보겠습니다. 따라서 /etc/network/interfaces다음과 같이 편집할 수 있습니다.

...
address x.x.x.x
netmask x.x.x.x
gateway 192.168.1.1

그런 다음 명령을 실행하면 route다음과 같은 출력을 얻을 수 있습니다.

default       gateway    genmask
192.168.1.0   0.0.0.0    255.255.255.0

192.168.1.0, 0.0.0.0그리고 을 어떻게 이해해야 할지 모르겠습니다 255.255.255.0.

답변1

간단한 예가 도움이 될 수 있습니다. 다음 경로 테이블 항목을 가정합니다(Linux의 "route -an" 명령 출력에서 ​​모든 열이 표시되지 않고 필요한 열만 표시됩니다. 이것이 "승리" 항목이고 다른 항목은 표시되지 않음).

Destination   Gateway  Genmask          Iface
192.168.69.0  0.0.0.0  255.255.255.0    eth7
.... other entries not shown ....

이제 대상 IP가 192.168.69.25인 아웃바운드 패킷을 라우팅한다고 가정합니다. 이것이 일어나는 단계입니다. (이론적으로) 라우팅 테이블의 모든 항목에 표시되며 "승리" 항목만 표시됩니다.

Extract destination IP:  192.168.69.25
AND it with the Genmask: 192.168.69.25 AND 255.255.255.0 ==> 192.168.69.0
Match the result against the 'Destination' field of the entry.
They match:   192.168.69.0 matches 92.168.69.0
The entry matches (and we presume it's the 'best' match, for simplicity).

일치하는 항목의 게이트웨이 필드는 0.0.0.0입니다. 이는 "게이트웨이 없음, 필요하지 않음"을 의미합니다. 이는 이 항목과 일치하는 IP가 이 호스트에 직접 사용 가능하고 지정된 인터페이스 "eth7"을 사용하여 액세스될 수 있음을 의미합니다. eth7이 연결된 네트워크에 192.168.69.25의 ARP를 보내면 해당 호스트의 MAC가 포함된 응답을 받아야 합니다. 이 MAC 주소로 패킷을 보냅니다.

게이트웨이가 0.0.0.0이 아닌 경우 eth7 네트워크에서 발견된 장치의 IP여야 합니다. eth7에서 게이트웨이의 ARP를 보내고 응답을 받습니다. 이 ARP로 패킷을 보냅니다. 이는 일반적으로 패킷을 수신하여 적절한 다음 홉 네트워크로 전달하는 라우터입니다.

여기에 짧고 흥미로운 예가 있습니다. 검색을 하면 더 자세한 내용을 찾을 수 있습니다...

답변2

경로 매뉴얼 페이지는 이에 대해 매우 잘 설명합니다.

OUTPUT
   The output of the kernel routing table is organized in the following columns

   Destination
          The destination network or destination host.

   Gateway
          The gateway address or '*' if none set.

   Genmask
          The netmask for the destination net; '255.255.255.255' for a host destination and '0.0.0.0' for the default route.

따라서 192.168.1.0은 대상 네트워크이고, 0.0.0.0은 게이트웨이, 255.255.255.0은 넷마스크입니다.
게이트웨이가 왜 0.0.0.0인지 확실하지 않은 경우이 답변은 그것을 아주 잘 설명합니다.

관련 정보