본문 바로가기

닷컴's_열공/Linux

route 테이블 사용방법

라우팅(Routing) : 패킷(Packet)이 목적지까지 갈 수 있도록 경로를 올바르게 설정해 주는 작업.

HOST A가 HOST B에게 데이터를 전송하고자 할 때, 두 호스트가 같은 로컬 네트워크 상에 있다면, IP 프로토콜은 출발지와 도착지 호스트의 IP 주소를 ARP 를 사용해서 물리적 주소로 변환한다. 그리고 그 물리적 주소들은 (프레임을 만들기 위해) IP 데이터그램에 추가되고, 프레임을 이용해 두 호스트는 서로 간에 직접 통신을 한다. 그런데 두 호스트가 같은 로컬 네트워크 상에 있지 않으면 직접 통신할 수 없고 라우터를 거쳐서 통신해야 한다.

라우터는 특정한 경로(ROUTE)가 알려져 있지 않은 로컬 네트워크 밖의 호스트와 통신할 때 사용된다.
두 호스트가 같은 로컬 네트워크에 있지 않다면, 호스트 A는 라우터의 라우팅 표를 체크하여 호스트 B의 로컬 네트워크에 연결될 수 있는지 살펴본다. 만약 일치하는 것을 찾지 못하면 데이터는 "디폴트 게이트웨이"로 보내진다.

대부분 패킷을 목적지까지 전달하기 위해 한 라우터 만을 경유하지는 않는다. 라우터는 다른 라우터로 가는 경로를 알고 있다.

route 명령
- 라우팅 테이블을 확인하거나 수정할 수 있다.
- 활성화되어 있는 네트워크 인터페이스를 통해 정적 라우트를 설정할 수 있다.

명령어 옵션
    -F : FIB(Forwarding Information Base)를 표시한다. default
    -C : routing cache를 표시한다. --cache
    -n : don't resolve names. --numeric
    -e : 더 많은 정보를 표시한다. --extended
    del : delete a route.
    add : add a new route.
    -net : 목적지 네트워트
    -host : 목적지 호스트
    netmask : 네트워크 라우트를 추가할 때, 사용 될 넷마스크
    gw : route packets via a gateway
    dev if : force the route to be associated with the specified device.

라우팅 테이블 (Routing Table)
route 명령이 수행되었을 때 보여주는 테이블이다.
- Destination : 목적지 네트워트 또는 목적지 호스트 주소
- Gateway : 게이트웨이 주소, 설정되어 있지 않다면 *
- Genmask : The netmask for the destination net; '255.255.255.255' for a host destination and '0.0.0.0' for the default route.
- Flags :
    U (route is Up) 라우트 동작 상태
    H (target is a Host) 목적지 호스트
    G (use Gateway) 게이트웨이 사용
    R (Reinstate route for dynamic routing)
    D (dynamically installed by Daemon or redirect) 데몬 또는 ICMP Redirect Message에 의해 동적으로 설치된 상태
    M (Modified from routing daemon or redirect) 데몬 또는 ICMP Redirect Message에 의해 변경된 상태
    A (installed by Addrconf)
    C (Cache entry)
    ! (reject route) 라우트 거부
- Metric : Target까지의 거리를 홉(Hop) 단위로 계산, 최근 커널에서는 사용하지 않으나 라우팅 데몬에 의해 사용
- Ref : 현재 라우트에 대한 레퍼런스 수, 리눅스 커널에서는 사용되지 않음
- Use : 라우트 탐색 수
- iface : 패킷이 전달되는 인터페이스

사용 예제
단일 호스트에 대해서 라우팅을 추가 할 때
# route add -host 192.168.123.36 netmask 255.255.255.255 dev eth0

네트워크에 대해서 라우팅을 추가 할 때
# route add -net 192.168.123.0 netmask 255.255.255.0 dev eth0

게이트웨이 추가, 제거
# route add default gw 192.168.123.254 dev eth0
# route del default gw 192.168.123.254 dev eth0

61.247.208.6으로 나가는 트래픽을 192.168.123.254 게이트웨이를 통하도록 할 때
# route add -host 61.247.208.6 netmask 255.2555.255.255 gw 192.168.123.254 dev eth0

192.168.123.0 네트워크로 나가는 트래픽을 1.1.1.1. 게이트웨이를 통하도록 할 때
route add -net 192.168.123.0 netmask 255.255.255.0 gw 1.1.1.1 dev eth0

라우팅 정보가 잘못되어 라우팅을 삭제 할 때
# route del -host 192.168.123.36 dev eth0
# route del -net 192.168.123.0 dev eth0

부팅과 함께 적용시키기 위해 /etc/rc.d/rc.local 파일에 라우트 설정 내용을 추가하여 네트워크 설정을 한다.