클라우드,네트워크,서버/AWS Basic

[AWS Basic] AWS Transit Gateway(전송 게이트웨이), 블랙홀 라우팅

설레임하우스 2022. 10. 27. 15:57
728x90
반응형
전송게이트웨이(Transit Gateway)란 ?

Transit Gateway가상 사설 클라우드(VPC)와 온프레미스 네트워크를 상호 연결하는 데 사용할 수 있는 네트워크 전송 허브입니다. 복잡한 피어링 관계를 제거하여 네트워크를 간소화하며 클라우드 라우터 역할을 하므로 새로운 연결을 한 번만 추가하면 됩니다. 클라우드 인프라가 전 세계적으로 확장됨에 따라 리전 간 피어링은AWS 글로벌 인프라를 사용하여 Transit Gateway를 함께 연결합니다. 데이터는 자동으로 암호화되며 퍼블릭 인터넷을 통해 전송되지 않습니다.

 

aws 전송게이트웨이

전송 게이트웨이의 네트워크 간소화

미사용시 : VPC, VPN, Direct connect gateway 를 사용하는 환경에서는 복잡한 개별 연결

사용시 : 중앙집중형 연결환경으로 쉬운 관리 및 연결

전송게이트웨이의 네트워크 간소화

목표구성도
전송게이트웨이를 통한 VPC 연결 및 통신 테스트

AWS 전송게이트웨이 실습 구성도

1. VPC 생성

이름 : TGW-VPC0 , IP CIDR : 10.0.0.0/16

이름 : TGW-VPC1 , IP CIDR : 10.10.0.0/16

이름 : TGW-VPC2 , IP CIDR : 10.20.0.0/16

VPC생성

2. 서브넷 생성

1. VCP ID : TGW-VPC0 , 서브넷이름 : TGW-VPC0-SN1, 가용영역: Ap-northeast-2a , CIDR: 10.0.1.0/24

2. VCP ID : TGW-VPC0 , 서브넷이름 : TGW-VPC0-SN2, 가용영역: Ap-northeast-2c , CIDR: 10.0.2.0/24

3. VCP ID : TGW-VPC0 , 서브넷이름 : TGW-VPC0-SN3, 가용영역: Ap-northeast-2a , CIDR: 10.0.3.0/24(TGW연결용)

4. VCP ID : TGW-VPC0 , 서브넷이름 : TGW-VPC0-SN4, 가용영역: Ap-northeast-2c , CIDR: 10.0.4.0/24(TGW연결용)

5. VCP ID : TGW-VPC1 , 서브넷이름 : TGW-VPC1-SN1, 가용영역: Ap-northeast-2a , CIDR: 10.10.1.0/24

6. VCP ID : TGW-VPC1 , 서브넷이름 : TGW-VPC1-SN2, 가용영역: Ap-northeast-2c , CIDR: 10.10.2.0/24

7. VCP ID : TGW-VPC1 , 서브넷이름 : TGW-VPC1-SN3, 가용영역: Ap-northeast-2a , CIDR: 10.10.3.0/24(TGW연결용)

8. VCP ID : TGW-VPC1 , 서브넷이름 : TGW-VPC1-SN4, 가용영역: Ap-northeast-2c , CIDR: 10.10.4.0/24(TGW연결용)

9. VCP ID : TGW-VPC2 , 서브넷이름 : TGW-VPC2-SN1, 가용영역: Ap-northeast-2a , CIDR: 10.20.1.0/24

10. VCP ID : TGW-VPC2 , 서브넷이름 : TGW-VPC2-SN2, 가용영역: Ap-northeast-2c , CIDR: 10.20.2.0/24

11. VCP ID : TGW-VPC2 , 서브넷이름 : TGW-VPC2-SN3, 가용영역: Ap-northeast-2a , CIDR: 10.20.3.0/24(TGW연결용)

12. VCP ID : TGW-VPC2 , 서브넷이름 : TGW-VPC2-SN4, 가용영역: Ap-northeast-2c , CIDR: 10.20.4.0/24(TGW연결용)

서브넷 생성

3. 인터넷 게이트웨이 생성

이름 : TGW-IGW , VPC연결 : TGW-VPC0

인터넷게이트웨이 생성 및 VPC연결

4.라우팅테이블 생성

