EdgeRouter - 라우트 생명주기

download at 2017-02-07T01:02:43Z origin

Overview


이 문서는 EdgeOS의 라우팅 프로토콜 데몬에 대하여 서술합니다. 라우팅 프로토콜 데몬이 존재할 때에는 포워딩 데이터베이스가 한번에 증가하지 않습니다.

이 문서에서 사용된 용어 및 축약어:

  • RIB — 라우팅 정보 베이스, 모든 사용 가능한 라우트 정보 엔터티.
  • FIB — 포워딩 정보 베이스, 실제로 트래픽 포워딩이 사용된 루트를 저장한 엔터티.
  1. 라우팅 프로토콜은 라우팅 정보를 주변에서 받아서 처리합니다. 정보의 정확성, 필터링 정책 설정에 따라서 이 정보를 받을지 말지 결정하게 됩니다. 루트 중 일부는 RIB에 전파하지는 않지만 특정 프로토콜 라우팅 테이블에 저장을 하게 됩니다. (예를 들어 같은 목적지로 가는 여러개의 경로가 존재할 때, 최적 경로만 RIB로 보내집니다.)
  2. 라우팅 프로토콜이 라우팅 정보를 받고 FIB 후보 경로로 선정하였다면 RIB 프로세스로 해당 경로를 전송합니다.
  3. RIB는 FIB에 경로 정보를 전달합니다. 특정 상황에서는 저장하지 않을 수 있습니다.

image0

라우팅 경로를 디버깅하고 싶다면 데이터베이스의 라우팅 정보를 확인하고, RIB를 다음으로 확인한 후 마지막으로 FIB를 확인 합니다.

  1. 라우팅 프로세스 데이터베이스 명령어는 프로토콜 종속적입니다. BGP는 "show ip bgp", RIP는 "show ip rip", OSPF는 "show ip ospf route", LSA는 "show ip ospf database" 명령어를 통해서 확인이 가능합니다.
  2. RIB 경로 확인은 "show ip route" 명령어를 사용합니다.
  3. FIB 경로 확인은 "show ip route forward" 명령어를 사용합니다.

Examples


RIB가 다음 홉이 닿지 않을 떄 FIB에 경로를 전달하지 않는 예제를 생각해보도록 하겠습니다. 다음 명령어를 수행합니다. (192.0.2.1 로의 경로가 업다고 가정합니다.):

ubnt@ubnt# set protocols static route 192.0.2.0/24 next-hop 192.0.2.1
ubnt@ubnt# commit
ubnt@ubnt# run show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
 I - ISIS, B - BGP, > - selected route, * - FIB route
...
S 192.0.2.0/24 [1/0] via 192.0.2.1 inactive
ubnt@ubnt# run show ip route forward | match 192.0.2.0/24
<no output>

RIB가 FIB에 경로를 전달하기 전에 경로 엔트리를 수정하는 예제도 있습니다. 다른 예제는 재귀 경로 (다음 홉이 절대로 닿지 않음, 그러나 다른 호스트에서는 경로가 존재)도 있습니다. 이런 경우에는 다음과 같이 결과가 출력됩니다:

ubnt@ubnt# show ip route
...
S>* 10.46.0.0/16 [1/0] via 10.91.18.10 (recursive via 10.91.19.1)
...
ubnt@ubnt# show ip route forward
...
10.46.0.0/16 via 10.91.19.1 dev eth0 proto zebra
...

Note: zebra가 EdgeOS RIB 데몬의 이름입니다.