카테고리 없음

AWS - VPN Gateway, GSLB(지리적 라우팅)

YunHyeong 2023. 5. 4. 15:01

1. VPN

- site(aws) to site(openstack) (S2S) = ipsec vpn

vpn vgw - vpn connection - customer gw : 터널링(2개), 

 

1.1. cgw 생성

- 고객사의 인터넷 ip를 넣어준다

- 이 실습에서 고객사를 Openstack Vm 서버라고 가정한다.

1.2. vgw

- vgw는 반드시 vpc에 연결을 해야한다.

- 복잡한 생성작업을 AWS에서 간소화 하였다.

- vpc 연결에서 vpc를 선택하고 연결 버튼을 누른다.

1.3. Site to Site 연결

- 라우팅 옵션은 정적으로 해야한다.

- 고정 IP 접두사: 고객사(Openstack)의 Private ip 주소를 입력한다.

 

1.4. 오픈스택 연결

yum install -y libreswan
systemctl enable --now ipsec

- MobaXterm을 활용해서 오픈스택 서버에 연결을 마친 후

- libreswan(vpn 터널링을 위한 툴)을 설치한다.

 

* vi /etc/sysctl.conf

- 밑에 세줄을 추가한다.

net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.accept_source_route = 0

 

마지막에 sysctl -p

 

 

* /etc/ipsec.d/aws.conf # conf 파일을 만들어서 터널을 생성한다.

conn Tunnel1
	authby=secret
	auto=start
	left=%defaultroute
	leftid=106.253.56.124
	right=3.36.139.130
	type=tunnel
	ikelifetime=8h
	keylife=1h
	phase2alg=aes128-sha1;modp1024
	ike=aes128-sha1;modp1024
	keyingtries=%forever
	keyexchange=ike
	leftsubnet=192.168.0.0/21
	rightsubnet=10.37.0.0/16
	dpddelay=10
	dpdtimeout=30
	dpdaction=restart_by_peer
	overlapip=yes

conn Tunnel2
	authby=secret
	auto=start
	left=%defaultroute
	leftid=106.253.56.124
	right=13.124.141.61
	type=tunnel
	ikelifetime=8h
	keylife=1h
	phase2alg=aes128-sha1;modp1024
	ike=aes128-sha1;modp1024
	keyingtries=%forever
	keyexchange=ike
	leftsubnet=192.168.0.0/21
	rightsubnet=10.37.0.0/16
	dpddelay=10
	dpdtimeout=30
	dpdaction=restart_by_peer
	overlapip=yes

left : Openstack이 들어가 있는 회사의 public ip

right : AWS 퍼블릭 ip(tunnel1에서는 그대로 놔둔다)

맨 아래 auth 부분 지우기

overlapip=yes 맨 아랫부분에 추가

leftsubnet : 오픈스택 네트워크

rightsubnet : AWS vpc ip 대역

conn Tunnel2는 모든 부분은 Tunnel1과 동일하지만 right 부분을 AWS 퍼블릭 ip로 변경한다.(conn Tunnel2에 적혀있음)

 

* vi /etc/ipsec.d/aws.secrets

- Tunnel1과 Tunnel2의 키를 aws.secrets 파일에 넣어준다.

- 마지막에 systemctl restart ipsec

- ipsec status 확인

 

- dbserver에 유동 ip 할당

 

 

* 오픈스택 router 셋팅

- 다음 홉 : openstack의 ip, vpn(libreswan)을 셋팅했기 때문에 길을 물으면 대상(AWS private)으로 가는 길을 알려준다.

 

- AWS Private subnet 라우팅 테이블을 셋팅해준다. 목적지(192.168.0.0/21)에 가려면 대상(vgw)에게 물어본다

- 하지만 이렇게 셋팅을 해도 ping test가 진행이 안될 수 있다.

- 이럴 때는, 오픈스택 터미널에서 iptables -F를 입력하여 오픈스택 자체의 방화벽을 해제 해주어야한다.

- 그리고 Db서버에서 ping test를 진행하면 정상적으로 연결된다.

 

2. GSLB(지리적 라우팅)

 

- 순식간에 상파울로 리전에서 web01, web02 인스턴스와 로드밸런서를 만들어 두 인스턴스를 대상그룹에 넣어준다.

 

- 레코드 생성시 다른 레코드 추가를 눌러서 서울과 남아메리카 레코드를 각각 생성한다

- 아시아에서 접속한 사람들은 서울로 가고

- 남아메리카에서 접속한 사람들은 상파울로로 간다.

2.1 test

- 상파울로 리전에 있는 인스턴스에 연결하여 curl 명령어를 활용해서 DNS 레코드를 입력해본다.

- 정상적으로 web02가 뜨는 것을 볼 수 있다.

- 또한, 강의장 PC(서울 리전) 브라우저에서 도메인을 입력했을 땐는 wordpress 사이트가 뜨는 걸 볼 수 있었다.