목차/10. Routing Options·Event Trigger·Monitor

10Routing Options·Event Trigger·MonitorRouting Options·Event Trigger·Monitor

개별 프로토콜(OSPF·BGP·RIP 등)을 다루는 장과 달리, 이 장은 라우팅 엔진 전체의 동작을 조정하는 옵션, 라우팅 이벤트에 자동으로 반응하는 트리거, 그리고 현재 라우팅 상태를 들여다보는 모니터링 도구 를 한데 모아 정리합니다. 세 가지 기능 모두 특정 프로토콜에 묶이지 않고 동적 라우팅 전반에 걸쳐 쓰이는 공통 손잡이 라고 보면 됩니다. 원문이 표와 단계 목록으로 나열한 내용을 빠짐없이 담되, 각 옵션이 무엇을 위한 것이고 언제 만지는지를 함께 풀어 둡니다.

Routing Options

Routing Options모든 동적 라우팅 프로토콜에 공통으로 적용되는 라우팅 옵션 의 집합입니다. 같은 목적지로 가는 경로를 여러 프로토콜이 알릴 때 어느 것을 고를지(protocol rank), 비용이 같은 경로 여러 개로 부하를 나눌지(ECMP), 커널 라우팅 테이블의 동작, 라우팅 데몬의 멀티스레딩·로깅 같은 항목을 여기서 다룹니다.

Gaia Portal에서 다루는 기본 동작

Gaia Portal에서 Routing Options를 만지는 기본 흐름은 다음과 같습니다.

  • 적용(Apply) — 왼쪽 트리에서 Advanced Routing > Routing Options 를 열고, 원하는 설정을 바꾼 뒤, 페이지 맨 위 Routing Options 섹션에서 Apply 를 누릅니다.
  • 변경 취소(Reload) — 아직 적용하지 않은 변경을 버리려면 같은 자리에서 Reload 를 누릅니다.
  • Routing Daemon 재시작 — 페이지 맨 아래로 내려가 Restart Routing Daemon 을 누릅니다.

라우팅 데몬의 로그 파일을 Portal에서 바로 보고 싶다면, Routing Options 페이지의 오른쪽 위 Monitoring 탭으로 가서 Trace File 에서 파일을 고르고, Number of lines 에 볼 줄 수(범위 5~100, 기본 40)를 입력한 뒤 Get Tail 을 누릅니다.

Equal Cost Path Splitting (ECMP)

목적지가 같고 비용(cost)도 같은 경로가 여러 개 있을 때, 그 경로들을 동시에 써서 트래픽을 나눠 보내는 것이 Equal Cost Path Splitting, 즉 ECMP입니다. 한 목적지로 가는 동등 비용 경로의 최대 개수 를 직접 지정할 수 있습니다.

몇 가지 동작 규칙을 알아 두어야 합니다.

  • 하나의 목적지에 next hop이 여러 개인 경로(멀티패스)를 쓸 수 있는 것은 OSPF·BGP·Static 라우트뿐 입니다.
  • next hop이 여러 개일 때 어느 것으로 포워딩할지 고르는 알고리즘은 Source/Destination 해시 입니다. 멀티패스 목적지로 가는 각 패킷의 출발지·목적지 IP 주소에 해시 함수를 돌려, 그 결과로 next hop을 결정합니다.

Gaia Portal에서 설정

  1. Advanced Routing > Routing Options 를 엽니다.
  2. Equal Cost Multipath 섹션에서:
    • Maximum Paths 에 동등 비용 경로 개수를 입력합니다(범위 1~8, 기본 8).
    • Path Selection Algorithm 에서 알고리즘을 고릅니다.
      • 2-tuple Hash — 출발지·목적지 해시 기반(기본값)
      • 5-tuple Hash — 출발지·목적지·출발지 포트·목적지 포트·프로토콜 해시 기반
  3. 맨 위 Routing Options 섹션에서 Apply 를 누릅니다.

