더북(TheBook)
Q 라우팅 테이블을 통해 패킷을 전달하는 원리를 알려주세요.

A 패킷이 라우팅 테이블을 통해서 어떻게 전달되는지 살펴봅시다. 두 조건이 모두 참일 때는 결과도 참이지만 조건 중에서 하나라도 거짓이 있다면 결과도 거짓이 된다는 논리 연산을 논리 곱, AND 연산이라고 합니다. 참을 1, 거짓을 0으로 표현하면 AND 연산의 결과는 1과 1일 때 1, 1과 0일 때 0, 0과 1일 때 0, 0과 0일 때 0, 4가지 경우가 있을 수 있습니다.

이제 본론으로 돌아가서 라우팅 테이블을 분석해보겠습니다. 리눅스 서버의 IP 주소는 192.168.0.195이며 같은 네트워크 안에 있는 호스트 192.168.0.196에 패킷을 전달한다고 가정해봅시다.

패킷에는 목적지 IP 주소 정보가 있습니다. 리눅스 서버는 라우팅 테이블을 통해 패킷을 어디로 보낼지 결정합니다. 라우팅 테이블의 맨 처음 행, Genmask 값인 255.255.255.0을 읽어 패킷의 목적지의 IP 주소 192.168.0.196과 AND 연산합니다. Genmask 값을 컴퓨터는 이진수로 환산하면 11111111.11111111.11111111.00000000이 되는데, 이 값과 192.168.0.196을 AND 연산하게 되면 192.168.0.0이 됩니다.

Destination   Gateway   Genmask        Flags Metric Ref   Use Iface
192.168.0.0   *         255.255.255.0  U     0      0       0 eth0
AND 연ind산 결과 값이 그 행에 있는 Destination 값과 비교하여 같은 값이면 그 행의 Iface가 가리키는 네트워크 인터페이스로 보냅니다. 값이 일치하기 때문에 패킷은 네트워크 인터페이스로 지정되어 있는 eth0을 통해 보내집니다. 일치하지 않으면 다음 행의 Genmask 값을 읽어서 같은 작업을 되풀이하고 어느 행과도 일치하지 않는다면 패킷을 보내지 않습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.