목차/03. VSX 아키텍처와 핵심 개념

03VSX 아키텍처와 핵심 개념VSX Architecture and Concepts

이 챕터가 VSX의 뼈대입니다. VSX Gateway가 무엇을 하는 호스트인지, 그 안의 가상 장치들은 어떤 종류가 있는지, 패킷은 어떻게 흐르는지를 한자리에서 정리합니다. 뒤의 모든 챕터가 여기서 나온 개념 위에 쌓이므로, 다른 건 몰라도 이 챕터만큼은 천천히 읽어 두는 편이 좋습니다.

VSX Gateway — 가상 네트워크를 얹는 물리 호스트

VSX Gateway는 물리 장비 한 대입니다. 이 위에 Security Gateway·라우터·스위치 같은 물리 장비의 기능을 그대로 흉내 내는 가상 장치(Virtual Device)들을 올려 가상 네트워크를 구성합니다. VSX Gateway 자신이 직접 맡는 일은 두 가지인데, 하나는 관리 서버와 통신하며 모든 가상 장치를 배포하고 설정하고 관리하는 것이고, 다른 하나는 클러스터로 묶였을 때 High Availability와 Load Sharing을 위해 멤버 간 상태를 동기화하는 것입니다.

한 가지 용어상의 주의가 있습니다. Maestro나 Scalable Chassis 환경에서는 "VSX Gateway"라는 말이 VSX 모드로 동작하는 Security Group을 가리키며, 이 경우 일부 VSX 기능은 제한적이거나 아예 지원되지 않습니다.

관리 서버는 어떻게 붙는가

관리 서버는 VSX Gateway에 연결해 가상 장치들을 프로비저닝하고 설정하는데, 연결 방식은 로컬과 원격 두 가지입니다. 로컬 관리 연결은 관리 서버가 전용 관리 인터페이스(DMI)를 통해 VSX Gateway에 직접 붙는 방식으로, 이때 관리 인터페이스의 IP는 사설이든 공인이든 상관없습니다.

① 네트워크 1 ② 네트워크 2 ③ 네트워크 3 ④ 네트워크 4 ⑤ 스위치 ⑥ VSX Gateway ⑦ 라우터 ⑧ 인터넷 ⑨ 관리 서버 ⑩ SmartConsole
① 네트워크 1 ② 네트워크 2 ③ 네트워크 3 ④ 네트워크 4 ⑤ 스위치 ⑥ VSX Gateway ⑦ 라우터 ⑧ 인터넷 ⑨ 관리 서버 ⑩ SmartConsole

원격 관리 연결은 라우터를 거쳐 내부망이나 외부망을 통해 관리 인터페이스에 도달하는 방식인데, 이렇게 하면 관리 트래픽이 일반 트래픽과 분리되는 이점이 있습니다. 다만 인터넷을 통해 들어오는 경우라면 라우팅 가능한 공인 IP를 배정해야 합니다.

① SmartConsole ② 관리 서버 ③ 관리 트래픽 ④ 인터넷 ⑤ 라우터 ⑥ 전용 관리 인터페이스(eth0) ⑦ 외부 인터페이스 ⑧ VSX Gateway ⑨ Virtual Switch ⑩ Warp Link ⑪ Virtual System 1 ⑫ Virtual System 2 ⑬ 스위치 ⑭ 네트워크 1 ⑮ 네트워크 2
① SmartConsole ② 관리 서버 ③ 관리 트래픽 ④ 인터넷 ⑤ 라우터 ⑥ 전용 관리 인터페이스(eth0) ⑦ 외부 인터페이스 ⑧ VSX Gateway ⑨ Virtual Switch ⑩ Warp Link ⑪ Virtual System 1 ⑫ Virtual System 2 ⑬ 스위치 ⑭ 네트워크 1 ⑮ 네트워크 2

여기에는 반드시 알아 둘 제약이 몇 가지 있습니다. 우선 관리 서버나 VSX Gateway가 NAT 뒤에 있으면 관리가 지원되지 않습니다. 또한 관리 트래픽이 같은 게이트웨이 위의 어떤 VS를 통과해서는 안 되며, 관리 서버와 직접 통신할 수 있는 것은 오직 VS0뿐입니다. 그리고 R81부터는 비전용 관리 인터페이스(Non-DMI, 공유 인터페이스) 설정이 폐기되어 더 이상 지원되지 않으니, 관리에는 전용 인터페이스인 DMI를 쓰는 것이 정석입니다. 관리 트래픽을 운영 트래픽과 분리하면 성능에도 유리한데, 다만 VLAN 인터페이스가 설정된 물리 인터페이스로는 DMI 관리가 지원되지 않는다는 점만 기억하면 됩니다.