Gaia Clish에서 설정

  1. 동등 비용 경로 개수를 설정합니다(범위 1~8, 기본 8).
   set max-path-splits {<1-8> | default}
   
  1. 경로 선택 알고리즘을 설정합니다.
   set router-options ecmp-nexthop-selection {2-tuple-hash | 5-tuple-hash}
   
  • 2-tuple-hash — 출발지·목적지 해시 기반(기본값)
    • 5-tuple-hash — 출발지·목적지·출발지 포트·목적지 포트·프로토콜 해시 기반
  • 구성을 저장합니다.
   save config
   
  1. 설정을 확인합니다.
    • 설정된 동등 비용 경로 개수 보기 (Gaia Clish):
     show configuration max-path-splits
     
  • 설정된 경로 선택 알고리즘 보기 (Expert mode):
     cat /proc/sys/net/ipv4/fib_multipath_hash_policy
     

반환값이 0이면 2-tuple Hash, 1이면 5-tuple Hash가 설정된 것입니다.

Kernel Options

Route Injection Mechanism (RIM) 은 Security Gateway가 동적 라우팅 프로토콜을 이용해 VPN 피어 Security Gateway의 암호화 도메인(encryption domain)을 내부 네트워크에 전파 하고, 그쪽으로 역방향 연결(back connection)을 시작할 수 있게 하는 기능입니다. Security Gateway가 VPN 터널을 맺으면, RIM은 그 게이트웨이의 로컬 라우팅 테이블에 VPN 피어의 암호화 도메인을 추가 합니다.

Gaia에서 RIM은 이 경로들을 커널에 직접 추가합니다. 그런데 이 커널 경로를 계속 유지하도록 Gaia에 명시적으로 설정 해 주어야 합니다. RIM 자체 설정은 R82 Site to Site VPN Administration Guide 를 참고하세요.

Gaia Portal에서 설정

RIM 경로를 커널에 유지하려면 Advanced Routing > Routing Options > Kernel Options 섹션에서 Kernel Routes 옵션을 선택 한 뒤 맨 위에서 Apply 를 누릅니다. 유지하지 않으려면 같은 Kernel Routes 옵션을 해제 하고 Apply 합니다.

Gaia Clish에서 설정

커널에 유지하려면:

set kernel-routes on
save config
show configuration kernel-routes

유지하지 않으려면:

set kernel-routes off
save config
show configuration kernel-routes

Protocol Rank (관리 거리)

Rank서로 다른 프로토콜이 같은 목적지로 가는 경로를 동시에 알릴 때 라우팅 시스템이 어느 것을 쓸지 정하는 값입니다. 각 경로마다 rank 번호가 가장 낮은 프로토콜의 경로 가 선택됩니다. rank는 임의로 부여된 값이며, 같은 목적지로 가는 여러 경로의 우선순위를 매기는 데 쓰입니다.

한 경로에는 rank가 하나만 연결됩니다. 비록 rank를 구성의 여러 곳에서 설정할 수 있더라도, 그 경로는 모든 설정 중 가장 구체적으로(most specific) 매칭되는 곳에서 rank를 가져옵니다. 라우팅 데몬이 커널 포워딩 테이블에 실제로 설치한 경로를 active route 라 부르며, 같은 경로를 둘 이상의 프로토콜이 제공하면 rank가 가장 낮은 쪽이 active route 가 됩니다.

여기서 중요한 구분이 있습니다. rank는 동적 IGP(Interior Gateway Protocol) 내부의 경로 선택을 제어하는 데에는 쓸 수 없습니다. IGP 내부 선택은 프로토콜이 자기 메트릭(metric)으로 자동 처리하기 때문입니다. rank는 그 대신 같은 EGP(Exterior Gateway Protocol)에서 서로 다른 피어나 AS로부터 학습한 경로 사이를 고를 때 쓰입니다.

또 일부 프로토콜 — BGPaggregate — 은 rank가 같은 경로 를 허용합니다. 이 경우 active route를 고르려면 별도의 동점 처리(tie breaker)가 동작하는데, BGP에서는 LocalPref, aggregate에서는 Weight 가 그 역할을 합니다.

