참고:
- 이 사용지침서에서는 Oracle Cloud에 접근해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 대한 예제 값을 사용합니다. 실습을 완료하면 이러한 값을 클라우드 환경에 고유한 값으로 대체합니다.
Linux 및 Libreswan의 ECMP 라우팅을 통해 HA 모드에서 Oracle Cloud Infrastructure 사이트 간 VPN 서비스 사용
소개
오늘날 상호 연결된 세상에서 네트워크를 통해 전송되는 데이터의 가용성과 보안을 보장하는 것이 중요합니다. 이러한 중요한 요구를 해결하기 위해 Oracle Cloud는 고가용성 IPSec 터널을 설정하는 기능을 비롯한 강력한 네트워킹 기능을 제공합니다. 이 자습서에서는 고가용성 IPSec 터널의 개념을 살펴보고 ECM(Equal-cost multi-path) 프로토콜을 사용하여 Oracle Cloud에서 탄력적인 네트워크 아키텍처를 설정하는 프로세스를 안내합니다.
이 자습서에서는 Oracle Cloud 환경에 최적화된 강력하고 안전한 운영체제인 Oracle Linux와 잘 정립된 IPSec 클라이언트인 Libreswan을 사용하여 경로 기반 모드로 IPSec 터널을 설정하는 방법에 대해 중점적으로 다룹니다. Oracle Cloud Infrastructure(OCI)에서 제공하는 DRG(동적 라우팅 게이트웨이) 기능을 활용하여 여러 IPSec 터널 간의 원활한 페일오버 및 로드 밸런싱을 지원합니다.
목표
활성/활성 시나리오에서 트래픽 로드 밸런싱을 위해 ECMP 라우팅 프로토콜을 사용하여 OCI에서 IPSec 터널을 구현하는 포괄적인 가이드를 제공합니다.
- 사이트 간 IPSec 프로토콜의 기본 사항 이해
- 다양한 IPSec 모드(전송 대 터널, 정책 기반 대 경로 기반) 이해
- ECMP 로드 밸런싱을 사용하여 Oracle Linux에서 Libreswan 구성
- 중복 IPSec 터널에 대해 DRGv2 구성
- Iperf3를 사용하여 터널 중복성 및 로드 밸런싱을 테스트합니다.
이 자습서를 따르면 OCI의 IPSec에 대해 종합적으로 이해할 수 있습니다. 중복 연결을 통해 온프레미스 인프라와 OCI를 효과적으로 상호 연결하는 데 필요한 기술을 습득하게 됩니다.
필요 조건
-
활성 OCI 테넌시입니다. OCI에서 네트워크 리소스를 생성하고 관리하는 데 필요한 권한이 있어야 합니다.
-
Linux OS, 네트워킹 개념 및 OCI에 대한 기본적인 이해 여기에는 IP 주소 지정, 서브넷, 라우팅 및 방화벽과 같은 기본적인 네트워킹 개념에 대한 친숙도가 포함되어야 합니다.
-
설치 및 구성 방법을 포함하여 Oracle Linux에 대한 기본적인 이해 Oracle Linux를 처음 사용하는 경우 사전에 기본 Oracle Linux 자습서 또는 가이드를 살펴볼 수 있습니다.
-
적절한 라우팅 규칙, 인터넷 게이트웨이, DRG 및 보안 목록이 구성된 OCI에서 설정된 VCN(가상 클라우드 네트워크) 및 서브넷입니다.
-
OCI 콘솔 또는 OCI CLI를 사용하여 네트워크 리소스를 생성하고 관리하는 방법을 잘 이해합니다.
참고: 네트워킹 구성 실험을 위해 OCI에서 테스트 환경을 설정하고 운용 환경에서 구현하기 전에 IPSec를 설정하는 것이 좋습니다.
IPSec VPN이란?
인터넷 프로토콜 보안(IPSec)은 암호화 보안 서비스 사용을 통해 IP(인터넷 프로토콜) 네트워크를 통한 개인 보안 통신을 보장하는 데 도움이 되는 개방형 표준 프레임워크입니다. IPSec는 네트워크 레벨 데이터 무결성, 데이터 기밀성, 데이터 원점 인증 및 재생 보호를 지원합니다. IPSec는 인터넷 계층(계층 3)에 통합되므로 TCP/IP 제품군의 거의 모든 프로토콜에 대한 보안을 제공하고 IPSec가 응용 프로그램에 투명하게 적용되므로 TCP/IP를 사용하는 각 응용 프로그램에 대해 별도의 보안을 구성할 필요가 없습니다.
IPSec는 신뢰할 수 없는 컴퓨터, 애플리케이션, 서비스 또는 네트워크의 서비스 거부를 초래할 수 있는 공격으로부터 네트워크 기반 공격에 대한 심층 방어를 제공합니다.
- 데이터 손상
- 데이터 도용
- 사용자 자격 증명 도난
- 서버, 기타 컴퓨터 및 네트워크의 관리 제어.
사이트 간 VPN
네트워크 간 VPN이라고도 하는 사이트 간 IPSec(인터넷 프로토콜 보안) VPN은 인터넷을 통해 두 개 이상의 네트워크 간에 암호화된 보안 연결을 설정합니다. 이를 통해 지리적으로 분산된 사이트 간에 데이터를 안전하게 전송할 수 있으므로 물리적 경계를 넘어 네트워크 범위를 확장하는 VPN(가상 사설망)을 만들 수 있습니다.
사이트 간 IPSec VPN에서는 일반적으로 동일한 조직의 다른 조직 또는 원격 분기에 속하는 참여 네트워크가 전용 IPSec 터널을 통해 연결됩니다. 이러한 터널은 네트워크 트래픽을 캡슐화하고 암호화하여 인터넷과 같은 신뢰할 수 없는 네트워크를 순회하면서 기밀성, 무결성 및 신뢰성을 보장합니다.
반면, 지점 간 VPN(P2S)은 개별 클라이언트 장치와 원격 네트워크 간의 보안 연결을 설정합니다. 네트워크를 연결하는 사이트 간 VPN과 달리 P2S VPN은 네트워크 리소스에 액세스하기 위해 개별 장치에 대한 보안 원격 액세스를 지원합니다. P2S VPN은 일반적으로 외부 위치에서 조직의 네트워크에 연결해야 하는 원격 직원, 계약자 또는 모바일 사용자에 대한 보안 액세스를 사용으로 설정하는 데 사용됩니다.
참고: 이 자습서 범위는 현재 OCI DRGv2에서 지원되는 유일한 사이트 간 IPSec VPN으로 제한됩니다.
VPN IPSec 터널 개념
IPSec는 Internet Protocol Security 또는 IP Security를 나타냅니다. IPSec는 패킷이 소스 노드에서 대상으로 전송되기 전에 전체 IP 트래픽을 암호화하는 프로토콜 제품군입니다. IPSec는 다음 두 가지 모드로 구성할 수 있습니다.
-
전송 모드: IPSec는 패킷의 실제 페이로드만 암호화 및/또는 인증하고 헤더 정보는 그대로 유지됩니다.
-
터널 모드: IPSec는 전체 패킷을 암호화 및/또는 인증합니다. 암호화 후 패킷이 캡슐화되어 헤더 정보가 서로 다른 새 UDP IP 패킷을 형성합니다.
IPSec VPN 사이트 간 터널은 다음과 같은 이점을 제공합니다.
-
공용 통신 회선이 데이터를 전송하는 데 사용되므로 한 사이트에서 다른 사이트로 전용 비싼 임대 회선을 구입할 필요가 없습니다.
-
참여하는 네트워크와 노드의 내부 IP 주소는 외부 사용자로부터 숨겨집니다.
-
소스 사이트와 대상 사이트 간의 전체 통신이 암호화되어 정보 도용 가능성을 크게 줄입니다. OCI는 VPN IPSec의 터널 모드만 지원하며 웹 콘솔을 사용하여 셀프 서비스로 제공됩니다.
참고: OCI Site-to-Site VPN은 터널 모드만 지원하므로 OCI에서 사용할 수 있는 유일한 모드가 됩니다.
구조
ECMP가 포함된 OCI IPSec는 다음과 같은 목록으로 구성됩니다.
-
프랑크푸르트 지역의 기본 경로 테이블 및 자동 생성된 경로 테이블 RT2 "Autogenerated Drg Route Table for VCN attachments"를 사용하여 VCN1 및 VCN2에 연결된 DRGv2
-
두 개의 터널을 포함하는 IPSec 연결과 동일한 DRGv2:
- 터널 1, Oracle VPN IP 주소 193.122.x.x, 자동 생성된 경로 테이블 RT1 "Autogenerated Drg Route Table for RPC, VC, and IPSec attachments".
- 터널 2, Oracle VPN IP 주소 158.101.x.x, 자동 생성된 경로 테이블 RT1 "Autogenerated Drg Route Table for RPC, VC, and IPSec attachments".
-
전용 CIDR 범위 192.168.0.0/16, 공용 IP 143.47.48.219에서 실행되는 온프레미스의 ECMP 지원을 갖춘 IPSec 클라이언트인 Oracle Linux VM입니다.
-
Iperf3 온프레미스의 Oracle Linux에서 클라이언트와 Oracle OCI의 서버로
-
공용 IP 143.47.x.x를 사용하여 Libreswan으로 구성된 CPE입니다.
-
ECMP는 Oracle Linux 8과 OCI측을 지원했습니다.
작업 1: OCI 설정 구성
이 자습서에서는 하나의 Oracle Linux 7 VM 인스턴스를 만들고 Libreswan 3.25를 설치했습니다. Libreswan을 Linux에 설치하려면 다음 Oracle 설명서를 참조하십시오. Access to Other Clouds with Libreswan 선택한 환경에 Libreswan을 설치할 수 있습니다. 이 자습서에서는 OCI의 다른 원격 영역을 Libreswan 클라이언트 및 터널 개시자로 선택했습니다.
Libreswan을 설치했으면(아직 구성하지 않음) Linux 7 VM의 공용 IP와 Libreswan을 설치한 전용 IPv4 CIDR 범위를 확인합니다.
이제 OCI 설정을 구성해 보겠습니다.
-
VCN 생성과 같이 OCI 콘솔에 로그인하고 네트워킹 탭으로 이동하여 VCN1 및 VCN2을 생성합니다.
-
CIDR 10.0.0.0/16 및 서브넷 2개(서브넷 A 10.0.1.0/24 및 서브넷 B 10.0.0.0/24)를 사용하여 VCN1을 생성합니다.
-
CIDR 172.20.0.0/16 및 서브넷 2개(서브넷 C 172.20.1.0/24 및 서브넷 D 172.20.2.0/24)로 VCN2을 생성합니다.
-
IPSec 터널을 테스트하려면 OCI의 대상 서브넷에 VM을 생성합니다. 이 자습서에서는 3개의 VM(origin1, origin2 및 origin3)을 생성했습니다.
-
이제 네트워킹, 고객 연결, 동적 라우팅 게이트웨이 아래에 DRG를 생성해 보겠습니다.
-
DRG가 생성되면 VCN1 및 VCN2 모두에 가상 클라우드 네트워크 연결을 생성해야 합니다.
-
생성되면 두 개의 네트워크 연결(VCN당 하나씩)이 VCN 연결용 AutoGenerated DRG 경로 지정 테이블(기본 아키텍처의 RT2 경로 지정 테이블)을 사용하여 두 DRG에 연결됩니다.
-
이 경로 지정 테이블은 방금 연결된 VCN에서 수신 트래픽을 전송/경로 지정할 위치를 DRG에 알립니다. "대상 CIDR"로 향하는 모든 트래픽은 다음과 같이 "다음 홉 연결"로 전송/경로 지정됩니다.
-
나중에 IPSec 터널을 생성할 때 IPSec 터널을 통해 온프레미스에서 들어오는 트래픽에 대해 유사한 자동 생성된 경로 지정 테이블이 생성됩니다.
-
-
이제 IPSec 연결을 생성하겠습니다. IPSec을 생성하기 전에 네트워킹, 고객 연결, 고객 구내 장비, CPE 생성에서 IPSec을 통해 OCI에 접속하는 온프레미스 장치를 나타내는 CPE(고객 구내 장비)를 생성해야 합니다.
-
X.X.X.X는 온프레미스 장치가 연결되는 공용 IP 주소여야 합니다. 이전 단계에서 설치한 Libreswan Oracle Linux 시스템에 지정된 개인 IP 주소와 혼동하지 마십시오. Oracle Linux VM이 NAT 뒤에 있을 가능성이 높습니다(공용 IP를 직접 소유하지 않음). 공용 IP 주소를 모르는 경우 항상 Linux 콘솔에서
curl ifconfig.co
명령을 실행하여 확인할 수 있습니다. -
이 자습서의 경우 공급업체 Libreswan 버전 3.18 이상을 선택합니다.
-
-
네트워킹, 고객 연결, 사이트 간 VPN, IPSec 연결 생성으로 이동하고 다음 세부정보를 제공합니다.
참고: VPN 마법사를 사용할 수 있지만 이 자습서에서는 범위를 벗어납니다.
-
IPSec 구성의 이름
-
구획에 생성: 해당 구획
-
구획의 고객 구내 장비: 이전 단계에서 생성한 CPE를 선택합니다.
- 이 CPE는 NAT 장치 뒤에 있습니다. 이는 온프레미스에서 IKE(Internet Key Exchange) ID가 OCI에 "표시"되는 방식에 직접적인 영향을 줍니다. Libreswan이 NAT 뒤에서 실행 중이라고 가정할 경우 Libreswan이 IKE ID로 실행 중인 개인 IP를 사용하려면 이 옵션을 선택합니다. 그렇지 않으면 Libreswan에서 연결하는 공용 IP를 사용하려면 이 옵션을 표시하지 마십시오. 나중에 Libreswan 구성에서 이 IKE ID를 구성합니다.
-
동적 경로 지정 게이트웨이 구획: 이전 단계에서 구성한 DRG를 선택합니다.
-
온프레미스 네트워크에 대한 경로: 동적 경로 지정이 이 자습서의 범위를 벗어납니다. Route Based IPSec 구성을 사용하여 로드 밸런싱 및 중복성을 위해 ECMP에 초점을 맞출 것입니다. OCI에서 온프레미스로 연결할 수 있는 온프레미스 경로/CIDRS를 수동/정적으로 여기에 추가할 것입니다. 이 자습서에서는 192.168.0.0/16을 온프레미스 CIDR로 사용합니다.
-
터널 1:
- 이름
- 고객 공유 암호 제공: 자체 IKE 미리 공유한 키(암호)를 사용하거나 비워 두면 OCI에서 이 키(나중에 Libreswan 설정 중 사용)를 선택할 수 있습니다.
- IKE 버전: 이 자습서에서는 IKEv1를 사용합니다.
- 경로 지정 유형: 이 자습서에서는 경로 기반 IPSec 구성에 정적 경로 지정을 사용하므로 "정적 경로 지정"을 선택합니다.
- IPv4 내부 터널 인터페이스 - CPE 및 Oracle: 이 옵션을 비워 둡니다.
- IPv6 주소 지정: 이 자습서에서 IPv6가 범위를 벗어나므로 비워 두십시오.
-
터널 2: 터널 2를 터널 1과 정확히 동일한 방식으로 채웁니다(IKE 버전, 경로 지정 유형 등).
-
-
IPSec 접속 생성을 누릅니다. 모든 작업이 잘 진행되는 경우 몇 분 후 중복성을 위해 두 개의 터널과 함께 IPSec 구성이 실행되어야 합니다.
-
이제 DRG와 IPSec가 준비되었으므로 OCI의 VCN에서 온프레미스로 향하는 모든 트래픽이 DRG로 향하는 길을 찾을 수 있는지 확인해야 합니다. 트래픽이 DRG에 도달하면 최근에 구성된 두 개의 IPSec 터널을 통해 온프레미스로 터널됩니다. 이를 위해서는 VCN의 모든 서브넷 경로 테이블(자습서에서 기본 경로 테이블을 선택함), 대상 유형 동적 경로 지정 게이트웨이, 대상 유형 CIDR 블록, 온프레미스 경로(이 경우 192.168.0.0/16)에 대한 경로 규칙으로 온프레미스 CIDR을 추가해야 합니다.
참고: 이 경로를 추가해야 하는 이유는 OCI가 VCN 영역 외부의 CIDR 주소에 대한 암시적 경로 지정을 가지고 있지 않기 때문입니다. 따라서 트래픽이 DRG에 도달하도록 CIDR 블록을 수동으로 추가해야 합니다.
-
작업 2: Linux 및 Libreswan 설정 구성
이 튜토리얼에서는 Linux OS 및 Libreswan 구성 단계를 중점적으로 다룹니다. 이전에 설치한 Libreswan은 사이트 간 터널 개시자 및 OCI DRG를 터널 응답자로 사용합니다.
-
SSH를 통해 Oracle Linux OS에 액세스합니다. 중요한(관리자) 명령을 실행하도록 권한을 높입니다.
-
sudo su
: 루트 사용자가 됩니다. -
Libreswan이 올바른 버전 ipsec -version으로 설치되었는지 확인합니다. Libreswan 버전 3.25 이상이 표시되어야 합니다. 그렇지 않은 경우 작업 1: OCI 설정 구성으로 이동하고 지침에 따라 Libreswan을 설치합니다.
-
구성 폴더:
cd /etc
로 이동합니다. -
Libreswan은 모든 터널 구성을
ipsec.conf
파일에 저장합니다. 사용자가 즐겨찾는 파일 편집기를 사용합니다. "vi"는 좋은 옵션입니다.vi ipsec.conf
-
Libreswan ipsec.conf:
-
conn [TunnelName1}: 터널 이름
-
type= 터널(터널 모드)
-
authby=secret(인증에서 암호 문장암호를 사용함)
-
pfs=yes(Perfect forward secrecy enabled)
-
keyexchange=ike
-
leftid= n.n.n.n(Libreswan이 연결하는 공용 IP 주소입니다. IPSec 생성 중에 'CPE is behind NAT' 옵션을 선택하지 않으면 IKE ID 식별자로 사용됩니다. 이 경우 모든 IP 주소 또는 FQDN(정규화된 도메인 이름)을 식별자로 설정할 수 있습니다.
-
leftsourceip= m.m.m.m(Libreswan에 지정된 전용 IP입니다(예: 192.168.1.1).
-
leftsubnet= x.x.x.x/x(Libreswan에 지정된 CIDR 블록입니다(예: 192.168.0.0/16).
-
right= y.y.y.y(네트워킹, 고객 연결, 사이트 간 VPN, YourIPSEC에서 IPSec 생성 중 tunnel1에 지정된 OCI VPN "공용" IP 주소)
-
rightid= y.y.y.y(OCI에서 전송된 IKE ID입니다. 일반적으로 OCI VPN "공용" IP 주소이며 일반적으로 올바른 매개변수와 같습니다.)
-
leftsubnet=0.0.0.0/0(SA 트래픽 선택기 협상 인터넷 키 교환(IKEv2) 프로토콜 2.2.9의 일부로 OCI로 전송될 CIDR 블록입니다. OCI의 모든 트래픽이 온프레미스로 라우팅된다는 의미는 아닙니다. 대신 이 CIDR 블록에 따라 IPSec 터널을 통해 수락, 암호화 및 터널링될 특정 트래픽이 결정됩니다. 여기에 설명된 IPSec 터널은 VTI(Virtual Tunnel Interface)라는 가상 인터페이스로 표시되며, 이는 터널 자체를 나타내는 가상 네트워크 인터페이스(예: 가상 네트워크 카드)로 사용됩니다. VTI를 vti01이라고 가정해 보겠습니다. vti01 인터페이스로 경로 지정된 모든 트래픽은 IPSec 터널의 일부가 되며 연결의 다른 쪽 끝으로 안전하게 전송됩니다. 특정 IPSec 터널 및 연관된 VTI를 기반으로 경로 지정 결정을 내리는 이 접근 방법을 IPSec 경로 기반 경로 지정이라고 합니다).
-
rightsubnet=0.0.0.0/0(온프레미스에서 OCI로 수락된 트래픽의 경우 위와 동일)
-
mark=n/0xffffff(*이 VTI 인터페이스와 연관된 IPSec 터널 내에서 캡슐화된 패킷을 표시하기 위해 VTI 인터페이스와 함께 사용할 필요 옵션). 모든 터널에서 고유해야 합니다. 예: 5/0xffffffff*)
-
vti-interface=vtinn(*VTI 인터페이스의 이름, 즉 vti01*)
-
vti-routing=no(경로가 VTI 장치에 자동으로 만들어져야 하는지 여부). 0.0.0.0/0 경로를 자동으로 생성하지 않으려면 NO를 선택합니다.)
-
encapsulation= yes/auto(yes는 NAT 감지 코드를 강제로 거짓말을 하고 원격 피어에 RFC-3948 캡슐화(포트 4500 UDP 패킷의 ESP)를 지시합니다. NAT 자동 검사를 강제로 수행합니다.)
-
aggrmode= 아니오
-
ike=aes_cbc256-sha2_384;modp1536(IKE 암호화/인증 알고리즘 - 연결에 사용됩니다(단계 1 - ISAKMP SA). 형식은 "cipher-hash;modpgroup, cipher-hash;modpgroup, ...)입니다.
-
esp=aes_gcm256;modp1536(하위 SA 협상에 대해 제공/수락될 알고리즘을 지정합니다. ESP의 형식은 ENC-AUTH이며 PFSgroup는 선택사항입니다. 예: "aes_gcm256" 또는 "aes256-sha2_512-dh14" 또는 "aes-sha2_512+sha2_256")
-
ikev2= no(IKEv2을 사용하려면 ikev2=insist로 변경)
-
-
-
구성 폴더:
cd /etc/ipsec.d
로 이동합니다. -
Libreswan은 모든 터널이 비밀(암호)을
shared.secrets
파일에 저장합니다.-
Libreswan shared.secrets 형식: leftid right : PSK "secret"
-
leftid: IPSec.conf(leftid)에 구성된 IKE ID입니다. 일반적으로 Libreswan 공용 IP 주소입니다.
-
right: OCI 터널의 공용 IP 주소입니다.
-
"secret": OCI에서 구성된 현재 터널 공유 암호/암호입니다. 이 정보는 OCI 콘솔의 네트워킹, 고객 연결, 사이트 간 VPN, YourIPSEC, TunnelName, 터널 정보, 공유 암호, 표시에서 확인할 수 있습니다.
-
-
-
-
이 자습서에서는 다음
ipsec.conf
및shared.secrets
를 생성했습니다(공용 IP가 숨겨짐).ipsec.conf
shared.secrets
-
이제 OCI에 대해 두 개의 HA 터널을 설정해 보겠습니다.
-
Libreswan 서비스를 재시작합니다. 루트로
ipsec restart
을 실행합니다. 모든 것이 잘되면 오류가 표시되지 않습니다. 그렇지 않으면 다음과 같은 내용이 표시됩니다.콘트롤 프로세스가 오류 코드와 함께 종료되어 ipsec.service에 대한 작업이 실패했습니다. 자세한 내용은 "systemctl status ipsec.service" 및 "journalctl -xe"를 참조하십시오.
-
이제 IPSec 터널의 현재 상태를 확인하겠습니다.
ipsec status
를 실행합니다. ESP(데이터 평면) 및 IKE(시그널링 평면), 허용된 서브넷 등을 중심으로 구성된 현재 터널에 대한 많은 정보가 표시됩니다. 이제 연결 목록에 초점을 맞출 것입니다.000 연결 명부:
000명
000 총 IPSec 접속: *loaded 0, active 0
-
현재 로드된 터널 구성이 없습니다. 활성 구성도 없습니다.
-
ipsec auto --add ConnName1
, 즉ipsec auto --add home_liftvti
를 실행합니다.- 002가 접속 설명 "home_liftvti"을 추가했습니다. <- 이제 접속이 아직 활성 상태가 아닌 "loaded"입니다. ipsec 상태로 확인하십시오.
-
ipsec auto --up ConnName1
를 실행하여 터널 1(예:ipsec auto --up home_liftvti
)을 시작합니다. 문제가 모두 발생하면 IPSec SA set tunnel mode가 표시되고, 그렇지 않으면 문제를 해결하는 데 필요한 다른 IKE/IPSec 오류가 표시됩니다. -
이제 두번째 터널을 시작합니다. ipsec auto -add ConnName2를 실행합니다. 즉, ipsec auto -add home_liftvti2를 실행합니다.
- 002가 접속 설명 "home_liftvti2"을 추가했습니다. <- 이제 접속이 아직 활성 상태가 아닌 "loaded"입니다. ipsec 상태로 검사
-
ipsec auto -up ConnName2를 실행하여 터널 1, 즉 ipsec auto -up home_liftvti2를 시작합니다. 문제가 지속되면 "IPSec SA 설정 터널 모드"가 표시됩니다. 그렇지 않으면 문제를 해결해야 하는 다른 IKE/IPSec 오류가 표시됩니다.
-
작업 3: IP 경로 지정 및 터널 트래픽 구성
이 자습서 부분은 IP 경로 지정 및 터널 트래픽에 중점을 둡니다.
-
이제 두 터널이 모두 작동되어 실행되고 있으므로 Libreswan에서 OCI의 일부 시스템에 ping을 수행하여 터널을 테스트해 보겠습니다. 예를 들어, IP 10.0.0.109을 사용하여 origin1를 ping합니다. 실패하는 것을 보게 될 것이다.
PING 10.0.0.109 (10.0.0.109) 56(84) bytes of data. 10.0.0.109 ping statistics 26 packets transmitted, 0 received, 100% packet loss,
-
OCI에 대해 IPSec 터널이 작동되어 실행되고 있더라도 이 터널이 작동하지 않는 이유는 궁금할 것입니다. 그 이유는 OCI에 대해 설정된 두 터널이 "경로 기반"이고 모든 터널이 VTI(가상 인터페이스)로 표현되기 때문입니다. 모든 VTI는 IPSec 터널을 나타내는 NIC(가상 네트워크 인터페이스 카드)로 볼 수 있습니다. VTI로 경로 지정된 모든 트래픽은 ESP(Encapsulating Security Payload) 프로토콜을 사용하여 캡슐화되고 터널의 다른 쪽 끝으로 전송됩니다. VTI는 IPSec 터널을 통해 보안 및 전송되어야 하는 트래픽에 대한 게이트웨이 역할을 합니다.
-
테스트 시나리오에서는 두 개의 VTI 인터페이스인 vti01 및 vti02가 있으며, 각 인터페이스는 OCI DRG에 대해 home_liftvti 및 home_liftvti02를 나타냅니다. Linux 명령
ifconfig
를 실행하여 쉽게 확인할 수 있습니다. -
이제 이러한 VTI 인터페이스에 대해 Linux OS 루트를 추가하여 트래픽이 두 터널을 통해 OCI에 도달하도록 해야 합니다. VTI 인터페이스로 지정된 모든 트래픽은 연관된 IPSec 터널에 캡슐화되고 OCI로 경로 지정됩니다.
-
경로를 추가하는 명령의 형식은
ip route add {vcnCidrBlock} nexthop dev {vti1} weight {priority}nexthop dev {vti2} weight {priority}
`입니다. -
테스트 사례에서 CIDR 10.0.0.0/16을 사용하여 OCI VCN1에 연결할 수 있습니다. ip route add 10.0.0.0/16 nexthop dev vti01 weight 1 nexthop dev vti02 weight 1
-
-
이제 핑이 바로 작동합니다.
ping 10.0.0.109 PING 10.0.0.109 (10.0.0.109) 56(84) bytes of data. 64 bytes from 10.0.0.109: icmp_seq=1 ttl=61 time=29.0 ms 64 bytes from 10.0.0.109: icmp_seq=2 ttl=61 time=29.4 ms 64 bytes from 10.0.0.109: icmp_seq=3 ttl=61 time=29.0 ms
-
이제 두 개의 터널이 작동합니다.
작업 4: ECMP 로드 균형 조정 및 중복성 구성
이 튜토리얼에서는 ECMP 로드 밸런싱 및 중복성에 중점을 둡니다.
-
이 자습서에서는 현재 두 개의 IPSec 터널을 OCI에서 설정하고 운영할 수 있습니다. 두 터널 모두 테스트 사례 192.168.0.0/16에 명시된 대로 온프레미스 네트워크를 향한 동일한 경로를 활용하고 있습니다.
-
터널 1 192.168.0.0/16 -> 온프레미스
-
터널 2 192.168.0.0/16 -> 온프레미스
-
-
두 터널 모두 동일한 온프레미스 경로(192.168.0.0/16)를 사용하고 있으므로 이 경로는 나머지 DRG 네트워크 연결로 전달되므로 다른 네트워크 요소(VCN, 서브넷 등)가 IPSec를 통해 온프레미스에 도달할 수 있습니다. 다음 그림에서 볼 수 있듯이 VCN 연결에 대해 자동 생성된 DRG 테이블의 두 IP 보안 터널에 대해 동일한 경로 192.168.0.0/16에 충돌이 발생합니다.
-
이 구성에서는 하나의 터널만 사용하고 다른 터널은 무시합니다. 이 자습서의 목표는 두 터널을 동시에 사용하여 고가용성(활성/활성)을 달성하고 두 개의 터널 처리량을 추가하여 성능을 두 배로 늘리는 것입니다. 이것이 바로 ECMP가 플레이하는 곳입니다. ECMP를 활성화하려면 먼저 모든 VCN 연결(네트워킹, 고객 연결, 동적 경로 지정 게이트웨이, DRGName, DRG 경로 테이블 세부정보, 편집 버튼)에 대해 자동 생성된 DRG 테이블에서 사용으로 설정해야 합니다. 이 작업은 모든 DRG 연결 테이블에서 수행해야 합니다.
-
VCN 연결에 대해 자동 생성된 DRG 경로 테이블의 경로 충돌이 해결되었음을 알 수 있습니다.
-
Linux 및 Libreswan에서 ECMP를 활성화합니다. ECMP(Equal-cost multi-path routing)를 지원하기 위해 Linux는 다중 경로 경로에 사용할 해시 정책을 제어하는 새로운
sysctl
설정인fib_multipath_hash_policy
를 사용하여 해시 정책을 선택합니다.fib_multipath_hash_policy
가 1로 설정된 경우 커널은 5-튜플(소스 IP, 소스 포트, 대상 IP, 대상 포트, IP 프로토콜 유형) 값 세트에 따라 IPv4 패킷에 대한 다중 경로 해시인 L4 해시를 수행합니다.fib_multipath_hash_policy
가 0(기본값)으로 설정된 경우 L3 해시(소스 및 대상 IP 주소)만 사용됩니다. Linux 콘솔에서 루트로 다음을 실행합니다.sysctl -w net.ipv4.fib_multipath_hash_policy=1
-
이제 양쪽 끝에서 ECMP가 활성화되었으므로 두 터널이 활성/활성 모드로 사용되어 총 2개의 IPSec 터널 처리량을 추가합니다. 테스트를 위해
iperf3
명령을 사용하여 트래픽을 검사하고 다음과 같은 결과를 얻었습니다.From Libreswan: iperf3 -c 10.0.0.109 -b 1100Mb -P 8 -t 300 From OCI Origin1: iperf3 -s [SUM] 0.00-1.75 sec 249 MBytes 1.20 Gbits/sec 7122 sender
관련 링크
승인
Authors - Luis Catalán Hernández(OCI Cloud Network Specialist and Multi Cloud), Antonio Gamir(OCI Cloud Network Specialist)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer를 방문하십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Use Oracle Cloud Infrastructure Site-to-Site VPN service in HA mode with ECMP routing from Linux and Libreswan
F84216-01
July 2023
Copyright © 2023, Oracle and/or its affiliates.