가상 장치 세 가지 — VS, VR, VSW

VSX의 주인공은 세 가지 가상 장치입니다. 이 셋의 차이만 또렷이 잡으면 VSX의 절반은 이해한 셈입니다.

첫째는 Virtual System(VS), 곧 가상 방화벽입니다. 방화벽과 VPN 기능을 다 갖춘 가상 보안·라우팅 도메인으로, 한 VSX Gateway 위에서 여러 VS가 동시에, 그리고 저마다 완전히 독립적으로 돕니다.

여기서 각 VS가 모든 것을 자기 것으로 따로 갖는다는 점이 핵심입니다. 자기만의 Software Blade와 인터페이스와 IP를 갖는 것은 물론, 라우팅 테이블과 ARP 테이블과 동적 라우팅 설정까지 따로 가진다는 뜻입니다. 더 나아가 활성 연결이나 IPsec 터널 정보를 담는 상태 테이블도, 관리 서버에서 받아 디스크와 커널에 저장하는 보안·VPN 정책(INSPECT 코드 포함)도, IPS 설정이나 TCP/UDP 타임아웃 같은 설정값도, 심지어 로그까지도 모두 VS마다 별개입니다. 그래서 어떤 VS는 L3 모드로, 다른 VS는 L2 모드로 같은 게이트웨이 위에서 섞여 공존할 수도 있습니다.

둘째는 Virtual Router(VR), L3 가상 라우터입니다. VSX Gateway 안에서 물리 라우터 역할을 하는 독립 라우팅 도메인으로, 여러 VS가 인터넷으로 가는 회선처럼 하나의 공유 인터페이스를 함께 써야 할 때, 또는 VS끼리 트래픽을 라우팅해야 할 때 씁니다.

VR은 출발지나 목적지 IP를 보고 알맞은 VS로 패킷을 보내고 DMZ 같은 공유 자원과의 트래픽도 처리하며, 물리 라우터처럼 자기 라우팅 테이블을 유지합니다. 자신에게 직접 오고 가는 트래픽, 예컨대 VR의 IP로 보내는 ping 같은 것은 정책으로 검사하지만, 자신을 거쳐 가기만 하는 트래픽은 검사 없이 목적지로 넘깁니다. 다만 여기에는 꼭 기억해야 할 제약이 하나 있습니다. Maestro와 Scalable Chassis의 Security Group은 Virtual Router를 지원하지 않으므로(Known Limitation 01413513), Maestro 위에서 VSX를 쓸 때는 VR 기반의 공유 업링크 설계를 쓸 수 없고 VLAN 직결이나 Virtual Switch로 설계해야 합니다.

셋째는 Virtual Switch(VSW), L2 가상 스위치입니다. L2 연결성을 제공해 여러 VS를 잇고, 기존 IP 네트워크를 쪼개지 않으면서 공통 물리 인터페이스를 공유하게 해 줍니다. 물리 스위치가 그렇듯 MAC 주소와 포트를 담은 포워딩 테이블을 유지합니다.

Virtual Router와 비교하면 차이가 분명한데, Virtual Switch를 쓰면 VS들을 위한 별도 서브넷을 따로 할당할 필요도 없고 인접 라우터의 라우팅을 손댈 필요도 없습니다. 결국 VR과 VSW 사이의 선택은 트래픽을 라우팅으로 나눌 것인지(L3, Virtual Router), 아니면 같은 네트워크에 그냥 붙일 것인지(L2, Virtual Switch)의 문제로 정리됩니다.

인터페이스의 종류