기본 Protocol Rank

각 프로토콜에는 기본 rank가 부여되어 있습니다. rank 값의 범위는 0~255 이며, 숫자가 낮을수록 더 선호 되는 경로입니다.

경로 종류기본 Rank
Interface 경로0
IPv4 OSPFv2 경로10
IPv6 OSPFv3 경로10
Static 경로60
IPv4 RIP 경로100
IPv6 RIPng 경로100
Aggregate 경로130
IPv4 OSPF AS external 경로150
IPv6 OSPFv3 AS external 경로150
IPv4 BGP 경로170
IPv6 BGP 경로170
Kernel200

Gaia Portal에서 설정

  1. Advanced Routing > Routing Options 를 엽니다.
  2. Protocol Rank 섹션에서 해당 프로토콜의 rank를 입력합니다.
    • 기본 rank를 쓰려면 필드를 비워 둡니다.
    • 커널 경로의 rank는 Gaia Clish에서 설정합니다.
    • OSPF·OSPF3의 rank를 설정하려면 해당 OSPF Instance를 고른 뒤 현재 값을 클릭합니다.
  3. 맨 위 Routing Options 섹션에서 Apply 를 누릅니다.

Gaia Clish에서 설정

set protocol-rank protocol
      bgp ipv4-routes rank {<1-255> | default}
      bgp ipv6-routes rank {<1-255> | default}
      kernel rank {<1-255> | default}
      ospf [instance {<1-65535> | default}] rank {<1-255> | default}
      ospfase [instance {<1-65535> | default}] rank {<1-255> | default}
      ospf3 [instance {<1-65535> | default}] rank {<1-255> | default}
      ospf3ase [instance {<1-65535> | default}] rank {<1-255> | default}
      rip rank {<1-255> | default}
      ripng rank {<1-255> | default}
show protocol-rank
파라미터설명
bgp ipv4-routesIPv4 BGP 경로의 rank를 설정합니다.
bgp ipv6-routesIPv6 BGP 경로의 rank를 설정합니다.
kernel커널 경로의 rank를 설정합니다.
`ospf [instance {<1-65535> \default}]`(지정한 OSPF Instance의) IPv4 OSPFv2 경로 rank를 설정합니다.
`ospfase [instance {<1-65535> \default}]`(지정한 OSPF Instance의) IPv4 OSPFv2 External 경로 rank를 설정합니다.
`ospf3 [instance {<1-65535> \default}]`(지정한 OSPF Instance의) IPv6 OSPFv3 경로 rank를 설정합니다.
`ospf3ase [instance {<1-65535> \default}]`(지정한 OSPF Instance의) IPv6 OSPFv3 External 경로 rank를 설정합니다.
ripIPv4 RIP 경로의 rank를 설정합니다.
ripngIPv6 RIPng 경로의 rank를 설정합니다.
rank <1-255>지정한 프로토콜의 rank를 그 숫자로 설정합니다. 숫자가 낮을수록 더 선호 됩니다.
rank default지정한 프로토콜의 rank를 기본값으로 되돌립니다.

Auto Restore of Interface Routes

어떤 인터페이스의 경로가 다른 인터페이스를 통해 도달 가능해지는 순간, 라우터 커널에서 실수로 삭제 되는 경우가 있습니다. 이때 Gaia Clish의 show route 명령은 그 경로를 보여 주지만, Expert mode의 ip route 명령에는 보이지 않습니다. 예컨대 같은 경로가 OSPF와 BGP 양쪽으로 학습될 때 이런 일이 생길 수 있습니다.

이 옵션을 켜면 Gaia가 그 인터페이스 경로를 잃지 않도록 막아 줍니다. 기본적으로는 꺼져(disabled) 있습니다.

Gaia Portal에서 설정

Advanced Routing > Routing Options > Advanced Routing Options 섹션에서 Auto Restore of Iface Routes선택(켜기) 하거나 해제(끄기) 한 뒤 맨 위에서 Apply 를 누릅니다.