1. 이름 : TGW-VPC0-RT1 , VPC : TGW-VCP0 , 서브넷연결 : 10.0.1.0/24, 10.0.2.0/24 , 라우팅 : 0.0.0.0/0->TGW-IGW

2. 이름 : TGW-VPC0-RT2 , VPC : TGW-VCP0 , 서브넷연결 : 10.0.3.0/24, 10.0.4.0/24 

3. 이름 : TGW-VPC1-RT1 , VPC : TGW-VCP1 , 서브넷연결 : 10.10.1.0/24, 10.10.2.0/24 

4. 이름 : TGW-VPC1-RT2 , VPC : TGW-VCP1 , 서브넷연결 : 10.10.3.0/24, 10.10.4.0/24 

5. 이름 : TGW-VPC2-RT1 , VPC : TGW-VCP2 , 서브넷연결 : 10.20.1.0/24, 10.20.2.0/24 

6. 이름 : TGW-VPC2-RT2 , VPC : TGW-VCP2 , 서브넷연결 : 10.20.3.0/24, 10.20.4.0/24 

라우팅테이블 생성

5. 인스턴스 생성

1. 이름 : VPC0-EC2, 인스턴스유형 : t2.micro , VCP : TGW-VPC0 , 서브넷: TGW-VPC0-SN1, 퍼블릭IP 자동할당: 활성화

기본IP : 10.0.1.100(VPC1,VPC2 인스턴스가 외부 인터넷 웹접속을 위한 웹 프록시 서버 역할)

2. 이름 : VPC1-EC2-1, 인스턴스유형 : t2.micro , VCP : TGW-VPC1 , 서브넷: TGW-VPC1-SN1, 기본IP : 10.10.1.100

키페어없이 root계정 암호입력방식 로그인

#!/bin/bash
(
echo "qwe123"
echo "qwe123"
) | passwd --stdin root
sed -i "s/^PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config
sed -i "s/^#PermitRootLogin yes/PermitRootLogin yes/g" /etc/ssh/sshd_config
service sshd restart

3. 이름 : VPC1-EC2-2, 인스턴스유형 : t2.micro , VCP : TGW-VPC1 , 서브넷: TGW-VPC1-SN2, 기본IP : 10.10.2.100

키페어없이 root계정 암호입력방식 로그인

4. 이름 : VPC2-EC2-1, 인스턴스유형 : t2.micro , VCP : TGW-VPC2 , 서브넷: TGW-VPC2-SN1, 기본IP : 10.20.1.100

키페어없이 root계정 암호입력방식 로그인

5. 이름 : VPC2-EC2-2, 인스턴스유형 : t2.micro , VCP : TGW-VPC2 , 서브넷: TGW-VPC2-SN2, 기본IP : 10.20.2.100

키페어없이 root계정 암호입력방식 로그인

EC2 인스턴스 생성

6. 인스턴스 생성확인 및 보안그룹 인바운드 규칙추가

1. ICMP 규칙 추가

ICMP 인바운드 규칙추가

7. 인스턴스 통신상태 확인

VPC0-EC2 인스턴스에서 VPC1,VPC2 인스턴스로 통신상태 확인.

VPC들이 전송게이트웨이에 연결이 되어 있지 않아 통신 안됨

8. 전송게이트웨이 생성 (VPC>Transit Gateway>Transit Gateway)

이름 : TGW

전송 게이트웨이 생성

9. 전송게이트웨이 연결 (VPC>Transit Gateway>Transit Gateway 연결)

이름 : TGW-VPC0, Transit Gateway ID : TGW , 연결유형 : VPC , VPC ID : TGW-VPC0, 서브넷 ID : TGW-VPC0-SN3,TGW-VPC0-SN4

이름 : TGW-VPC1, Transit Gateway ID : TGW , 연결유형 : VPC , VPC ID : TGW-VPC1, 서브넷 ID : TGW-VPC1-SN3,TGW-VPC1-SN4

이름 : TGW-VPC2, Transit Gateway ID : TGW , 연결유형 : VPC , VPC ID : TGW-VPC2, 서브넷 ID : TGW-VPC2-SN3,TGW-VPC2-SN4

전송게이트웨이 생성

10. 라우팅테이블 추가 생성

1. 이름 : TGW-VPC0-RT1, 추가 라우팅 : 10.0.0.0/8 -> TGW-VPC0

2. 이름 : TGW-VPC1-RT1, 추가 라우팅 : 10.0.0.0/8 -> TGW-VPC1