① 인터넷 ② 라우터 ③ 물리 인터페이스 ④ VLAN 스위치 ⑤ 네트워크 1 ⑥ 네트워크 2 ⑦ VSX Gateway ⑧ 관리 서버 ⑨ Virtual Switch ⑩ Warp 인터페이스 ⑪ Virtual System 1 ⑫ Virtual System 2 ⑬ VLAN 인터페이스 ⑭ VLAN 트렁크
① 인터넷 ② 라우터 ③ 물리 인터페이스 ④ VLAN 스위치 ⑤ 네트워크 1 ⑥ 네트워크 2 ⑦ VSX Gateway ⑧ 관리 서버 ⑨ Virtual Switch ⑩ Warp 인터페이스 ⑪ Virtual System 1 ⑫ Virtual System 2 ⑬ VLAN 인터페이스 ⑭ VLAN 트렁크

VSX에서 쓰는 인터페이스는 네 가지로 나뉩니다. 가장 기본이 되는 것은 물리 인터페이스로, VSX Gateway를 관리 서버와 내부망·외부망에 연결합니다. 용도에 따라 관리 서버에 붙는 전용 관리 인터페이스, 인터넷처럼 신뢰할 수 없는 망에 붙는 외부 인터페이스, 보호 대상 네트워크에 붙는 내부 인터페이스, 그리고 클러스터 멤버 간 상태 동기화를 담당하는 동기화 인터페이스가 있습니다.

실무의 핵심은 VLAN 인터페이스입니다. 보통 보호 대상 네트워크들을 802.1q 호환 스위치에 연결하면, 그 스위치가 모든 트래픽을 하나의 물리 인터페이스로 트렁킹해 VSX Gateway에 넘깁니다. 그러면 VSX가 프레임의 VLAN 태그를 보고 각 네트워크를 담당하는 VS로 분배하는데, 이때 물리 인터페이스의 VLAN 태그마다 가상 인터페이스가 하나씩 배정됩니다. 예를 들어 eth3의 VLAN 태그 100은 eth3.100이라는 이름의 가상 인터페이스가 됩니다.

세 번째는 Warp Link입니다. VS와 Virtual Router 또는 Virtual Switch 사이를 잇는 내부 가상 P2P 연결로, 양쪽 끝이 각각 가상 인터페이스가 됩니다. VS 쪽 인터페이스에는 wrp 접두어가, VR이나 VSW 쪽에는 wrpj 접두어가 붙고 그 뒤에 고유 번호가 따라옵니다. Virtual Switch에 연결될 때는 각 Warp Link에 고유 MAC 주소도 함께 배정됩니다.

마지막은 Unnumbered Interface로, IP 주소를 아끼기 위한 기법입니다. Virtual Router로 향하는 Warp Link에 전용 IP를 따로 주는 대신 다른 인터페이스의 IP를 빌려 쓰는 방식인데, 몇 가지 제약이 따릅니다.

① VSX Gateway ② Virtual Router의 next hop이 되는 외부 인터페이스 ③ 외부 ④ Virtual Router ⑤ 내부 인터페이스 IP를 빌린 Unnumbered 외부 인터페이스 ⑥ 고정 IP를 가진 내부 인터페이스 ⑦ 내부
① VSX Gateway ② Virtual Router의 next hop이 되는 외부 인터페이스 ③ 외부 ④ Virtual Router ⑤ 내부 인터페이스 IP를 빌린 Unnumbered 외부 인터페이스 ⑥ 고정 IP를 가진 내부 인터페이스 ⑦ 내부

빌려 쓰는 인터페이스는 반드시 Virtual Router에 연결돼 있어야 하고, 한 인터페이스의 IP는 한 번만 빌려줄 수 있으며, VPN이나 Hide NAT을 쓰려면 빌린 주소가 라우팅 가능해야 합니다.

관리 모델 — SMS와 MDS

VSX는 두 가지 관리 모델을 지원합니다. Security Management Server(SMS) 모델은 VS는 많지만 도메인은 하나인 기업 환경에 적합합니다. 이 경우 SmartConsole이 VS들을 담고 있는 VSX Gateway에 붙어 각 VS를 직접 관리하며, 권장 VS 수는 25개 정도입니다. 반면 Multi-Domain Server(MDS) 모델은 서로 다른 도메인이나 부서, 지사를 중앙에서 관리할 때 씁니다. 이때 MDS가 각 네트워크의 정책 데이터베이스를 통제하는 중앙 노드가 되고, 도메인마다 Domain Management Server가 자기 SmartConsole로 자신의 VS와 가상 장치, 정책을 관리합니다. 실용적으로 도메인을 최대 250개까지, VS도 250개까지 다룰 수 있습니다.