Gaia Clish에서 설정

켜기:

set router-options auto-restore-iface-routes on
save config
show router-options

끄기:

set router-options auto-restore-iface-routes off
save config
show router-options

확인할 때는 show router-options 출력의 Auto Restore Iface Routes 행을 봅니다.

Multithreading

라우팅 데몬(RouteD)을 멀티스레드 모드로 실행 하도록 설정할 수 있습니다. 이렇게 하면 트래픽 부하가 클 때 모니터링 작업의 응답성 이 좋아집니다.

Gaia Portal에서 설정

Advanced Routing > Routing Options > Advanced Routing Options 섹션에서 Multithreading선택 하거나 해제 한 뒤 맨 위에서 Apply 를 누릅니다.

Gaia Clish에서 설정

켜기:

set router-options multithreading on
save config
show router-options

끄기:

set router-options multithreading off
save config
show router-options

확인할 때는 show router-options 출력의 Multithreading 행을 봅니다.

Active-Active Mode for Routing Daemon

이 옵션은 Gaia의 VRRP Cluster 전용 으로 설계됐습니다. 켜면 라우팅 데몬이 마치 단일 Security Gateway에서 돌아가는 것처럼 동작합니다. 즉 라우팅 업데이트에 VRRP Cluster Member의 물리 IP 주소 를 사용하고, ClusterXL과 Firewall의 상태는 모두 무시합니다.

이 모드에서 지원되는 기능은 다음뿐입니다.

  • 라우팅(IPv4·IPv6 모두) — Static Routes, OSPF, BGP
  • 보안 — Firewall Software Blade. 단 대칭 연결(symmetric connection)에 한해서만 지원됩니다(같은 VRRP Cluster Member가 한 연결 전체를 처리하는 경우).

Gaia Clish에서 설정

켜기:

set router-options active-active-mode on
save config
show router-options

끄기:

set router-options active-active-mode off
save config
show router-options

확인할 때는 show router-options 출력의 Active-Active Mode 행을 봅니다.

Routing Process Message Logging Options

RouteD 데몬이 남기는 로그 메시지(예: OSPF·BGP 오류)를 어느 로그 파일에 쓸지 정할 수 있습니다.

로그 파일설명
/var/log/routed_messagesRouteD 로그 메시지만 담는 전용 파일. Gaia R80 이상에서는 기본적으로 이 파일 에 씁니다.
/var/log/messages여러 데몬과 운영체제의 로그가 섞여 들어가는 파일. Gaia R77.30 이하에서는 기본적으로 이 파일에 썼습니다.

Gaia Portal에서 설정

  1. Advanced Routing > Routing Options 를 엽니다.
  2. Routing Process Message Logging Options 섹션에서 Log Routed Separately 를 선택합니다.
  3. Maximum File Size 에 각 로그 파일의 크기(MB)를 입력합니다. 기본 1 MB이며, 활성 파일 /var/log/routed_messages 가 이 크기에 도달하면 Gaia OS가 회전(rotate) 시키고 새 파일을 만듭니다.
  4. Maximum Number of Files 에 보관할 로그 파일의 최대 개수를 입력합니다. 기본은 10개 (/var/log/routed_messages, .0, .1, … .9)입니다. 개수가 한계에 닿으면 가장 오래된 파일을 지우고 나머지를 회전시킵니다. 파일 이름의 숫자 접미사가 클수록 오래된 파일입니다.
  5. Apply 를 누릅니다.

Gaia Clish에서 설정

  1. Gaia 명령줄에 접속해 Gaia Clish에 로그인합니다. Scalable Platform이면 gclish 를 입력해 gClish로 들어갑니다.
  2. RouteD 메시지를 전용 로그 파일에 기록하도록 켭니다.
   set routedsyslog on
   
  1. 각 로그 파일의 크기(MB)를 설정합니다(기본 1 MB).
   set routedsyslog size <Number of MB between 1 and 2047>
   
  1. 보관할 로그 파일의 최대 개수를 설정합니다(기본 10개).
   set routedsyslog maxnum <Number of Files between 1 and 4294967295>
   
  1. 구성을 저장합니다.
   save config
   

