6.20

w0nyyy·2022년 6월 20일
0

오픈 스택 정전으로 인해 깨져서 재 설치함.
스냅샷 찍는 것을 잊지말자

메인 주제는 Hybrid 클라우드가 메인 주제이다.
총 6개의 제품을 사용해봤다는 걸 복습, 증거 남기려고임.

GSLB(Route53)

트래픽이 Route53 을 통과하는 것이 아님
경로를 지정만 해줌

https://aws.amazon.com/ko/blogs/korea/amazon-route-53-application-recovery-controller/

상태검사

Route53 - 상태검사 - 상태 검사 생성

호스팅 영역 클릭 - 레코드 생성 클릭

레코드 이름 : gslb
트래픽 라우팅 대상 : 서울리전 alb | 도쿄리전
라우팅 정책 : 장애 조치
장애 조치 레코드 유형 : 기본(active) | 보조(passive)
상태확인ID : active | passive

아래에 다른 레코드 추가 눌러서 도쿄리전도 추가함.

HAproxy를 개입시켰기에 가능함 .

https://gslb.wonyyy.shop/ 로 접속

블랙아웃, 장애 발생 시키기

서울에 장애를 발생시켜 도쿄로 붙게 하기
서울 HAproxy를 멈춰서

[ec2-user@ip-10-19-36-88 ~]$ sudo systemctl stop haproxy
[ec2-user@ip-10-19-36-88 ~]$ sudo systemctl status haproxy
● haproxy.service - HAProxy Load Balancer
   Loaded: loaded (/usr/lib/systemd/system/haproxy.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Mon 2022-06-20 02:34:17 UTC; 9s ago

https://gslb.wonyyy.shop/ 로 접속하면 서울 서버가 죽었음에도 정상 작동확인

서울 도메인으로 들어가면 502 badgateway가 뜨지만 도쿄 도메인으로 접속하면 정상적으로 접속된다. 따라서 도쿄리전으로 로드밸런싱이 된 것을 확인

도쿄 리전도 멈추고 서울리전 가동

[ec2-user@ip-10-19-36-88 ~]$ sudo systemctl start haproxy

VPN

https://www.alibabacloud.com/ko/knowledge/what-is-vpn

libre swan 설치해야함 오픈스택에

--- route53(GSLB 구현)
--- AWS VPN 연결(하이브리드 클라우드 구현)
--- AWS Storage Gateway(온프레미스 애플리케이션에 사실상 무제한의 클라우드 스토리지 액세스 제공)

--- AWS VPN 설정
고객게이트웨이
가상 프라이빗 게이트웨이

사이트 간 VPN 연결
정적 라우팅 192.168.0.0/21
로컬 IPv4 네트워크 CIDR
192.168.0.0/21
원격 IPv4 네트워크 CIDR
172.31.0.0/16
구성다운로드

라우팅 테이블
192.168.0.0/21	vgw-01841bd5f4180dcbb
172.31.0.0/16	local
0.0.0.0/0	igw-0615aa4e569769057
---
Libreswan은 "IPsec" 및 인터넷 키 교환 ( "IKE" ) 을 사용하여 가장 널리 지원되고 표준화된 VPN 프로토콜의 무료 소프트웨어 구현입니다 . 이러한 표준은 IETF ( Internet Engineering Task Force )에서 생성 및 유지 관리합니다.

dnf install -y libreswan
systemctl enable --now ipsec

# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1	// 리눅스를 라우터시스템으로 만드는 명령어
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

for vpn in /proc/sys/net/ipv4/conf/*;
do echo 0 > $vpn/accept_redirects;
echo 0 > $vpn/send_redirects;
done

sysctl -p

site-to-site VPN 연결 - 연결 생성 클릭

VP-GW 도 EFS 인스턴스와 닿아야한다.

// vpn에 접속하는 작업, 가용성을 높이기 위해 두개의 터널생성
# vi /etc/ipsec.d/aws.conf
conn Tunnel1
        authby=secret
        auto=start
        left=%defaultroute
	leftid=123.142.252.25
	right=13.125.101.180
        type=tunnel
        ikelifetime=8h
        keylife=1h
        phase2alg=aes128-sha1;modp1024
        ike=aes128-sha1;modp1024
        keyingtries=%forever
        keyexchange=ike
	leftsubnet=192.168.0.0/20	// 학원네트워크
	rightsubnet=10.19.0.0/16	// AWS 네트워크
        dpddelay=10
        dpdtimeout=30
        dpdaction=restart_by_peer
        overlapip=yes

conn Tunnel2
        authby=secret
        auto=start
        left=%defaultroute
	leftid=123.142.252.25
	right=52.78.151.252
        type=tunnel
        ikelifetime=8h
        keylife=1h
        phase2alg=aes128-sha1;modp1024
        ike=aes128-sha1;modp1024
        keyingtries=%forever
        keyexchange=ike
	leftsubnet=192.168.0.0/20	// 학원네트워크
	rightsubnet=10.19.0.0/16	// AWS 네트워크
        dpddelay=10
        dpdtimeout=30
        dpdaction=restart_by_peer
        overlapip=yes

# vi /etc/ipsec.d/aws.secrets
123.142.252.25 3.34.36.115: PSK "2m939K.KGiByiplD6DGUAsFEEmkApb10"
123.142.252.25 3.35.90.173: PSK "HjMIcLeAS_VgGVpXfEXtFW6sicPsbDNe"

systemctl restart ipsec


아래와 같이 AWS와 온 프레미스 환경이 통신 할 수 있다.
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport 172.31.6.162:/ efs
mysql -h 172.31.28.207 -u admin	-p

---
IKE란 ISAKMP와 IPSec에서 사용되는 키 관리 프로토콜이다. IKE는 상호 개체간에 인증된 보안
통신 채널을 생성한다.
이 과정을 수행하기 위해서는 상호간에 서로를 인증하고 필요한 키를 교환해야 한다. IKE를 통
한 협상 과정은 IKE 1단계(ISAKMP SA-Security Association)와 IKE 2단계(IPSec SA)로 구성된
다. 이렇게 두단계의 SA가 생성되면 두 개체간에 전송되는 패킷들은 IPSec을 통하여 암호화와
인증 기능을 보장받게 된다

---
# 연결 설정 기본값으로, 다른 connection에게 상속된다.
conn %default
	ikelifetime=1440m	# IKE Phase 1의 수명으로, 기본 1일.
	keylife=60m		# IKE Phase 2의 수명으로, 기본 1시간.
	rekeymargin=3m		# Phase 1 및 2의 SA 만료 전 n분에 SA 협상을 실행.
	authby=secret

# ASA 연결을 위한 connection 추가
conn ASA
	left=100.10.10.1		# SWAN의 외부 주소.
	leftsubnet=192.168.0.0/24	# SWAN 내부 네트워크.
	leftid=100.10.10.1		# SWAN의 식별자.
	right=100.10.10.2		# ASA의 외부 주소.
	rightsubnet=192.168.1.0/24	# ASA 내부 네트워크.
	rightid=100.10.10.2		# ASA의 식별자.
	auto=add			# SWAN 실행 시 해당 conn을 로드하고 연결 대기.
	ike=aes128-sha1-modp1536	# 보안 매개변수.
	esp=aes128-sha1			# 터널 모드이므로 esp.
	keyexchange=ikev2		# Phase 1에서 IKEv2 사용.

---

https://libreswan.org/man/ipsec.conf.5.html

퍼블릭 서브넷 rtb

프라이빗 서브넷 rtb

오픈스택 라우팅 테이블 세팅

seoul 인스턴스 mobaxterm 접속

오픈스택에서 iptables -F 해준뒤
오픈스택에서 systemctl restart ipsec 해준다.

오픈스택 인스턴스와 aws 인스턴스 끼리 ping 날려본다.
오픈스택 인스턴스 ip는 퍼블릭 ip로, aws 인스턴스는 프라이빗 ip로.

오픈스택 재설치

라우터 - 정적 경로에서

연결할 서버의 ip 대역과 라우터 앞단 정보를 넣으면 연결된다.

0개의 댓글