Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Study_note

[AWS] site to site VPN, 비대칭 라우팅 본문

AWS

[AWS] site to site VPN, 비대칭 라우팅

Study_note 2022. 9. 20. 10:30

site to site VPN이란?

두 개의 네트워크 도메인이 가상의 사설 네트워크 연결을 사용하여 프라이빗 통신을 제공하며 AWS에서 제공하는 Site-to-Site VPN은 표준 IPSec VPN만 지원한다.
AWS에서 관리형 서비스로 제공하는 AWS S2S VPN은 기본적으로 고가용성 아키텍처를 제공한다. 

 

VGW의 2개의 Endpoint(Tunnel1, Tunnel2)를 동시에 VPN 터널을 맺을 수 있다.

VPN은 99.95%로 한달 5분 2초는  비활성 될 수 있기 때문에 아래처럼 터널 이중화 구성을 권장 한다.

운영환경에서는 active/stanby 형식으로 가동하여 가용성을 향상 시킨다

 

평상시 통신

터널2는 stanby 상태로 사용하지 않고 터널1을 통해서 통신한다.

 

장애 발생 시

터널 1 다운 터널 2는 active 상태로 변환

 

failover 후 복원 시

터널2는 stanby 상태로 돌아가고 다시 터널1을 통해서 통신한다.

 

여기서 문제점이 비대칭 환경이다

그림과 같이 패킷이 하나의 터널로 in/out 되지 않는 경우가 있다

vgw에서 as_path 우선수위가 터널 1을 가리키는데 idc 환경에 bgp의 우선순위는 터널 2를 가리키면 발생

active/stanby 상황인 경우 패킷은 터널을 못찾고 사라짐

 

 

비대칭 라우팅

비대칭 라우팅은 A에서 B로 가는 패킷이 B에서 A로 가는 패킷과 다른 경로를 따르는 상황입니다. 비대칭 라우팅은 bgp 에서 매우 일반적이며 완전히 회피하는 것은 불가능하다

 

BGP 경로 정보 우선순위

BGP 의 경우 많은 알고리즘에 따라 우선순위를 바꿀수 있는데

aws의 라우팅 테이블에서는  AS_PATH 경로 길이를 1순위 다음으로 med 값으로 우선 순위할당한다.

 

AS_PATH 경로 길이가 여러 개(긴 것)보다는 짧은 개 더 우선

MED(multi-exit discriminator) 값이 낮은 쪽 을 더 우선

 

비대칭 라우팅 발생 시 해결

1. 2개의 터널을 전부 active/active 환경으로 변환 후 idc에서 비대칭 라우팅콜 허용하면 가능 하다.

2. 비대칭 라우팅을 허용하지 않는 디바이스 경우 active 터널 경로의 bgp 네이버 설정해준다.

    하나의 터널을 다른 터널보다 선호하도록 AS-path-prepending 및 Local-Preference를 사용합니다.

    AS-path-prepending : AS-PATH 속성의 길이를 인위적으로 늘려 경로의 우선 순위를 낮추는 데 사용되는 기술

    Local-Preference : 로컬 AS로부터 AS 외부로 나가는 트래픽 제어

 

VPN 가용성 향상

기존은 하나의 CGW,VGW를 사용하여 2개의 터널로 연결된 형태

 

터널이 아닌 GGW자체가 다운됐을 수 있기 때문에 가용성 생각해서 이중화를 시켜줘야한다

 

아래처럼 고객 게이트웨이 디바이스가 클러스터링(2대의 디바이스지만 논리적으로는 하나의 장비) 기능을 지원하면 2개의 터널만 사용해도 가용성이 향상된다

클러스터링 기능을 미지원하는 디바이스 경우 CGW자체를 하나 더 생성하고 2개의 터널을추가하여 총 4개의 터널을 생성시켜준다. 

이런 구조면 하나의 CGW가 다운되어도 나머지 CGW가 살아 있기 때문에 가용성이 향상된다.

* VPN 경우 VPC 하나당 하나의 VPN만 생성 가능

 

 

---------------------------

아래 부분은 취업 전 깔짝 건든여서 정확하지 않을 가능성 있다.

 

실습

양쪽에 vpc생성들은 생략한다

 

site to site vpn는 총 5단계로 아래와 같은 순서로 생성하면 된다

vgw 생성 - vgw-vpc 연결 - cgw 생성 - vpn 연결 - 경로 생성 - 경로 전파

 

우선 vgw를 생성하기 위해

vpc - vpn(가상 프라이빗 네트워크) - 가상 프라이빗 게이트웨이 - 가상 프라이빗 게이트웨이 생성 순서로 이동해준다

 

가상 프라이빗 게이트웨이에 이름은 자기가 구분 가능하게 지정해준다

또한 asn bgp 사용시 as 넘버로 기본 값을 선택하고 생성한다 

생성이 끝났다면  아래와 같이 작업 - vpc에 연결을 선택해서 해당 vpn이 있을 vpc를 선택해준다.

다음으로 고객 게이트웨이를 생성하는 순서로

vpc - vpn(가상 프라이빗 네트워크) - 고객 게이트웨이 - 고객 게이트웨이 생성 순서로 이동해준다 

이동을 하면 아래와 같은 창이 나오는데 이름은 원하는 데로 지정하고

ip는 고객 게이트웨이가 될 서버에 퍼블릭 ip로 지정 후 생성하면 된다

다음으로 생성한 고객 게이트웨이와 가상 게이트웨이를 연결시켜준다

사이트 간 vpn연결 - vpn 연결 생성 순서로 이동

이동 후 생성했던 고객 게이트웨이와 가상 게이트웨이를 연결시켜주고 라우팅 옵션을 정적으로 바꿔준 후 ip의 접두사를 고객 게이트웨이가 있는 서브넷으로 지정해준다

아래로 내려가면 터널 옵션이 있는데 여기서는 사전 공유 키를 설정할 수 있다.

사전 공유키를 설정하고 생성하면 된다

마지막으로 고객 게이트웨이에 있는 고객 게이트웨이와 그 연결한 vpc에 있는 라우팅 테이블관 통신하기 위해

라우팅 전파 편집을 해준다

라우팅 테이블 - 통신할 라우팅 테이블 클릭 - 라우팅 전파 - 라우팅 전파 편집 후 활성화시켜주면 된다.

 

idc라고 가정한 vpc에 프라이빗 서버와 오른쪽에 aws 서버라 가정한 퍼블릭 서버와 통신을 해보자

아래와 같이 idc 퍼블릭에서 원격 통신을 통해 프라이빗 서버에 접속하고 aws서버로 핑을 보내보면 응답하는 것을 볼 수 있다

 

후 /etc/ipsec.d/vpnconfig.sh를 통해 접속하면 가상 게이트웨이와 고객 게이트웨이의 ip를 넣을 수 있다 추가한 후

경로 전파는 수동으로 연결해주고 다시 ipsec를 재시작하면 제대로 연결된 것을 확인할 수 있다.

 

Comments