설정 확인

Gaia Clish 또는 Expert mode에서 확인합니다.

  • Gaia Clish 에서:
  show configuration routedsyslog
  

maxnum·size 에 기본값을 썼다면 출력은 set routedsyslog on 한 줄이고, 커스텀 값을 썼다면 on·maxnum·size 세 줄이 나옵니다. - Expert mode 에서:

  grep routedsyslog /config/active
  

기본값이면 routed:instance:default:routedsyslog t, 커스텀 값이면 여기에 ...:size <값>...:files <값> 행이 덧붙습니다.

RFC 1403 Compatibility

OSPFv2·OSPFv3 인스턴스를 RFC 1403과 호환되는 모드 로 돌리도록 Gaia를 설정할 수 있습니다.

Gaia Clish에서 설정

켜기:

set router-options rfc1403compatibility on
save config
show router-options

끄기:

set router-options rfc1403compatibility off
save config
show router-options

확인할 때는 show router-options 출력의 RFC 1403 Compatibility 행을 봅니다.

Trace Options

라우팅 시스템은 오류와 이벤트에 대한 정보를 선택적으로 로그 로 남길 수 있습니다. 로깅은 프로토콜별로 또는 전역(global)으로 설정합니다. 다만 로깅은 성능을 떨어뜨릴 수 있어 평상시에는 켜지 않는 것이 보통입니다. 로그 메시지는 /var/log/routed.log.* 파일에 저장됩니다.

상세한 예제 절차는 다음 SK를 참고하세요.

  • sk84520 — Gaia에서 OSPF·RouteD 데몬 디버그하는 법
  • sk101399 — Gaia에서 BGP·RouteD 데몬 디버그하는 법
  • sk92598 — Gaia에서 PIM·Multicast 디버그하는 법

Gaia Portal에서 설정

  1. Advanced Routing > Routing Options 를 엽니다.
  2. Configuration 탭을 클릭합니다.
  3. Trace Options 섹션에서 설정합니다.
    • Maximum Trace File Size — 1~2047 MB 사이 값(기본 1 MB)을 입력합니다.

trace 로그를 모니터링하려면 Routing Options 페이지 오른쪽 위의 Monitoring 탭으로 가서 Trace File/var/log/routed.log 를 고르고, Number of lines 에 줄 수(범위 5~100, 기본 40)를 입력한 뒤 Get Tail 을 누릅니다.

Gaia Clish에서 설정

  1. 활성 로그 파일의 크기(MB)를 설정합니다.
   set tracefile size {<1-2047> | default}
   
  1. 보관할 로그 파일의 최대 개수를 설정합니다.
   set tracefile maxnum {<1-4294967295> | default}
   
  1. 원하는 trace 옵션을 설정합니다.
   set trace
         bfd <Trace Option> {off | on}
         bgp <Trace Option> {off | on}
         bootp <Trace Option> {off | on}
         cluster <Trace Option> {off | on}
         dhcp6relay <Trace Option> {off | on}
         global <Trace Option> {off | on}
         icmp <Trace Option> {off | on}
         igmp <Trace Option> {off | on}
         ip-reachability-detection <Trace Option> {off | on}
         iphelper <Trace Option> {off | on}
         ipsec-routing <Trace Option> {off | on}
         isis <Trace Option> {off | on}
         kernel <Trace Option> {off | on}
         mfc <Trace Option> {off | on}
         mfc-static <Trace Option> {off | on}
         ospf <Trace Option> {off | on}
         ospf3 <Trace Option> {off | on}
         pbr <Trace Option> {off | on}
         pim <Trace Option> {off | on}
         rip <Trace Option> {off | on}
         ripng <Trace Option> {off | on}
         router-discovery <Trace Option> {off | on}
         router-discovery6 <Trace Option> {off | on}
         routing-event-trigger <Trace Option> {off | on}
         static-route <Trace Option> {off | on}
         vrrp <Trace Option> {off | on}
         vrrp6 <Trace Option> {off | on}
   
   save config
   