MDS 환경에서는 역할에 따라 이름이 나뉩니다. VSX Gateway나 Cluster를 관리하는 Domain을 Main Domain Management Server라 하고, 그 안의 개별 VS나 VR을 관리하는 Domain을 Target Domain Management Server라 합니다. 한 VSX Gateway 위의 VS들이 서로 다른 Domain의 관리를 받을 수도 있습니다. 한편 라이선스 측면에서 주의할 점이 있는데, EULA상 하나의 Security Management Server는 단일 법인에 속한 VS의 정책만 관리할 수 있습니다. 따라서 여러 법인의 VS를 관리하려면 법인마다 별도의 Domain Management Server를 둔 MDS를 써야 합니다.

관리 서버와 VSX Gateway 사이의 모든 통신은 인증서 기반 보안 채널인 SIC(Secure Internal Communication)로 이뤄집니다. 최초의 신뢰는 VSX Gateway를 설정할 때 일회용 비밀번호로 맺는데, 가상 장치는 물리 장비와 달리 만들어질 때 VSX가 관리 서버와 게이트웨이 사이의 채널을 통해 SIC 신뢰를 자동으로 설정해 줍니다.

패킷은 어떻게 흐르는가

VSX Gateway는 트래픽을 세 단계로 처리합니다. 먼저 어느 컨텍스트로 보낼지 판별하고(Context Determination), 그 컨텍스트에서 보안 정책을 적용한 다음(Security Enforcement), 목적지로 전달합니다(Forwarding).

가장 중요한 첫 단계인 컨텍스트 판별을 이해하려면 VSX가 라우터의 VRF(Virtual Routing and Forwarding) 기술을 채택했다는 점을 알아야 합니다. VSX는 이 기술로 하나의 게이트웨이나 클러스터 위에 여러 독립 라우팅 도메인을 만드는데, 이 도메인들이 서로 독립적이기 때문에 IP가 겹치는 가상 장치도 쓸 수 있고, 바로 이 라우팅 도메인 하나하나를 컨텍스트(context)라고 부릅니다.

트래픽이 도착하면 컨텍스트 판별 과정이 그 패킷을 알맞은 VS나 VR, VSW로 보내는데, 어떻게 판별하는지는 연결 방식에 따라 셋으로 갈립니다.

VS가 물리 인터페이스나 VLAN 인터페이스에 직접 연결돼 있으면, 그 인터페이스 자체가 컨텍스트를 결정합니다. 아래 그림으로 따라가 보면, 인터넷(①)에서 라우터(②)를 지나 VSX Gateway(③)에 도착한 트래픽이 eth1.200(⑦)으로 들어오면, 그 VLAN ID가 정의하는 컨텍스트에 따라 자동으로 Virtual System 2(⑧)로 향합니다. 같은 트렁크라도 eth1.100(⑥)으로 들어온 것은 Virtual System 1(⑤)로 갈립니다.

① 인터넷 ② 라우터 ③ VSX Gateway ④ Virtual Switch ⑤ Virtual System 1 ⑥ eth1.100(VLAN 인터페이스) ⑦ eth1.200 ⑧ Virtual System 2 ⑨ VLAN 스위치 ⑩ VLAN 100 ⑪ VLAN 200
① 인터넷 ② 라우터 ③ VSX Gateway ④ Virtual Switch ⑤ Virtual System 1 ⑥ eth1.100(VLAN 인터페이스) ⑦ eth1.200 ⑧ Virtual System 2 ⑨ VLAN 스위치 ⑩ VLAN 100 ⑪ VLAN 200
① 인터넷 ② 라우터 ③ VSX Gateway ④ Virtual Switch ⑤ MAC …:01 ⑥ Virtual System 1 ⑦ Virtual System 2 ⑧ MAC …:03 ⑨ VLAN 스위치 ⑩ VLAN 100 ⑪ VLAN 200
① 인터넷 ② 라우터 ③ VSX Gateway ④ Virtual Switch ⑤ MAC …:01 ⑥ Virtual System 1 ⑦ Virtual System 2 ⑧ MAC …:03 ⑨ VLAN 스위치 ⑩ VLAN 100 ⑪ VLAN 200

