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 사이트가 뜨는 걸 볼 수 있었다.