2.2 VGW-CGW 연결 구성

Update : 2020-02-25

AWS Cloud9 기본설정

CGW(Customer Gateway)에 LAB에서 처럼 Public IP로 할당이 가능하지만, 다른 EC2 처럼 사설 IP로 연결 구성 할 수도 있습니다. 이 랩에서는 AWS Cloud9을 통해 기본 제공되는 Cisco CSR1KV 라우터의 기본 템플릿을 손쉽게 변경해서 배포하는 방법을 제공합니다.

1.먼저 Cloud 9을 생성합니다. (AWS Cloud9 서비스에서 아래와 같이 구성을 시작합니다.)

2.IDE환경의 이름을 정의합니다.

3.IDE 환경을 아래와 같이 구성합니다.

4.생성 완료 이후 몇 분후에 아래와 같은 화면이 제공됩니다.

이제 CGW를 템플릿 기반으로 간단하게 구성하기 위해 다음과 같은 단계를 수행합니다. 5.먼저 "1.2.TGW를 위한 VPC 구성"에서 소개된 git을 Cloud9 콘솔로 Clone합니다.

git clone https://github.com/whchoi98/TGW_CF.git

6.CGW로 접속할 때 사용하는 KeyPem을 Cloud9으로 복사합니다. 좌측 환경 패널로 현재 KeyPem파일을 Drag and Drop으로 아래에 생성된 디렉토리로 끌어 다 놓습니다.

mkdir ./aws_key
mv ./aws_key/whchoi02.pem ~/.ssh/whchoi02.pem
chmod 400 ~/.ssh/whchoi02.pem

7.git에서 복제한 파일 중 랩에서 사용되는 hostfile을 /etc/hosts 파일로 복제합니다. (랩을 진행하는데 필수 단계는 아닙니다.)

sudo cat hostfile >> /etc/hosts
more /etc/hosts

이제 Cloud9에서 직접 CGW에 접속해서 작업을 할 것입니다. 여기에서는 2개의 사전에 구성된 Shell Script를 통해서 Cisco CSR1KV 를 자동으로 구성할 것입니다.

TGW에 VGW 구성하기

앞서 "2.1 CGW VPC구성" 에서 Cloudformation을 통해 D OCTANK VPC와 필요한 자원, CGW등을 구성하였습니다. 이제 TGW를 구성하고 VGW 설정을 하겠습니다.

1.Transit Gateway에서 Attachment를 생성합니다.

[그림2.2.7]에서 현재 사용 중인 TGW를 선택하고, Attachment Type은 VPN을 선택합니다. VPN Attachment는 "2.1 CGW VPC" 구성에서 Cloudformation으로 생성한 CGW를 선택합니다. 또한 Routing은 BGP를 선택합니다.

Tunnel Options에서는 2개의 터널과 터널 연결을 위한 Pre-shared Key값을 설정합니다. 이미 git 에서 복제한 CGW 인 CSR1KV 라우터에 동일한 서브넷과 Pre-shared Key값이 Template으로 설정되어 있습니다. 따라서 반드시 Tunnel 번호 및 서브넷, Pre-shared Key값이 같아야 합니다.

설정이 완료되면 아래와 같이 새로운 Attachment가 생성되고 "Pending" 상태가 되고 , 잠시 후 "available"상태로 변경됩니다. 수 분의 시간이 걸릴 수 있습니다.

2.VPN Tunnel 상태를 확인하기 위해 아래에서 확인합니다. [VPC] - [Virtual Private Network] - [ Site-to-Site VPN Connection] Down 상태는 이 단계에서는 정상입니다. 아직까지 CGW- Cisco CSR1KV에 대한 구성을 하지 않았기 때문입니다.

3.Transit Attachment를 설정하였기 때문에 이제 Route Table에 연결합니다. 이미 "2.1 CGW VPC 구성" 의 구성도에서 "Green Route Table"에 연결하기로 했습니다.

[VPC] - [ Virtual Private Network] - [Transit Gateway Route Tables]

Cloud9에서 CGW구성하기