VS가 Virtual Switch를 거쳐 연결돼 있으면 목적지 MAC 주소로 판별하는데, VSW의 포워딩 테이블에서 MAC을 찾아 해당 VS의 Warp Link로 보내고, 만약 테이블에 없는 MAC이면 모든 Warp Link로 브로드캐스트합니다. 이 방식은 외부나 인터넷에서 들어오는 트래픽에서 흔히 볼 수 있습니다. 마지막으로 VS가 Virtual Router를 거쳐 연결돼 있으면 VR의 라우팅 테이블 항목으로 판별합니다. 이때 라우팅은 목적지 기반일 수도, 출발지 기반일 수도, 둘 다일 수도 있으며, 결정된 VS의 Warp Link로 트래픽이 도착합니다.

컨텍스트가 정해지면 그다음은 단순합니다. 각 VS는 독립된 Security Gateway이므로 자기만의 보안 정책으로 뒤의 네트워크를 보호하며, 지정된 VS가 모든 트래픽을 검사해 정책 규칙대로 허용하거나 차단합니다. 그렇게 통과된 트래픽은 각 VS가 가진 자기만의 설정과 규칙, 곧 NAT나 VPN 같은 처리를 거쳐 최종 목적지로 전달됩니다.

VSX의 라우팅

VSX의 라우팅은 물리 네트워크의 라우팅과 거의 똑같이 동작합니다. Virtual Router나 Virtual Switch를 통해 VS 뒤의 네트워크끼리 통신시킬 수 있는데, 가령 VLAN 100의 호스트가 VLAN 200의 서버로 데이터를 보내는 식입니다.

① VLAN 100 ② VLAN 스위치 ③ VLAN 트렁크 ④ Virtual System 1 ⑤ Virtual Switch ⑥ Virtual System 2 ⑦ VLAN 200 ⑧ VSX Gateway
① VLAN 100 ② VLAN 스위치 ③ VLAN 트렁크 ④ Virtual System 1 ⑤ Virtual Switch ⑥ Virtual System 2 ⑦ VLAN 200 ⑧ VSX Gateway

여기서 VSX의 가장 독특한 성질이 나옵니다. 각 VS가 자기만의 상태 테이블과 라우팅 테이블을 갖기 때문에, 서로 다른 VS에 같은 IP 대역이 들어 있어도 충돌하지 않습니다. 같은 10.0.0.0/24라도 VS1이 보는 것과 VS2가 보는 것이 전혀 다른 인터페이스와 연결을 가리키므로, 마치 물리 방화벽 두 대를 따로 둔 것과 똑같은 격리가 이뤄집니다.

① 인터넷 ② 라우터 ③ Virtual Switch ④ VSX Gateway ⑤ Virtual System 1 ⑥ Virtual System 2 ⑦ 스위치 ⑧ 네트워크 1 ⑨ 네트워크 2
① 인터넷 ② 라우터 ③ Virtual Switch ④ VSX Gateway ⑤ Virtual System 1 ⑥ Virtual System 2 ⑦ 스위치 ⑧ 네트워크 1 ⑨ 네트워크 2

VS는 NAT을 써서 이런 내부 IP를 외부 IP로 매핑해 바깥과 통신하며, Virtual Router는 동적 라우팅 프로토콜도 지원합니다.

이처럼 모든 것이 컨텍스트 단위로 분리돼 있기 때문에, 막상 운영에 들어가면 "지금 내가 어느 VS를 보고 있는가"가 늘 중요해집니다. 셸의 컨텍스트를 특정 VS로 바꾸는 vsenv 명령과, 컨텍스트를 혼동했을 때 생기는 운영상의 함정은 VSX 진단·트러블슈팅 챕터에서 자세히 다룹니다.

클러스터로 이중화하기

VSX를 이중화하면 두 가지 모드 중 하나를 쓰게 됩니다. High Availability는 Active 멤버가 죽으면 모든 세션이 중단 없이 Standby 멤버로 넘어가는 방식으로, 모든 VS가 한 멤버에서 Active이고 나머지 멤버는 대기합니다. 반면 VSLS(Virtual System Load Sharing)는 VS들을 여러 멤버에 나눠 배치해 부하를 분산하는 방식으로, 트래픽이 늘어나면 멤버를 추가해 확장할 수 있어 Maestro 환경에서 주로 씁니다. 두 모드의 자세한 설정은 VSX 클러스터 구성 챕터에서 다룹니다.