Wisdom’s Cloud
[AWS] 2. Site-to-Site VPN을 사용하여 AWS와 IDC 간의 연결 (Openswan 활용) 본문
Site-to-Site VPN
- 기본적으로 Amazon VPC로 시작하는 인스턴스는 자체(원격) 네트워크와 통신할 수 없습니다. 하지만 Site-to-Site VPN 연결을 생성하고 연결을 통해 트래픽을 전달하도록 라우팅을 구성하면, VPC에서 원격 네트워크에 대한 액세스를 활성화할 수 있습니다.
실습
구성 아키텍처
인스턴스 생성 및 ping 테스트
고객 게이트웨이 생성
가상 프라이빗 게이트웨이 생성 및 연결
라우팅 구성
라우팅 전파 활성화는 Site-to-Site VPN 연결을 생성하기 전에 해야 합니다. 만약 생성하고 나서 라우팅 전파 활성화를 하면, 라우팅 테이블 설정이 변경되지 않으며 tunnel이 올라오지 않습니다.
Site-to-Site VPN 연결 생성
고객 게이트웨이 디바이스 구성
idc-cgw 인스턴스에 접속하여 Openswan을 설치하고, 다운로드 받은 구성 파일로 구성해 보겠습니다.
# Openswan 설치
sudo su -
yum install openswan
# /etc/sysctl.conf 파일에 내용 추가
vi /etc/sysctl.conf
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.eth0.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.ip_vti0.rp_filter = 0
net.ipv4.conf.eth0.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
# network 재시작
systemctl restart netwrok
# aws.conf 파일 생성 후, 다운로드한 구성 파일의 4번 내용 붙여넣기
# auth=esp는 반드시 주석 처리, leftsubnet은 idc-vpc의 CIDR, rightsubnet은 aws-vpc의 CIDR
vi /etc/ipsec.d/aws.conf
conn Tunnel1
authby=secret
auto=start
left=%defaultroute
leftid=18.235.74.130
right=3.37.137.92
type=tunnel
ikelifetime=8h
keylife=1h
phase2alg=aes128-sha1;modp1024
ike=aes128-sha1;modp1024
# auth=esp
keyingtries=%forever
keyexchange=ike
leftsubnet=10.0.0.0/16
rightsubnet=11.0.0.0/16
dpddelay=10
dpdtimeout=30
dpdaction=restart_by_peer
# aws.secrets 파일 생성 후, 다운로드한 구성 파일의 5번 내용 붙여넣기
vi /etc/ipsec.d/aws.secrets
18.235.74.130 3.37.137.92: PSK "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# ipsec(Openswan) 서비스 재시작
systemctl start ipsec.service
systemctl enable ipsec.service
systemctl status ipsec.service
# 터널 up 확인 => "Total IPsec connections: loaded 1, active 1"이 출력되면 성공
ipsec status
AWS에서는 VPN 생성 시 고가용성을 위해 터널을 2개 생성합니다. 실제 운영 환경에서 1개의 터널에 문제가 발생했을 때를 대비하려면, 나머지 1개의 터널도 연결하여 운영하는 것이 좋기 때문에 Tunnel 2도 구성해 보겠습니다.
# aws.conf 파일에서 Tunnel 2의 설정 추가 후, overlapip=yes 설정 추가
vi /etc/ipsec.d/aws.conf
conn Tunnel1
authby=secret
auto=start
left=%defaultroute
leftid=18.235.74.130
right=3.37.137.92
type=tunnel
ikelifetime=8h
keylife=1h
phase2alg=aes128-sha1;modp1024
ike=aes128-sha1;modp1024
# auth=esp
keyingtries=%forever
keyexchange=ike
leftsubnet=10.0.0.0/16
rightsubnet=11.0.0.0/16
dpddelay=10
dpdtimeout=30
dpdaction=restart_by_peer
overlapip=yes
conn Tunnel2
authby=secret
auto=start
left=%defaultroute
leftid=18.235.74.130
right=13.124.97.156
type=tunnel
ikelifetime=8h
keylife=1h
phase2alg=aes128-sha1;modp1024
ike=aes128-sha1;modp1024
# auth=esp
keyingtries=%forever
keyexchange=ike
leftsubnet=10.0.0.0/16
rightsubnet=11.0.0.0/16
dpddelay=10
dpdtimeout=30
dpdaction=restart_by_peer
overlapip=yes
# aws.secrets 파일에서 Tunnel 2의 설정 추가
vi /etc/ipsec.d/aws.secrets
18.235.74.130 3.37.137.92: PSK "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
18.235.74.130 13.124.97.156: PSK "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
# ipsec(Openswan) 서비스 재시작
systemctl restart ipsec.service
# 터널 up 확인 => "Total IPsec connections: loaded 2, active 2"이 출력되면 성공
ipsec status
ping 테스트
'AWS > VPN' 카테고리의 다른 글
[AWS] 1. Client VPN을 사용하여 Private Subnet EC2에 접속 (OpenVPN 활용) (0) | 2022.02.21 |
---|