3. 이름 : TGW-VPC2-RT1, 추가 라우팅 : 10.0.0.0/8 -> TGW-VPC2

11. 통신상태 확인

VPC0-EC2 인스턴스에서 VPC1,VPC2 인스턴스 통신상태 확인

VPC0-EC2<->VPC1-EC2-1, VPC1-EC2-2

VPC0-EC2<->VPC2-EC2-1, VPC2-EC2-2

전송 게이트웨이 라우팅 테이블에 따라 VPC0,VPC1,VPC2 의 인스턴스와 통신이 됩니다.

전송게이트웨이 라우팅 테이블

VPC1 인스턴스에서 VPC0, VPC2 인스턴스 통신상태 확인

12. VPC0-EC2 인스턴스 프록시 서버 설정(Squid)

sudo su -
yum install squid -y

squid 설치

설치확인

ls -al /etc/squid

13. Squid 설정 및 실행

vi /etc/squid/squid.conf

http_access deny all-> http_access allow all 로 변경 후 저장

squid http access allow all

squid 실행 및 상태 확인

systemctl start squid
systemctl status squid

14. VPC0-EC2 인스턴스 인바운드 규칙추가

프록시 사용 TCP-3128 추가

15. VPC1-EC2-1 인스턴스 프록시 서버주소 설정 및 외부 통신확인

vi /etc/bashrc
export http_proxy=10.0.1.100:3128
export https_proxy=10.0.1.100:3128
no_proxy=127.0.0.1,localhost,169.254.169.254,10.0.0.0/8,.internal
wq

트래픽 흐름 : VPC1-EC2-1(10.10.1.100) 인스턴스에서 외부 웹접속 시도->웹 프록시(10.0.1.100)을 목적지로 라우팅테이블을 통해 전송게이트웨이로 전달->전송게이트웨이의 라우팅테이블을 보고 VPC0(10.0.1.100)으로 보내진다.

웹프록시 서버는 해당 트래픽을 받아 외부 웹서버에 접속 요청을하고 퍼블릭라우팅을 통해 인터넷게이트웨이로 전송된다.


전송 게이트웨이 라우팅테이블 트래픽 제어

 

전송게이트웨이 디폴트 라우팅은 모든 VPC간에 통신이 가능하다

전송게이트웨이 디폴트라우팅

트래픽 제어를 위해 라우팅 및 VPC연결 추가에 앞서 디폴트라우팅에 들어 있는 VPC1,VPC2 를 삭제한다.

삭제에 앞서 VPC1,VPC2 의 ID를 확인한다.

전송게이트웨이 VPC연결삭제

삭제 후 VPC0만 연결되어 있다.

1. VPC0<->VPC1 통신을 위한 라우팅테이블 추가 및 연결

이름 : TGW-VPC1-RT, Transit gateway ID : TGW

이름 : TGW-VPC2-RT, Transit gateway ID : TGW

전송게이트웨이 라우팅 테이블 추가

TGW-VPC1-RT 에 VPC1 연결

TGW-VPC1-RT VPC0 전파

TGW-VPC2-RT 에 VPC2 연결

TGW-VPC2-RT 에 VPC0 전파

2. VPC0- EC2 인스턴스에서 통신상태 확인

VPC0 은 VPC1,VPC2 는 모든경로 정보가 있어 통신가능.

VPC1-EC2-1 인스턴스는 VPC0으로 가는 경로정보만 가지고 있어 VPC2로는 통신 불가

VPC2-EC2-1 인스턴스는 VPC0으로 가는 경로정보만 있어 VPC1과는 통신불가


블랙홀 라우팅을 이용한 통신차단

VPC0-EC2 인스턴스는 VPC1,VPC2 모든대역으로 통신가능

블랙홀 라우팅을 통한 VPC1의 10.10.2.0/24 대역 통신 차단

1. TGW-Default-RT 선택>경로> 정적 경로 생성>CIDR: 10.10.2.0/24>유형: 블랙홀

블랙홀 라우팅 설정

2. 블랙홀 라우팅 생성 확인

3. 생성 후 통신 상태 확인

VPC0-EC2 인스턴스에서 VPC1-EC2-1(10.10.1.100) 통신은 가능하나, 블랙홀 라우팅 설정에 의해 VPC1-EC2-2(10.10.2.100)으로 통신불가 

728x90
반응형