주:
- 이 사용지침서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 예제 값을 사용합니다. 실습을 완료할 때 이러한 값을 클라우드 환경과 관련된 값으로 대체하십시오.
두 OCI 리전 간 정적 라우팅이 포함된 Oracle Cloud Infrastructure Site-to-Site VPN 설정
소개
애플리케이션, 데이터베이스 또는 서비스가 서로 다른 Oracle Cloud Infrastructure(OCI) 리전 또는 테넌트에 분산되어 있는 경우 해당 리전 간에 네트워크 통신을 활성화하는 데 선호되는 방법은 RPC(원격 피어링 연결) 피어링입니다. RPC 피어링이 불가능한 경우 OCI Site-to-Site VPN IPSec 연결을 설정할 수도 있습니다. OCI는 DRG(Dynamic Routing Gateway)를 사용한 OCI Site-to-Site VPN IPSec 생성을 직접 지원하지 않지만, 한쪽에서 커스터마이징 VPN 엔드포인트(예: Libreswan)를 구성하고 다른 쪽에서 DRG를 사용하여 이 연결을 설정할 수 있습니다.
온프레미스와 OCI 간에 OCI 사이트 간 VPN을 설정해야 하고 DRG를 VPN(가상 프라이빗 네트워크) 엔드포인트로 사용하지 않고 고유한 사용자정의 VPN 엔드포인트로 사용하지 않으려는 경우에도 이 방법을 사용할 수 있습니다.
목표
-
한쪽에는 Libreswan을 CPE(Customer Premises Equipment)로, 다른 쪽에는 DRG를 사용하여 두 OCI 리전 간에 정적 라우팅이 있는 OCI Site-to-Site VPN을 설정합니다.
두 개의 터널이 있는 IPSec VPN을 사용하여 두 개의 서로 다른 OCI 리전을 연결하고 ECMP(Equal Cost Multi-Path)를 활성화합니다. 한 OCI 리전에서 Libreswan 소프트웨어와 함께 CPE를 사용하고 다른 리전에서 DRG에 구성된 OCI Site-to-Site VPN을 사용합니다.
필요 조건
-
두 개의 OCI 리전을 생성합니다.
-
OCI Region 1(대상):
- VCN(가상 클라우드 네트워크)
- 프라이빗 서브넷
- DRG
- VCN 연결
- 인스턴스
이 영역에서는 DRG가 VPN 끝점이 되고 모든 트래픽이 DRG의 인터넷 연결을 사용하여 경로 지정됩니다.
-
OCI 리전 2(소스):
- VCN
- 퍼블릭 서브넷
- 인터넷 게이트웨이
- 인스턴스
이 지역에서는 Libreswan CPE(OCI 내부 인스턴스)가 VPN 엔드포인트가 되고 모든 트래픽은 인터넷 게이트웨이의 인터넷 연결을 사용하여 라우팅됩니다.
다음 그림은 지금까지 논의한 내용을 보여줍니다.
주: Libreswan CPE는 아직 이 이미지에 없습니다.
-
작업 1: 대상 OCI 리전(VCN, 서브넷, DRG, VCN 연결 및 인스턴스) 검토
이 작업에서 우리는 시작하기 위해 우리가 가지고있는 것을 확인할 것입니다.
-
VCN
-
대상 OCI 지역을 검토합니다. 이 자습서에서는 독일 중부(프랑크푸르트) OCI 리전입니다.
-
VCN, 서브넷 및 인스턴스를 검토합니다.
-
-
서브넷
-
인스턴스가 연결될 프라이빗 서브넷을 검토합니다.
-
-
DRG
-
VPN 엔드포인트로 사용될 DRG를 검토하여 VPN을 종료합니다.
-
-
VCN 연결
-
Review the VCN attachment, to make sure the VCN is attached to the DRG so that the DRG can route VPN traffic to the correct VCN, subnet, and instance.
-
-
인스턴스
-
네트워크 테스트를 수행하기 위해 네트워크 끝점으로 사용할 인스턴스를 검토합니다.
-
다음 그림은 우리가 지금까지 만든 것을 보여줍니다.
작업 2: 소스 OCI 리전(VCN, 공용(public) 서브넷, 인터넷 게이트웨이 및 인스턴스) 검토
-
VCN
-
소스 OCI 영역을 검토합니다. 이 자습서에서는 네덜란드 북서부(암스테르담) OCI 리전입니다.
-
VCN, 서브넷 및 인스턴스를 검토합니다.
-
-
퍼블릭 서브넷
-
인스턴스 및 Libreswan VPN 끝점이 연결될 퍼블릭 서브넷을 검토합니다.
-
VCN의 기본 경로 테이블을 검토합니다.
참고: Libreswan VPN 끝점이 다른 쪽과의 VPN 연결을 설정하기 위해 인터넷과 통신할 수 있는지 확인해야 하므로 여기에 공용 서브넷이 있어야 합니다.
-
-
인터넷 게이트웨이
-
인터넷 연결을 허용하도록 인터넷 게이트웨이 검토
-
VCN의 기본 경로 테이블을 검토합니다.
-
-
경로 지정 테이블
-
VCN 라우트 테이블을 검토하고 모든 트래픽이 인터넷 게이트웨이로 라우팅되는지 확인합니다.
-
-
인스턴스
-
네트워크 테스트 수행을 위해 네트워크 끝점으로 사용할 인스턴스를 검토합니다.
-
CLIENT 및 CPE의 경우 Oracle Linux 8을 기본 운영체제로 사용했습니다.
-
다음 그림은 우리가 지금까지 만든 것을 보여줍니다.
작업 3: 소스 OCI 영역에서 CPE 인스턴스의 공용(public) IP 주소 수집
-
OCI 콘솔로 이동합니다.
-
소스 OCI 리전에서는 VPN 종료(VPN 엔드포인트)를 담당할 인스턴스를 배포했습니다.
-
이 VPN 끝점에 구성된 퍼블릭 IP 주소를 수집합니다. 이 자습서에서는 이 공용 IP 주소가 143부터 시작됩니다.
-
-
다음 그림은 우리가 지금까지 만든 것을 보여줍니다.
작업 4: 대상 OCI 리전에서 새 CPE 생성
-
OCI 콘솔로 이동하여 네트워킹, 고객 연결, 동적 경로 지정 게이트웨이로 이동하고 DRG를 누릅니다.
- 고객 구내 장비를 누릅니다.
- CPE 생성(Create CPE)을 누릅니다.
-
다음 정보를 입력합니다.
- 이름: CPE의 이름을 입력합니다.
- 공용 IP 주소: 작업 3에서 수집된 공용 IP 주소를 입력합니다.
- 공급자: Libreswan을 선택합니다.
- 플랫폼/버전: CPE 플랫폼 버전을 선택합니다.
- CPE 생성(Create CPE)을 누릅니다.
- 이제 CPE가 생성됩니다.
- CPE의 공용 IP 주소를 확인합니다.
작업 5: 대상 OCI 리전에서 OCI 사이트 간 VPN 구성
-
OCI 콘솔로 이동합니다.
- 사이트 간 VPN을 누릅니다.
- Click Create IPSec connection.
-
IPSec 접속 생성 페이지에서 다음 정보를 입력합니다.
- 이름: IPSec 연결에 대한 이름을 입력합니다.
- 고객 구내 장비: 태스크 4에서 생성된 CPE를 선택합니다.
- 동적 경로 지정 게이트웨이: DRG를 선택합니다.
- 온프레미스 네트워크에 대한 경로 지정: IPSec 연결을 통해 경로 지정하려는 원격 네트워크를 입력합니다. 이 자습서에서는
10.222.10.0/24
네트워크입니다. - 페이지 아래로 이동합니다.
- 이름: 첫번째 터널의 이름을 입력합니다.
- IKE 버전: IKEv1가 될 IKE 버전을 입력합니다.
- 경로 지정 유형: 정적 경로 지정을 선택합니다.
- 페이지 아래로 이동합니다.
- 이름: 두번째 터널의 이름을 입력합니다.
- IKE 버전: IKEv1가 될 IKE 버전을 입력합니다.
- 경로 지정 유형: 정적 경로 지정을 선택합니다.
- Click Create IPSec connection.
작업 6: 대상 OCI 리전에서 IPSec 터널의 공용 IP 주소를 수집하고 CPE 구성을 다운로드합니다.
-
IPSec 연결이 생성되고, 두 IPSec 터널에 대한 공용 IP 주소를 사용할 수 있으며, VPN의 반대쪽을 구성해야 합니다.
-
작업 5에서 만든 사이트 간 VPN을 누릅니다.
- IPSec 연결의 터널 1에 유의하십시오.
- 터널 1의 공용 IP 주소를 기록해 둡니다. 이 자습서에서는 이 IP 주소가 193으로 시작합니다.
- IPSec 연결의 Tunnel 2를 참조하십시오.
- 터널 2에 대한 공용 IP 주소를 기록해 둡니다. 이 자습서에서는 이 IP 주소가 130으로 시작합니다.
-
다음 그림은 우리가 지금까지 만든 것을 보여줍니다.
작업 7: 소스 OCI 지역에서 CPE 인스턴스 구성 및 Libreswan 설치 및 구성
-
CPE 인스턴스를 구성합니다.
- 소스 OCI 지역 또는 VCN에 있는 CPE에 대한 SSH 세션을 설정합니다.
- 로그인되어 있는지 확인합니다.
-
다음 명령을 실행하여 소프트웨어를 업그레이드합니다.
[opc@cpe ~]$ sudo dnf upgrade -y
-
업그레이드가 성공적으로 완료되었는지 확인합니다.
-
다음 명령을 실행하여 더 높은 권한이 필요한 명령을 실행합니다.
[opc@cpe ~] sudo su
-
Libreswan 소프트웨어를 설치하려면 다음 명령을 실행하십시오.
[root@cpe opc]# sudo yum install libreswan -y
-
소프트웨어가 성공적으로 설치되었음을 알 수 있습니다.
-
-
다음 파일을 편집하여 IP 전달을 사용으로 설정합니다.
[root@cpe etc]# nano /etc/sysctl.conf
-
/etc/sysctl.conf
파일에 다음 콘텐츠가 포함되어 있는지 확인합니다.kernel.unknown_nmi_panic = 1 net.ipv4.ip_forward = 1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.ens3.send_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.ens3.accept_redirects = 0
-
Ctrl + X
를 사용하여 파일을 저장하고Y
를 입력합니다.-
다음 명령을 실행하여 파일의 내용을 확인합니다.
[root@cpe opc]# more /etc/sysctl.conf
-
출력은 파일의 내용과 동일합니다.
-
-
다음 명령을 실행하여 파일을 다시 로드하고 적용하여 전달을 사용으로 설정합니다.
[root@cpe etc]# sudo sysctl -p
-
다음 명령을 실행하여 IP 전달이 사용으로 설정되었는지 확인합니다.
cat /proc/sys/net/ipv4/ip_forward
-
반환된 값 ID는
1
입니다. 즉, IP 전달이 사용으로 설정되고0
는 IP 전달이 사용 안함으로 설정되었음을 의미합니다.
-
다음 명령을 실행하여 IPSec 터널을 구성해야 하는 디렉토리를 변경합니다.
[root@cpe opc]# cd /etc/ipsec.d/
-
터널 1에서 첫번째 IPSec 터널을 구성하도록 다음 파일(
tunnel1.conf
)을 만들고 편집합니다.[root@cpe ipsec.d]# nano /etc/ipsec.d/tunnel1.conf
-
-
/etc/ipsec.d/tunnel1.conf
파일에 다음 콘텐츠가 포함되어 있는지 확인합니다.conn tunnel1 keyexchange=ike pfs=yes ikev2=no ike=aes256-sha2_256;modp1536 phase2alg=aes256-sha1;modp1536 left=10.222.10.70 leftid=143.xxx.xxx.xxx right=193.xxx.xxx.xxx rightid= 193.xxx.xxx.xxx authby=secret leftsubnet=0.0.0.0/0 rightsubnet=0.0.0.0/0 auto=start mark=5/0xffffffff vti-interface=vti1 vti-routing=no encapsulation=auto ikelifetime=28800s
-
Ctrl + X
를 사용하여 파일을 저장하고Y
를 입력합니다. -
다음 파일(
tunnel2.conf
)을 만들고 편집하여tunnel2
에서 두번째 IPSec 터널을 구성합니다.[root@cpe ipsec.d]# nano /etc/ipsec.d/tunnel2.conf
-
/etc/ipsec.d/tunnel2.conf
파일에 다음 콘텐츠가 포함되어 있는지 확인합니다.conn tunnel2 keyexchange=ike pfs=yes ikev2=no ike=aes256-sha2_256;modp1536 phase2alg=aes256-sha1;modp1536 left=10.222.10.70 leftid=143.xxx.xxx.xxx right=130.xxx.xxx.xxx rightid=130.xxx.xxx.xxx authby=secret leftsubnet=0.0.0.0/0 rightsubnet=0.0.0.0/0 auto=start mark=6/0xffffffff vti-interface=vti2 vti-routing=no encapsulation=auto ikelifetime=28800s
-
Ctrl + X
로 파일을 저장하고Y
를 입력합니다.-
다음 명령을 실행하여
tunnel1
에 대한 파일 내용을 확인합니다.[root@cpe ipsec.d]# more /etc/ipsec.d/tunnel1.conf
-
출력은 파일의 내용과 동일합니다.
-
다음 명령을 실행하여
tunnel2
에 대한 파일 내용을 확인합니다.[root@cpe ipsec.d]# more /etc/ipsec.d/tunnel2.conf
-
출력은 파일의 내용과 동일합니다.
-
-
IPSec 터널을 구성했습니다. 이제 인증에 보안 키를 사용할 때 공유 암호도 구성해야 합니다.
태스크 5에서 OCI 사이트 간 VPN을 생성하면 터널이 생성되고 이 프로세스에서 OCI는 터널당 공유 보안 키도 생성했습니다. 동일한 공유 암호에 맞게 Libreswan에서 가져오고 구성하려면 OCI 콘솔로 돌아가야 합니다.
- OCI 콘솔로 이동하여 네트워킹, 고객 연결, 사이트 간 VPN으로 이동하고 구성된 VPN을 누릅니다.
- 첫번째 터널 구성을 누릅니다.
-
공유 암호를 가져오려면 표시를 누릅니다.
- 터널 1에 대한 공유 암호를 복사하고 메모장에 저장하여 나중에 액세스합니다.
- 닫기를 누르면
- OCI 콘솔로 이동하여 네트워킹, 고객 연결, 사이트 간 VPN으로 이동하고 구성된 VPN을 누릅니다.
- 두번째 터널 구성을 누릅니다.
-
공유 암호를 가져오려면 표시를 누릅니다.
- 터널 2에 대한 공유 암호를 복사하고 메모장에 저장하여 나중에 액세스합니다.
- 닫기를 누르면
-
Libreswan에서 공유 암호를 구성합니다. 다음 파일(
shared.secrets
)을 만들고 편집하여 두 터널에 대한 공유 암호를 구성합니다.[root@cpe ipsec.d]# nano /etc/ipsec.d/shared.secrets
-
/etc/ipsec.d/shared.secrets
파일에 다음 콘텐츠가 포함되어 있는지 확인합니다.143.xxx.xxx.xxx 193.xxx.xxx.xxx : PSK "1blwzMdgQ5XXXoiQwF96tqc7c7" 143.xxx.xxx.xxx 130.xxx.xxx.xxx : PSK "npLt23Ym6E1XXXhr5egvYSuzKC"
- 다음 명령을 실행하여 파일의 내용을 확인합니다.
- 출력은 파일의 내용과 동일합니다.
[root@cpe ipsec.d]# more /etc/ipsec.d/shared.secrets
-
다음 명령을 실행하여 Libreswan에서 IPSec 서비스를 시작합니다. 이것은 아직 터널을 만들지 않을 것입니다.
[root@cpe ipsec.d]# ipsec start
-
다음 명령을 실행하여 IPSec 연결의 상태를 확인합니다.
[root@cpe ipsec.d]# ipsec verify
-
확인 작업은 오류 없이 정상적으로 수행됩니다.
-
작업 8: 소스 OCI 리전의 CPE 인스턴스에서 방화벽을 열고 VCN 및 서브넷 보안 목록 구성
IPSec 접속에 필요한 수신 포트를 허용하도록 VCN 및 서브넷 보안 목록을 구성합니다. 터널을 올바르게 설정하려면 양측의 네트워크 보안이 필요한 포트를 허용하는지 확인해야 합니다.
-
Libreswan을 CPE로 호스팅하는 소스 OCI 리전부터 시작하세요.
- OCI 콘솔로 이동하여 네트워킹, 가상 클라우드 네트워크로 이동하고 VCN을 선택한 다음 보안 목록을 누릅니다.
- 기본 보안 목록을 선택합니다.
- 페이지 아래로 이동합니다.
-
다음 수신 보안 규칙을 추가했는지 확인하십시오.
소스 IP 프로토콜 소스 포트 대상 포트 0.0.0.0/0 UDP 모두 500 0.0.0.0/0 UDP 모두 4500 -
Libreswan CPE에서 방화벽 포트를 엽니다.
-
다음 명령을 실행하여 구성된 기존 방화벽 규칙을 검토합니다.
[root@cpe ipsec.d]# sudo firewall-cmd --list-all
-
IPSec 포트와 관련하여 구성된 규칙이 없습니다.
-
다음 명령을 실행하여 CPE에서 UDP 포트
500
을 허용합니다.[root@cpe ipsec.d]# sudo firewall-cmd --add-port=500/udp
-
다음 명령을 실행하여 CPE에서 UDP 포트
4500
을 허용합니다.[root@cpe ipsec.d]# sudo firewall-cmd --add-port=4500/udp
-
다음 명령을 실행하여 재부트 후에도 방화벽 규칙이 유지되도록 영구 방화벽 규칙을 만듭니다.
[root@cpe ipsec.d]# sudo firewall-cmd --runtime-to-permanent
-
다음 명령을 실행하여 구성된 기존 방화벽 규칙을 검토합니다.
[root@cpe ipsec.d]# sudo firewall-cmd --list-all
-
IPSec 포트와 관련하여 구성된 규칙이 없습니다.
-
다음 명령을 실행하여 Libreswan에 대한 방화벽 서비스가 실행 중인지 확인합니다.
[root@cpe ipsec.d]# systemctl status firewalld
-
방화벽 서비스는 활성 상태이며 실행 중입니다.
-
-
다음 명령을 실행하여 IPSec 서비스를 다시 시작합니다.
[root@cpe ipsec.d]# service ipsec restart
CPE에서 Linux 방화벽 사용 안함
경우에 따라(테스트 목적으로) Libreswan이 실행 중인 CPE 인스턴스의 Linux 방화벽을 완전히 사용 안함으로 설정하는 것이 좋습니다. 이 작업은 다음 명령을 사용하여 수행할 수 있습니다.
[root@cpe ipsec.d]# systemctl disable --now firewalld
다음 명령을 실행하여 Libreswan에 대한 방화벽 서비스가 실행 중이 아닌지 확인합니다.
[root@cpe ipsec.d]# systemctl status firewalld
작업 9: IPSec 터널이 양쪽에 작동하는지 활성화하고 확인합니다.
-
다음 명령을 실행하여 두 터널에 대한 IPSec 상태를 확인합니다.
[root@cpe ipsec.d]# ipsec status
- 첫번째 IPSec 터널의 구성 및 상태를 확인합니다.
- 두번째 IPSec 터널의 구성 및 상태를 확인합니다.
- 로드된 IPSec 수는 2이고 활성 번호는 0입니다.
-
다음 명령을 실행하여
tunnel1
를 추가합니다.[root@cpe ipsec.d]# ipsec auto --add tunnel1
-
tunnel1
가 추가될 때 터미널에서 제공되는 출력을 확인합니다.002 "tunnel1": terminating SAs using this connection 002 "tunnel1" #3: deleting state (STATE_QUICK_I2) aged 3.504567s and sending notification 005 "tunnel1" #3: ESP traffic information: in=0B out=0B 002 "tunnel1" #1: deleting state (STATE_MAIN_I4) aged 3.541172s and sending notification 002 "tunnel1": added IKEv1 connection
-
다음 명령을 실행하여
tunnel1
를 실행합니다.[root@cpe ipsec.d]# ipsec auto --up tunnel1
-
tunnel1
를 가져올 때 터미널에서 제공하는 출력을 확인합니다.002 "tunnel1" #5: initiating IKEv1 Main Mode connection 102 "tunnel1" #5: sent Main Mode request 104 "tunnel1" #5: sent Main Mode I2 106 "tunnel1" #5: sent Main Mode I3 002 "tunnel1" #5: Peer ID is ID_IPV4_ADDR: '193.122.0.91' 004 "tunnel1" #5: IKE SA established {auth=PRESHARED_KEY cipher=AES_CBC_256 integ=HMAC_SHA2_256 group=MODP1536} 002 "tunnel1" #6: initiating Quick Mode IKEv1+PSK+ENCRYPT+TUNNEL+PFS+UP+IKE_FRAG_ALLOW+ESN_NO+ESN_YES {using isakmp#5 msgid:b6364de1 proposal=AES_CBC_256-HMAC_SHA1_96-MODP1536 pfsgroup=MODP1536} 115 "tunnel1" #6: sent Quick Mode request 002 "tunnel1" #6: up-client output: vti interface "vti1" already exists with conflicting setting (perhaps need vti-sharing=yes ? 002 "tunnel1" #6: prepare-client output: vti interface "vti1" already exists with conflicting setting (perhaps need vti-sharing=yes ? 004 "tunnel1" #6: IPsec SA established tunnel mode {ESPinUDP=>0x5036cdcc <0x33c964f9 xfrm=AES_CBC_256-HMAC_SHA1_96 NATD=193.122.0.91:4500 DPD=passive}
-
다음 명령을 실행하여
tunnel2
를 추가합니다.[root@cpe ipsec.d]# ipsec auto --add tunnel2
-
tunnel2
가 추가될 때 터미널에서 제공되는 출력을 확인합니다.002 "tunnel2": terminating SAs using this connection 002 "tunnel2" #4: deleting state (STATE_QUICK_I2) aged 25.694856s and sending notification 005 "tunnel2" #4: ESP traffic information: in=0B out=0B 002 "tunnel2" #2: deleting state (STATE_MAIN_I4) aged 25.731704s and sending notification 002 "tunnel2": added IKEv1 connection
-
다음 명령을 실행하여
tunnel2
를 실행합니다.[root@cpe ipsec.d]# ipsec auto --up tunnel2
-
tunnel2
를 가져올 때 터미널에서 제공하는 출력을 확인합니다.002 "tunnel2" #7: initiating IKEv1 Main Mode connection 102 "tunnel2" #7: sent Main Mode request 104 "tunnel2" #7: sent Main Mode I2 106 "tunnel2" #7: sent Main Mode I3 002 "tunnel2" #7: Peer ID is ID_IPV4_ADDR: '130.61.66.255' 004 "tunnel2" #7: IKE SA established {auth=PRESHARED_KEY cipher=AES_CBC_256 integ=HMAC_SHA2_256 group=MODP1536} 002 "tunnel2" #8: initiating Quick Mode IKEv1+PSK+ENCRYPT+TUNNEL+PFS+UP+IKE_FRAG_ALLOW+ESN_NO+ESN_YES {using isakmp#7 msgid:aeb4eb18 proposal=AES_CBC_256-HMAC_SHA1_96-MODP1536 pfsgroup=MODP1536} 115 "tunnel2" #8: sent Quick Mode request 002 "tunnel2" #8: up-client output: vti interface "vti2" already exists with conflicting setting (perhaps need vti-sharing=yes ? 002 "tunnel2" #8: prepare-client output: vti interface "vti2" already exists with conflicting setting (perhaps need vti-sharing=yes ? 004 "tunnel2" #8: IPsec SA established tunnel mode {ESPinUDP=>0x8bef7076 <0xe27d84a0 xfrm=AES_CBC_256-HMAC_SHA1_96 NATD=130.61.66.255:4500 DPD=passive} [root@cpe ipsec.d]#
-
다음 명령을 실행하여 두 터널에 대한 IPSec 상태를 확인합니다.
[root@cpe ipsec.d]# ipsec status
-
활성 터널은 0에서 2로 바뀌었습니다.
-
OCI 콘솔의 대상측으로 이동하여 확인합니다.
- OCI 콘솔로 이동하여 네트워킹, 고객 연결 및 사이트 간 VPN으로 이동합니다.
- VPN 연결을 클릭합니다.
-
터널 1 및 터널 2는 모두 사용 가능 및 작동입니다.
-
다음 그림은 우리가 지금까지 만든 것을 보여줍니다.
작업 10: 정적 경로 지정 구성
-
터널이 작동 중입니다. 이제 필요한 트래픽이 터널을 통과하는지 확인해야 합니다.
-
다음 명령을 실행하여 구성된 터널 인터페이스를 검토합니다.
[root@cpe ipsec.d]# ifconfig
-
vti1는 터널 1을 담당합니다.
-
vti2는 터널 2를 담당합니다.
-
-
다음 명령을 실행하여 vti1 및 vti2 인터페이스를 통해
172.16.0.0/16
네트워크의 경로를 지정합니다.[root@cpe ipsec.d]# ip route add 172.16.0.0/16 nexthop dev vti1 weight 1 nexthop dev vti2 weight 1
-
다음 명령을 실행하여 경로가 추가되었는지 확인합니다.
[root@cpe ipsec.d]# ip route
-
경로가 추가되었음을 알 수 있습니다.
-
작업 11: 소스 및 대상 인스턴스에서 최종 핑 시작
-
소스에서 최종 핑을 시작합니다.
-
소스(CPE)에서 다음 명령을 실행하여 핑이 소스 OCI 리전에서 대상 OCI 리전으로 작동하는지 확인합니다.
[root@cpe ipsec.d]# ping 172.16.1.93 -c 4
-
0% 패킷 손실이 있습니다.
-
-
다음 그림은 우리가 지금까지 만든 것을 보여줍니다.
-
대상에서 최종 핑을 시작합니다.
-
대상에서 다음 명령을 실행하여 핑이 대상 OCI 리전에서 소스 OCI 리전(CPE)으로 작동하는지 확인합니다.
[opc@ih-instance-vcn-a ~]$ ping 10.222.10.70 -c 4
-
0% 패킷 손실이 있습니다.
-
-
다음 그림은 우리가 지금까지 만든 것을 보여줍니다.
소스 OCI 리전의 동일한 서브넷에 있는 다른 인스턴스에서 터널을 통과하는 모든 트래픽을 라우팅하려면 VCN 라우트 테이블에 정적 라우트를 추가해야 합니다. 이 경로는
172.16.0.0/24
로 향하는 모든 트래픽을 CPE10.222.10.70
로 경로 지정합니다. -
다음 그림은 전체 경로 테이블을 사용하여 지금까지 작성한 내용을 보여줍니다.
-
전용 IP 주소(Libreswan CPE)에 대한 경로를 추가하려면 먼저 인스턴스(Libreswan CPE) vNIC에서 소스/대상 검사 건너뛰기를 사용으로 설정해야 합니다.
- 컴퓨트 및 인스턴스로 이동합니다.
- CPE를 선택합니다.
- 페이지 아래로 이동합니다.
- Attached VNICs(연결된 VNIC)를 누릅니다.
- 세 개의 점을 클릭합니다.
- Edit VNIC(VNIC 편집)를 누릅니다.
- 소스/대상 검사 건너뛰기를 선택합니다.
- 변경사항 저장를 누릅니다.
-
경로를 추가합니다.
- 네트워킹, 가상 클라우드 네트워크로 이동하고 VCN을 선택한 다음 경로 테이블을 누릅니다.
- 기본 라우트 테이블을 선택합니다.
- 대상
172.16.0.0/16
에 대한 경로 규칙을 대상 유형과 함께 개인 IP로 추가하고 대상을10.222.10.70
(Libreswan CPE)로 추가합니다.
-
다음 명령을 실행하여 CLIENT의 IP 주소를 확인합니다.
[opc@client ~]$ ip a
-
CLIENT의 IP 주소는
10.222.10.19
입니다. -
소스(CLIENT)에서 다음 명령을 실행하여 핑이 소스 OCI 리전에서 대상 OCI 리전으로 작동하는지 확인합니다.
[opc@client ~]$ ping 172.16.1.93 -c 4
-
0% 패킷 손실이 있습니다.
-
다음 그림은 우리가 지금까지 만든 것을 보여줍니다.
-
대상에서 다음 명령을 실행하여 핑이 대상 OCI 리전에서 소스 OCI 리전(CLIENT)으로 작동하는지 확인합니다.
[opc@ih-instance-vcn-a ~]$ ping 10.222.10.19 -c 4
-
0% 패킷 손실이 있습니다.
-
-
다음 그림은 우리가 지금까지 만든 것을 보여줍니다.
작업 12: OCI 사이트 간 VPN 상태 확인
-
VPN 터널이 작동하고 트래픽이 흐르며 터널별로 OCI의 대시보드를 확인할 수 있습니다.
- OCI 콘솔, 네트워킹, 고객 연결로 이동하고 사이트 간 VPN을 누릅니다.
- VPN 연결을 클릭합니다.
-
첫번째 터널 구성을 누릅니다.
-
페이지 아래로 이동합니다.
- IPSec 터널 상태 그래프는 터널이 작동 중임을 나타내는 1에 계속 표시됩니다.
- 페이지 아래로 이동합니다.
- 이 터널에서 수신된 패킷은 소스에서 전송된 핑 패킷 수에 해당하는 4입니다.
- 이 터널에서 전송된 패킷은 대상에서 전송된 핑 패킷 수에 해당하는 4입니다.
- 소스에서 수신된 바이트 수를 확인합니다.
- 대상에서 보낸 바이트 수를 기록해 둡니다.
작업 13: ECMP(Equal Cost Multi-Path) 라우팅 활성화
-
기본적으로 트래픽은 항상 하나의 터널 인터페이스(vti)를 사용하여 전송됩니다. 트래픽 전달에 두 터널을 모두 사용하려면 양쪽에서 ECMP 경로 지정을 사용으로 설정해야 합니다.
Libreswan CPE에서 다음 명령을 실행합니다.
[root@cpe ipsec.d]# sysctl -w net.ipv4.fib_multipath_hash_policy=1
-
다음 그림은 우리가 지금까지 만든 것을 보여줍니다.
-
대상 OCI 리전에서 OCI 콘솔로 이동하여 네트워킹, 고객 연결, 동적 경로 지정 게이트웨이로 이동하고, DRG, DRG 경로 테이블 세부정보를 선택하고, 경로 지정을 담당하는 DRG 경로 테이블을 선택합니다.
-
모든 경로 규칙 가져오기를 누릅니다.
10.222.10.0/24
네트워크에 사용할 수 있는 두 개의 경로가 있습니다.10.222.10.0/24
에 대한 한 경로 규칙은 충돌로 표시되고 다른 규칙은 활성으로 표시됩니다.- 닫기를 누르면
-
편집을 누릅니다.
- Enable ECMP를 선택합니다.
- 변경사항 저장를 누릅니다.
-
모든 경로 규칙 가져오기를 누릅니다.
-
이제
10.222.10.0/24
에 대한 두 경로 규칙이 활성으로 표시됩니다. -
다음 그림은 우리가 지금까지 만든 것을 보여줍니다.
관련 링크
승인
- 작성자 - Iwan Hoogendoorn(OCI 네트워크 전문가)
추가 학습 자원
docs.oracle.com/learn에서 다른 랩을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Set up an Oracle Cloud Infrastructure Site-to-Site VPN with Static Routing Between two OCI Regions
G14523-02
Copyright ©2025, Oracle and/or its affiliates.