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에서 설정
- Advanced Routing > Routing Options 를 엽니다.
- Equal Cost Multipath 섹션에서:
- Maximum Paths 에 동등 비용 경로 개수를 입력합니다(범위 1~8, 기본 8).
- Path Selection Algorithm 에서 알고리즘을 고릅니다.
- 2-tuple Hash — 출발지·목적지 해시 기반(기본값)
- 5-tuple Hash — 출발지·목적지·출발지 포트·목적지 포트·프로토콜 해시 기반
- 맨 위 Routing Options 섹션에서 Apply 를 누릅니다.
Gaia Clish에서 설정
- 동등 비용 경로 개수를 설정합니다(범위 1~8, 기본 8).
set max-path-splits {<1-8> | default}
- 경로 선택 알고리즘을 설정합니다.
set router-options ecmp-nexthop-selection {2-tuple-hash | 5-tuple-hash}
- 2-tuple-hash — 출발지·목적지 해시 기반(기본값)
- 5-tuple-hash — 출발지·목적지·출발지 포트·목적지 포트·프로토콜 해시 기반
- 구성을 저장합니다.
save config
- 설정을 확인합니다.
- 설정된 동등 비용 경로 개수 보기 (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-routesProtocol 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로부터 학습한 경로 사이를 고를 때 쓰입니다.
또 일부 프로토콜 — BGP 와 aggregate — 은 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 |
| Kernel | 200 |
Gaia Portal에서 설정
- Advanced Routing > Routing Options 를 엽니다.
- Protocol Rank 섹션에서 해당 프로토콜의 rank를 입력합니다.
- 기본 rank를 쓰려면 필드를 비워 둡니다.
- 커널 경로의 rank는 Gaia Clish에서 설정합니다.
- OSPF·OSPF3의 rank를 설정하려면 해당 OSPF Instance를 고른 뒤 현재 값을 클릭합니다.
- 맨 위 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-routes | IPv4 BGP 경로의 rank를 설정합니다. | |
bgp ipv6-routes | IPv6 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를 설정합니다. |
rip | IPv4 RIP 경로의 rank를 설정합니다. | |
ripng | IPv6 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_messages | RouteD 로그 메시지만 담는 전용 파일. Gaia R80 이상에서는 기본적으로 이 파일 에 씁니다. |
/var/log/messages | 여러 데몬과 운영체제의 로그가 섞여 들어가는 파일. Gaia R77.30 이하에서는 기본적으로 이 파일에 썼습니다. |
Gaia Portal에서 설정
- Advanced Routing > Routing Options 를 엽니다.
- Routing Process Message Logging Options 섹션에서 Log Routed Separately 를 선택합니다.
- Maximum File Size 에 각 로그 파일의 크기(MB)를 입력합니다. 기본 1 MB이며, 활성 파일
/var/log/routed_messages가 이 크기에 도달하면 Gaia OS가 회전(rotate) 시키고 새 파일을 만듭니다. - Maximum Number of Files 에 보관할 로그 파일의 최대 개수를 입력합니다. 기본은 10개 (
/var/log/routed_messages,.0,.1, ….9)입니다. 개수가 한계에 닿으면 가장 오래된 파일을 지우고 나머지를 회전시킵니다. 파일 이름의 숫자 접미사가 클수록 오래된 파일입니다. - Apply 를 누릅니다.
Gaia Clish에서 설정
- Gaia 명령줄에 접속해 Gaia Clish에 로그인합니다. Scalable Platform이면
gclish를 입력해 gClish로 들어갑니다. - RouteD 메시지를 전용 로그 파일에 기록하도록 켭니다.
set routedsyslog on
- 각 로그 파일의 크기(MB)를 설정합니다(기본 1 MB).
set routedsyslog size <Number of MB between 1 and 2047>
- 보관할 로그 파일의 최대 개수를 설정합니다(기본 10개).
set routedsyslog maxnum <Number of Files between 1 and 4294967295>
- 구성을 저장합니다.
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에서 설정
- Advanced Routing > Routing Options 를 엽니다.
- Configuration 탭을 클릭합니다.
- 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에서 설정
- 활성 로그 파일의 크기(MB)를 설정합니다.
set tracefile size {<1-2047> | default}
- 보관할 로그 파일의 최대 개수를 설정합니다.
set tracefile maxnum {<1-4294967295> | default}
- 원하는 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 패킷 |
address | IP 주소 메시지 |
adv | 정책 블록(policy block)의 할당·해제 |
advertise | "Advertise" 메시지 |
alerts | alert 콜백 이벤트 |
all | 해당 카테고리의 모든 라우팅 이벤트 |
assert | "Assert" 메시지 |
auth | 인증(authentication) 메시지 |
bootstrap | bootstrap 메시지 |
cache | 캐시 유지 로그(고아 엔트리·정상 엔트리의 추가·삭제, 캐시 상태 aging·refresh) |
cluster | 클러스터 관련 이벤트 |
crp | Candidate Rendezvous Point 광고 |
dd | database description 패킷 |
dr | designated router 패킷 |
error | ICMP "Error" 패킷(time exceeded, parameter problem, unreachable, source quench) |
general | "normal"·"route" 옵션 관련 이벤트 |
graft | "Graft"·"Graft Acknowledgment" 패킷 |
group | 멀티캐스트 그룹 "Add"·"Delete"·"Refresh"·"Accelerated Leave" 이벤트 |
hello | "Hello" 패킷 |
iflist | 인터페이스 목록 스캔 |
info | ICMP "Informational" 패킷(mask·info·echo·time stamp request/response) |
interface | 인터페이스별 메시지 |
join | "Join"/"Prune" 메시지 |
keepalive | 이 피어로 가는 BGP keepalive 메시지(피어 도달성 확인용) |
leave | "Leave Group" 메시지 |
lsa | Link State Advertisement 패킷 |
mcastdist | 멀티캐스트 분배·register 캡슐화·역캡슐화 메시지 |
mfc | Multicast Forwarding Cache로 드나드는 호출 |
mrt | 멀티캐스트 라우팅 테이블 이벤트 |
mtrace | 멀티캐스트 traceroute 이벤트 |
normal | 모든 정상 프로토콜 동작(비정상 동작은 항상 추적됨) |
open | 이 피어로 가는 BGP "Open" 메시지(피어 연결 수립용) |
packets | 해당 카테고리의 모든 패킷 |
parse | 어휘 분석기(lexical analyzer)·파서 이벤트 |
policy | imported·exported 경로에 프로토콜·사용자 정책을 적용하는 동작 |
process | 프로세스 안에서 도는 Routing Event Trigger 결정 프로그램 |
query | 멀티캐스트 그룹 멤버십 "Query" 패킷(general·group-specific) |
refresh | PIM 상태 "Refresh" 메시지 |
register | "Register"·"Register-Stop" 패킷 |
remnants | 라우팅 데몬이 시작될 때의 커널 경로 |
reply | 모든 "Reply" 패킷 |
report | 멀티캐스트 그룹 멤버십 "Report" 패킷 |
request | 모든 "Request" 패킷 |
resolve | resolve 요청 |
response | 모든 "Response" 패킷 |
route | 라우팅 테이블 변경 |
router-discovery | "Router Discovery" 패킷 |
routes | 경로에 대한 작업 — 추가·삭제·변경 |
rp | Rendezvous Point 관련 이벤트(RP "set-specific"·"bootstrap-specific" 포함) |
rule | rule 메시지 |
spf | shortest-path-first(SPF) 계산 이벤트 |
state | 프로토콜 상태 머신(state machine) 전이 |
table | table 메시지 |
task | 시스템 인터페이스·처리 이벤트 |
timer | timer 사용 이벤트 |
trap | trap 패킷 |
update | OSPF는 Link State update 패킷, BGP는 이 피어로 가는 "Update" 메시지(네트워크 도달성 정보 전달용) |
wrongif | 커널 멀티캐스트의 잘못된 수신 물리 인터페이스·register 위반 알림 |
Routing Event Triggers
Routing Event Trigger 는 감시하던 라우팅 상태가 무너지면 정해진 동작을 자동으로 실행 하게 해 주는 기능입니다. 세 가지를 설정합니다.
- 감시 대상(Monitored items) — BGP neighborship, IP Reachability Detection 상태.
- 수행할 동작(Actions) — 감시 대상의 요구 상태가 깨졌을 때 할 일(BGP neighborship 끊기, 클러스터 상태 변경 등).
- 결정(Decisions) — 언제 그 동작을 수행할지.
인스턴스 구성 요소
하나의 Routing Event Trigger 인스턴스 구성은 다음으로 이루어집니다.
- 이름 —
instance파라미터로 지정. - 0개 이상의 감시 대상 —
monitor하위 명령으로 지정. 감시 대상의 상태를 결정 프로그램(trigger)이 처리해, 동작을 수행할지 말지를 정합니다. - 0개 이상의 동작 —
do하위 명령으로 지정. 결정 프로그램이 하기로 결정했을 때 수행합니다. - 결정 프로그램 —
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 resetRouting 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에서 모니터링
- 왼쪽 트리의 Advanced Routing 섹션에서 Routing Event Trigger 를 클릭합니다.
- 오른쪽 위 Monitoring 을 클릭합니다.
- Information 섹션에서 보고 싶은 정보를 고릅니다 — All data, Monitored, Actions, Trigger runs.
Routing Monitor
Routing Monitor 는 현재 라우팅 상태를 들여다보는 도구입니다. 라우팅 테이블, 각 프로토콜의 활성·비활성 경로를 확인해 동적 라우팅이 의도대로 도는지 점검하고, 문제가 생기면 진단의 출발점으로 삼습니다.
Gaia Portal에서 경로 보기
Gaia Portal에서는 OSPF·BGP·RIP 프로토콜에 대해 활성(active)·비활성(inactive)·전체(둘 다) 경로 정보를 볼 수 있습니다.
- 왼쪽 트리에서 Advanced Routing > Routing Monitor 를 클릭합니다.
- (선택) 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]