Junos 듀얼 WAN IPsec VPN: 소스 경로를 올바른 게이트웨이에 맞추기
듀얼 WAN IPsec를 위한 Junos SRX 실습: 각 로컬 소스를 후보 게이트웨이와 짝지은 뒤, 어느 연결이 실제로 트래픽을 실어 날랐는지 증명합니다.
사이트마다 WAN 링크가 두 개면 이중화처럼 보이지만, 특정 흐름이 실제로 어느 주소 쌍을 썼는지 증명하려 들면 이야기가 달라집니다. SRX에서는 IKE 게이트웨이 하나가 외부 인터페이스 하나와 로컬 주소 하나를 담당하며, 원격 후보 목록이 로컬 소스를 두 개로 만들어 주지는 않습니다. 그래서 이 글은 설정이 아니라 쌍 행렬에서 시작합니다. Junos는 의도한 조합의 절반만 덮는 설계도 아무렇지 않게 commit하기 때문입니다. 제가 이걸 만난 건 SRX345s 두 대 구성이었는데, 백업 터널이 깨끗하게 올라왔는데도 되돌릴 때 세션을 끌어내렸습니다.
단계를 순서대로 밟습니다. 지원해야 할 쌍을 나열하고, 로컬 소스마다 게이트웨이를 하나 만들고, 어느 연결이 트래픽을 실었는지 확인한 다음에야 각 장애 유형이 무엇을 바꿔도 되는지 정합니다.
CLI를 만지기 전에 쌍을 지도로 그리기
A 사이트가 A1이나 A2에서 나갈 수 있고 B 사이트가 B1이나 B2에서 받을 수 있다면 바깥 주소 쌍은 네 개입니다. 대부분의 설계는 그중 두 개를 상시 쓰고 나머지 둘은 선택으로 둡니다. 행렬을 적고 각 행에 표시를 하십시오. 약속한 행마다 나중에 게이트웨이 하나, 터널 인터페이스 하나, 라우팅 결정 하나가 따라붙습니다.
| Local source | Remote candidate | Required? |
|---|---|---|
| A1, ISP1 address | B1 | steady state |
| A1, ISP1 address | B2 | decide explicitly |
| A2, ISP2 address | B1 | decide explicitly |
| A2, ISP2 address | B2 | backup path |
필요한 쌍마다 세 가지를 동시에 만족해야 합니다. 바로 그 주소들 사이에서 도달 가능한 underlay, 양 끝에서 피어 신원과 소스 주소를 상호 수용하는 것, 그리고 보호된 되돌아오는 경로입니다. 한 방향으로만 통하는 쌍도 터널은 보여 주고, 장애는 나중에 애플리케이션의 단방향 트래픽으로 드러납니다.
원격 사이트가 아니라 로컬 소스마다 게이트웨이 하나
원격 주소 목록은 게이트웨이에 속하고, 로컬 소스도 마찬가지입니다.IKE 게이트웨이 레퍼런스는 원격 주소, 외부 인터페이스, 로컬 주소, 데드 피어 감지를 각각 별도 설정으로 둡니다. 요점이 바로 이것입니다. 로컬 소스가 둘이면 st0 유닛 둘에 게이트웨이도 둘입니다. IKE 정책을 공유하는 것은 괜찮지만, 게이트웨이 하나만 두고 알아서 소스를 바꾸리라 기대하는 것은 아닙니다.
set security ike policy IKE-P1 mode main
set security ike gateway GW-A1 ike-policy IKE-P1
set security ike gateway GW-A1 address 198.51.100.20
set security ike gateway GW-A1 address 198.51.100.21
set security ike gateway GW-A1 external-interface ge-0/0/0
set security ike gateway GW-A1 local-address 203.0.113.10
set security ike gateway GW-A1 version v2-only
set security ike gateway GW-A2 ike-policy IKE-P1
set security ike gateway GW-A2 address 198.51.100.20
set security ike gateway GW-A2 external-interface ge-0/0/3
set security ike gateway GW-A2 local-address 192.0.2.10
set security ike gateway GW-A2 version v2-only그다음 터널을 붙이고 원격 프리픽스에 다음 홉을 두 개, 터널마다 하나씩 줍니다:
set interfaces st0 unit 1 family inet
set interfaces st0 unit 2 family inet
set security ipsec policy IPSEC-P1 perfect-forward-secrecy keys group14
set security ipsec vpn VPN-A1 bind-interface st0.1
set security ipsec vpn VPN-A1 ike gateway GW-A1 ipsec-policy IPSEC-P1
set security ipsec vpn VPN-A2 bind-interface st0.2
set security ipsec vpn VPN-A2 ike gateway GW-A2 ipsec-policy IPSEC-P1
set routing-options static route 10.20.0.0/16 qualified-next-hop st0.1 preference 10
set routing-options static route 10.20.0.0/16 qualified-next-hop st0.2 preference 20게이트웨이 하나가 address 형식의 문장을 두 개 가질 수 있는지는 릴리스와 그 장비가 어떤 IKE 프로세스를 돌리는지에 달려 있습니다. kmd 기반의 옛 Junos는 게이트웨이당 원격 주소를 하나만 받습니다. 새 빌드는 여러 후보를 다루지만 자체 제약이 붙고, 고가용성 클러스터는 이 지원이 좁아지는 흔한 지점입니다. 옛 섀시에서 이걸 복사하기 전에 정확한 빌드의 릴리스 노트를 확인하십시오.
어느 연결이 패킷을 실었는지 확인하기
SA 두 개와 터널 두 개만으로는 어느 쪽이 세션을 전달했는지 알 수 없습니다. 장비에 직접 물어보고 필드를 의도한 쌍과 맞춰 보십시오:
show security ike sa detail
show security ipsec sa detail
show security flow session destination-prefix 10.20.1.0/24
show interfaces st0.1 | match packets상세 출력은 연결마다 로컬과 원격 게이트웨이를 알려 주므로, 예상하지 못한 소스에서 협상된 터널을 찾는 가장 빠른 방법입니다. 그다음 트래픽을 흘리면서 st0.1과 st0.2의 유닛별 패킷 카운터를 보십시오. 아무것도 나르지 않는 터널도 자기 SA를 유지하고 요약 화면에서는 건강해 보입니다.
장애 유형마다 자기 탐지기를 주기
피어 생존, 로컬 업링크 상실, 보호 경로 철회, 애플리케이션 단절은 서로 다른 네 가지 사건입니다. DPD는 첫 번째에만 답하므로, 기본값을 두고 나머지까지 덮는다고 가정하는 대신 설명할 수 있는 간격과 임계값으로 설정하십시오:
set security ike gateway GW-A1 dead-peer-detection interval 10
set security ike gateway GW-A1 dead-peer-detection threshold 3
set security ipsec vpn VPN-A1 vpn-monitor source-interface st0.1
set security ipsec vpn VPN-A1 vpn-monitor destination-ip 10.20.0.1원격 서브넷 안의 목적지를 찔러 보는 터널 감시는 DPD가 보지 못하는 경우를 덮습니다. IKE는 살아 있고 게이트웨이도 응답하는데 보호 프리픽스에는 닿지 않는 상황입니다. 둘 중 어느 쪽에 우선권을 줄지 정하십시오. 둘이 동시에 뜨면 깔끔한 전환이 아니라 변경 폭풍이 됩니다.
먼 쪽 끝도 잊지 마십시오. 원격 사이트에 남아 있는 우선 경로는 이미 버린 터널을 계속 가리키고, 로컬 타이머로는 고칠 수 없습니다. 같은 우선순위 로직을 양쪽 피어에 게시하고, 복구된 링크가 트래픽을 자동으로 되가져오는지 아니면 수동으로 바꿔야 하는지 적어 두십시오.
한쪽은 건드리지 않고 다른 링크만 주소 바꾸기
ISP가 새 블록을 주면 한 번에 한 관계만 바꾸십시오. 해당 쌍의 양쪽 피어에서 address 또는 local-address를 갱신하고 commit한 뒤, 장비의 모든 SA를 지우는 대신 영향을 받은 연결만 인덱스로 지웁니다. 전체 삭제는 건강한 터널까지 끌고 가고 유지보수 창을 장애로 바꿉니다.
무엇이든 정리하기 전에 실패한 흐름 하나와 그 세션 상세를 증거로 남기고, 새 주소 쌍에 대해 위 점검을 다시 하십시오. 링크 복구는 라우팅 결정이므로, 옛 우선순위가 알아서 돌아온다고 가정하지 말고 되돌리기를 별도로 검증한 단계로 다루십시오.
짧은 체크리스트로 변경을 닫기
듀얼 WAN 터널 설계는 두 SA가 올라왔을 때가 아니라 모든 세션 뒤의 쌍을 말할 수 있을 때 끝납니다. 실제로 손댄 장비에서 아래 목록을 확인하십시오:
- 약속한 모든 쌍에는 게이트웨이, st0 유닛, 경로 항목이 있습니다.
- 모든 터널이 SA만 들고 있는 게 아니라 패킷을 나르는 것이 관찰되었습니다.
- 양 끝이 탐지 방식과 어느 쪽이 우선순위를 되돌리는지에 합의합니다.
- 각 쌍의 되돌아오는 경로가 가는 경로 옆에 적혀 있습니다.
어떤 행이 성립하지 않으면 다음 쌍을 더하기 전에 그 쌍을 고치십시오. 반쯤 동작하는 터널을 겹쳐 두면 카운터가 의미를 잃고 페일오버 동작을 예측할 수 없게 됩니다.