더북(TheBook)

라우팅 테이블 다루기

네트워크를 통해 목적지로 패킷이 전송될 경로를 지정해주는 것을 라우팅이라고 합니다. 리눅스 시스템은 미리 설정되어 있는 라우팅 테이블이라는 지도를 보고 패킷을 어떤 네트워크 인터페이스를 거쳐 목적지로 보낼지 결정합니다.

라우팅 테이블을 확인하거나 설정하는 명령은 route입니다. 옵션 없이 route 명령을 입력하면 현재 설정되어 있는 라우팅 테이블을 확인합니다. 일반적으로 네트워크 설정을 끝난 리눅스 시스템은 라우팅 테이블을 자동으로 생성합니다.

shinjaehun@losttemple:~$ route
Kernel IP routing table
Destination     Gateway        Genmask        Flags Metric Ref   Use Iface
192.168.0.0     *              255.255.255.0  U     0      0       0 eth0

라우팅 테이블의 각 필드는 다음을 의미합니다.

Destination: 목적지

Gateway: 외부 네트워크와 연결하기 위한 게이트웨이 주소

Genmask: 목적지 네트워크의 넷마스크 주소. 255.255.255.255로 지정되어 있으면 목적지 호스트의 주소, 0.0.0.0으로 지정되어 있으면 기본 게이트웨이 주소를 의미합니다.

Flags: 해당 경로에 대한 정보를 알려주는 기호. U(up)는 이 경로가 살아있는 상태임을, H(host)는 목적지가 호스트 주소라는 사실을, G(gateway)는 게이트웨이를 향하는 경로를 의미합니다.

Metric: 목적지 네트워크까지의 거리

Ref: 경로를 참조한 횟수

Use: 경로를 탐색한 횟수

Iface: 패킷이 오가는 데 사용할 네트워크 인터페이스

다시 라우팅 테이블을 살펴보면 이 시스템에서는 192.168.0.1부터 192.168.0.254까지 향하는 패킷은 eth0으로 보낼 수 있지만 그 외에 다른 곳으로는 패킷을 전달할 수 없습니다. 따라서 현재 시스템인 인터넷이 끊긴 상태입니다.

shinjaehun@losttemple:~$ route
Kernel IP routing table
Destination     Gateway       Genmask        Flags Metric Ref    Use Iface
192.168.0.0     *             255.255.255.0  U     0      0        0 eth0
Tip

네트워크 연결 상태 진단 도구인 ping을 사용하면 인터넷 접속이 불가능하다는 사실을 알 수 있습니다.

따라서 라우팅 테이블에 패킷을 인터넷으로 보낼 수 있는 장치의 위치, 게이트웨이gateway를 알려줘야 합니다. 라우팅 테이블에 기본 게이트웨이를 추가하는 방법은 다음과 같습니다.

shinjaehun@losttemple:~$ sudo route add default gw 192.168.0.1

바뀐 라우팅 테이블을 살펴보면 192.168.0.0 네트워크가 아닌 다른 네트워크로 나가는 패킷은 모두 default로 지정되어 있는 192.168.0.1로 eth0을 통해 보내게 됩니다.

      
shinjaehun@losttemple:~$ route
Kernel IP routing table
Destination     Gateway       Genmask        Flags Metric Ref   Use Iface
default         192.168.0.1   0.0.0.0        UG    0      0       0 eth0
192.168.0.0     *             255.255.255.0  U     0      0       0 eth0

ping으로 인터넷 연결 상태를 확인해볼 수 있습니다. 시스템을 다시 부팅하면 네트워크 인터페이스 설정 파일의 주소 정보가 반영되므로 네트워크 설정은 모두 원래대로 돌아올 것입니다.

shinjaehun@losttemple:~$ ping kldp.org
PING kldp.org (211.237.1.231) 56(84) bytes of data.
64 bytes from ipc.kldp.org (211.237.1.231): icmp_req=1 ttl=54 time=20.9 ms
64 bytes from ipc.kldp.org (211.237.1.231): icmp_req=2 ttl=54 time=16.7 ms
64 bytes from ipc.kldp.org (211.237.1.231): icmp_req=3 ttl=54 time=17.0 ms
^C
--- kldp.org ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 16.713/18.248/20.938/1.914 ms
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.