파라미터설명
`size {<1-2047> \default}`/var/log/routed.log 파일의 크기(MB). 활성 파일이 이 크기에 닿으면 회전시켜 /var/log/routed.log.<N> 으로 이름을 바꾸고 새 파일을 만듭니다. 기본 1 MB.
`maxnum {<1-4294967295> \default}`보관할 /var/log/routed.log.* 파일의 총 개수. 한계에 닿으면 가장 오래된 파일을 지웁니다. 기본 10.
`<Trace Option> {off \on}`지정한 카테고리에서 특정 trace 옵션을 끄거나(off) 켭니다(on). 그 카테고리의 모든 옵션을 설정하려면 all 을 입력합니다.
`global <Trace Option> {off \on}`모든 카테고리 에서 특정 trace 옵션을 끄거나 켭니다. 모든 카테고리의 모든 옵션을 설정하려면 all 을 입력합니다.

Trace 옵션 종류

각 trace 옵션이 무엇을 추적하는지는 다음과 같습니다.

Trace 옵션추적 대상
ack해당 카테고리의 Link State acknowledgment 패킷
addressIP 주소 메시지
adv정책 블록(policy block)의 할당·해제
advertise"Advertise" 메시지
alertsalert 콜백 이벤트
all해당 카테고리의 모든 라우팅 이벤트
assert"Assert" 메시지
auth인증(authentication) 메시지
bootstrapbootstrap 메시지
cache캐시 유지 로그(고아 엔트리·정상 엔트리의 추가·삭제, 캐시 상태 aging·refresh)
cluster클러스터 관련 이벤트
crpCandidate Rendezvous Point 광고
dddatabase description 패킷
drdesignated router 패킷
errorICMP "Error" 패킷(time exceeded, parameter problem, unreachable, source quench)
general"normal"·"route" 옵션 관련 이벤트
graft"Graft"·"Graft Acknowledgment" 패킷
group멀티캐스트 그룹 "Add"·"Delete"·"Refresh"·"Accelerated Leave" 이벤트
hello"Hello" 패킷
iflist인터페이스 목록 스캔
infoICMP "Informational" 패킷(mask·info·echo·time stamp request/response)
interface인터페이스별 메시지
join"Join"/"Prune" 메시지
keepalive이 피어로 가는 BGP keepalive 메시지(피어 도달성 확인용)
leave"Leave Group" 메시지
lsaLink State Advertisement 패킷
mcastdist멀티캐스트 분배·register 캡슐화·역캡슐화 메시지
mfcMulticast Forwarding Cache로 드나드는 호출
mrt멀티캐스트 라우팅 테이블 이벤트
mtrace멀티캐스트 traceroute 이벤트
normal모든 정상 프로토콜 동작(비정상 동작은 항상 추적됨)
open이 피어로 가는 BGP "Open" 메시지(피어 연결 수립용)
packets해당 카테고리의 모든 패킷
parse어휘 분석기(lexical analyzer)·파서 이벤트
policyimported·exported 경로에 프로토콜·사용자 정책을 적용하는 동작
process프로세스 안에서 도는 Routing Event Trigger 결정 프로그램
query멀티캐스트 그룹 멤버십 "Query" 패킷(general·group-specific)
refreshPIM 상태 "Refresh" 메시지
register"Register"·"Register-Stop" 패킷
remnants라우팅 데몬이 시작될 때의 커널 경로
reply모든 "Reply" 패킷
report멀티캐스트 그룹 멤버십 "Report" 패킷
request모든 "Request" 패킷
resolveresolve 요청
response모든 "Response" 패킷
route라우팅 테이블 변경
router-discovery"Router Discovery" 패킷
routes경로에 대한 작업 — 추가·삭제·변경
rpRendezvous Point 관련 이벤트(RP "set-specific"·"bootstrap-specific" 포함)
rulerule 메시지
spfshortest-path-first(SPF) 계산 이벤트
state프로토콜 상태 머신(state machine) 전이
tabletable 메시지
task시스템 인터페이스·처리 이벤트
timertimer 사용 이벤트
traptrap 패킷
updateOSPF는 Link State update 패킷, BGP는 이 피어로 가는 "Update" 메시지(네트워크 도달성 정보 전달용)
wrongif커널 멀티캐스트의 잘못된 수신 물리 인터페이스·register 위반 알림