이제 다시 Cloud9으로 돌아와서 Cisco CSR1KV의 CGW를 구성해 보겠습니다. 이 때 중요한 정보는 [그 2.2.10]의 Tunnel 1,2의 Subnet과 Pre-Sharked Key 값입니다. Tunnel 순번은 논리적이지만 물리적인 연결과 동일하기 때문에 정보가 다를 경우 연결되지 않습니다.

1.Cloud9 콘솔에서 아래와 같이 새로운 config를 생성합니다.

./csr1kv_config_gen.sh 34.235.213.17 34.237.113.214 OCTANK_CSR1KV_A_CONFIG.txt

Cloud9 콘솔에서 Shell을 구성한 이후, 왼쪽 패널에 새로운 파일이 생성된 것을 확인 할 수 있습니다. 2. 해당 파일 (OCTANK_CSR1KV_A_CONIFIG.txt)을 열어서 생성된 파일을 확인합니다. 이 파일을 CSR1KV에 복사해서 넣기를 하면 완료됩니다.

3.Cloud9에서 직접 CSR1KV를 접속하여 Config를 복제해 넣도록 하기 위해 아래와 같이 화면 분할을 합니다.

4.화면을 분할하고, 분할된 화면에서 새로운 터미널을 불러옵니다.

5.분할된 터미널에서 CSR1KV로 접속하기 위해 [Cloudformation] - [Stack] - [DOCTANK-CGW]를 선택하고 Outputs를 선택합니다. 선택하게 되면 SSH 접속 정보를 볼 수 있습니다. 물론 EC2 관리화면에서 CSR1KV를 직접 확인해서 SSH 접속도 가능합니다.

6.접속 정보를 통해서 Cloud9 콘솔에서 SSH로 직접 CSR1KV 라우터에 접속합니다.

ssh -i ~/.ssh/whchoi02.pem ec2-user@10.1.1.31	

7.접속 이후에 아래와 같이 Hostname을 변경합니다.

config t
hostname CSR1KV-DOCTANK

8.이제 생성된 파일의 내용 전체를 복사하여, 터미널에 붙여 넣습니다.

9.정상적으로 작업이 완료되면 Cloud9 터미널에서 아래와 같이 정보를 확인합니다.

CSR1KV-DOCTANK#show ip interface brief 
Interface              IP-Address      OK? Method Status                Protocol
GigabitEthernet1       10.1.1.31       YES DHCP   up                    up      
Tunnel1                169.254.10.2    YES manual up                    up      
Tunnel2                169.254.11.2    YES manual up                    up      
VirtualPortGroup0      192.168.35.101  YES TFTP   up                    up      

### Tunnel 1,2 가 모두 정상적으로 Up 으로 표기되어야 합니다.

CSR1KV-DOCTANK#show ip bgp summary 
BGP router identifier 169.254.10.2, local AS number 65001
BGP table version is 7, main routing table version 7
5 network entries using 1240 bytes of memory
9 path entries using 1224 bytes of memory
2/2 BGP path/bestpath attribute entries using 576 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 3064 total bytes of memory
BGP activity 5/0 prefixes, 9/0 paths, scan interval 60 secs
5 networks peaked at 15:25:03 Feb 27 2020 UTC (00:20:17.845 ago)

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
169.254.10.1    4        65000     125     132        7    0    0 00:20:18        4
169.254.11.1    4        65000     122     131        7    0    0 00:19:50        4

### 생성된 2개의 Tunnel이 모두 BGP에 연결되어 정상적으로 Up이 되어야 합니다.
### 예제에서는 Tunnel Up이 20분 이상 지속되었음을 나타냅니다.
### Up/Down에 시간외의 정보가 나타나면 연결되지 않은 것입니다.

10.다시 AWS 콘솔로 돌아와서 Site-to-Site VPN이 정상적으로 동작하는지 확인합니다.

[VPC] - [Virtual Private Network] - [Site-to-Site VPN]

이제 모든 연결은 정상적으로 이뤄졌습니다. TGW 기반의 CGW 트래픽 제어에 대해서 다음 장에서 알아봅니다.

해당 웹사이트는 크롬, 파이어폭스, 사파리 웹 브라우저에 최적화되어 있습니다. 인터넷 익스플로러에서는 원할하게 보이지 않을 수 있습니다.

Last updated