Routing Event Triggers

Routing Event Trigger감시하던 라우팅 상태가 무너지면 정해진 동작을 자동으로 실행 하게 해 주는 기능입니다. 세 가지를 설정합니다.

  1. 감시 대상(Monitored items) — BGP neighborship, IP Reachability Detection 상태.
  2. 수행할 동작(Actions) — 감시 대상의 요구 상태가 깨졌을 때 할 일(BGP neighborship 끊기, 클러스터 상태 변경 등).
  3. 결정(Decisions) — 언제 그 동작을 수행할지.

인스턴스 구성 요소

하나의 Routing Event Trigger 인스턴스 구성은 다음으로 이루어집니다.

  1. 이름instance 파라미터로 지정.
  2. 0개 이상의 감시 대상monitor 하위 명령으로 지정. 감시 대상의 상태를 결정 프로그램(trigger)이 처리해, 동작을 수행할지 말지를 정합니다.
  3. 0개 이상의 동작do 하위 명령으로 지정. 결정 프로그램이 하기로 결정했을 때 수행합니다.
  4. 결정 프로그램trigger 하위 명령으로 지정. 언제 동작을 수행할지를 판단합니다.

Routing Event Trigger 인스턴스를 구성하는 구문:

set routing-event-trigger instance <Name of Instance>
      do
            fail-bgp-peer <BGP Peer> {on | off}
            fail-clusterxl-member {local | <IPv4 address>}
                  hold-down {on | off}
            {on | off}
      monitor
            bgp-peer-established <IPv4 or IPv6 of BGP Peer> {on | off}
            ip-reachability-detection <IPv4 or IPv6 Address> {on | off}
      off
      trigger
            /usr/libexec/routing_evt/routing_evt_all
            /usr/libexec/routing_evt/routing_evt_any
            /usr/libexec/routing_evt/routing_evt_maj
            /usr/libexec/routing_evt/routing_evt_never
      hold-down reset

Routing Event Trigger 이력을 보는 구문:

show routing-event-trigger
      instance <Name of Instance> [detailed-history]
      instances [detailed-history]

파라미터

파라미터설명
instance <Name of Instance>Routing Event Trigger 인스턴스의 이름. 길이는 1~16자 이며, 소문자(a-z)·숫자(0-9)·마이너스(-)·밑줄(_)·마침표(.) 만 쓸 수 있습니다.
`do fail-bgp-peer <BGP Peer> {on \off}`BGP 피어와의 neighborship을 강제로 실패(fail) 시키는 동작(원래 "Established"였더라도). on 은 동작을 인스턴스에 추가, off 는 제거합니다.
`do fail-clusterxl-member {local \<IPv4 address>} {on \off}`ClusterXL 상태를 강제로 "Down"으로 바꾸는 동작. local 은 이 Cluster Member에서, <IPv4 address> 는 해당 IP의 피어 Cluster Member에서 상태를 바꿉니다(Cluster Member 객체의 IP 사용). on/off 로 추가·제거합니다.
`do ... hold-down {on \off}`트리거를 유발한 조건이 사라진 뒤에도 동작을 계속 유지 합니다. 범위 off·on, 기본 off.
`monitor bgp-peer-established <IPv4 or IPv6 of BGP Peer> {on \off}`단일 BGP 피어와의 BGP 상태를 감시합니다. neighborship의 "Established" 상태 변화에 반응합니다.
`monitor ip-reachability-detection <IPv4 or IPv6 Address> {on \off}`지정한 원격 IP 주소에 대한 "IP Reachability Detection"(BFD 또는 ping) 상태를 감시합니다. "reachable" 상태 변화에 반응합니다.
off이 Routing Event Trigger 인스턴스를 제거 합니다.
trigger <Trigger>이 인스턴스의 결정 프로그램 을 지정합니다(아래 표).
hold-down reset트리거된 동작의 "hold down" 상태를 취소 합니다.

fail-clusterxl-member 동작 보충 — Cluster Member의 클러스터 상태가 "Down"으로 바뀌면 클러스터 페일오버가 일어납니다. High Availability 모드에서 이 멤버가 Active였거나, Load Sharing Unicast 모드에서 Pivot이었던 경우입니다. 트리거 조건이 사라지면 클러스터 객체의 ClusterXL and VRRP 페이지 설정에 따라 fallback이 일어납니다. High Availability 모드에서는 Upon cluster member recovery 설정에 따라, Load Sharing Unicast 모드에서는 Cluster Members 페이지의 멤버 우선순위에 따라 동작합니다.

monitor 조건이 "true"가 되는 경우 — 두 monitor 모두 다음 중 하나라도 일어나면 조건이 "true"가 됩니다.

  • bgp-peer-established — BGP 피어와의 neighborship이 "Established"에 도달했을 때, 동적 라우팅 시작 이후 한 번도 "Established"에 도달한 적 없을 때, 또는 ClusterXL 페일오버가 일어났을 때.
  • ip-reachability-detection — 원격 IP가 reachable이 됐을 때, Gaia 시작 이후 한 번도 reachable인 적 없을 때, 또는 ClusterXL 페일오버가 일어났을 때. (IP Reachability Detection 자체는 별도 절을 참고.)

결정 프로그램(trigger) 종류

trigger 는 이 인스턴스의 결정 프로그램으로, 설정된 동작을 수행할지 말지를 판단합니다.

결정 프로그램동작 조건
/usr/libexec/routing_evt/routing_evt_all모든 감시 대상이 실패하면 동작 수행
/usr/libexec/routing_evt/routing_evt_any감시 대상 중 하나라도 실패하면 동작 수행
/usr/libexec/routing_evt/routing_evt_maj감시 대상의 과반(majority) 이 실패하면 동작 수행
/usr/libexec/routing_evt/routing_evt_never동작을 수행하지 않음

Gaia Portal에서 모니터링

  1. 왼쪽 트리의 Advanced Routing 섹션에서 Routing Event Trigger 를 클릭합니다.
  2. 오른쪽 위 Monitoring 을 클릭합니다.
  3. Information 섹션에서 보고 싶은 정보를 고릅니다 — All data, Monitored, Actions, Trigger runs.

Routing Monitor

Routing Monitor현재 라우팅 상태를 들여다보는 도구입니다. 라우팅 테이블, 각 프로토콜의 활성·비활성 경로를 확인해 동적 라우팅이 의도대로 도는지 점검하고, 문제가 생기면 진단의 출발점으로 삼습니다.

Gaia Portal에서 경로 보기

Gaia Portal에서는 OSPF·BGP·RIP 프로토콜에 대해 활성(active)·비활성(inactive)·전체(둘 다) 경로 정보를 볼 수 있습니다.

  1. 왼쪽 트리에서 Advanced Routing > Routing Monitor 를 클릭합니다.
  2. (선택) Filter Protocols 열에서 보고 싶은 프로토콜을 고릅니다(여러 개는 Shift 누른 채 클릭).

Gaia Clish에서 모니터링

Gaia Clish에서는 각 영역마다 명령어를 입력한 뒤 [Esc][Esc] 를 눌러 쓸 수 있는 show 명령 전체를 펼쳐 볼 수 있습니다.

  • 경로(Routes) 에 대한 show 명령 보기:
  show route[Esc][Esc]
  
  • Routing Daemon 에 대한 show 명령 보기:
  show routed[Esc][Esc]
  
  • Multicast Forwarding Cache 에 대한 show 명령 보기:
  show mfc[Esc][Esc]