안녕하세요 서후아빠입니다. ^_^
이번 세션은 전용선 서비스인 Direct Connect에 대한 실습을 해보겠습니다.
구성도
본 실습은 Direct 구성에 대한 이해 위주로 진행하며, VPC 구성은 진행하지 않습니다. VGW를 이용하여 전용선을 구성하는 경우는 하나의 VLAN(ex : VLAN 100)과 구성할 수 있습니다. DGW를 이용하여 전용선을 구성하는 경우는 여러개의 VGW or TGW와 연결하여 여러개의 VLAN과 구성할 수 있습니다. DGW와 연결 가능한 VGW 수량은 제한이 있으며, 제한 수량 이상을 연결할 경우는 TGW를 이용하여 구성하여야 합니다. 개념은 DGW 앞에 생성된 여러개의 VIF(VLAN 100, VLAN 200, VLAN 300, ...)를 DGW 뒷단(VGW or TGW)와 연결하는 구조입니다. 아래 설정 순서를 보시면 이해되시리라 생각됩니다. |
사전 작업
인프라 생성 : vpc, subnet, igw, routing table, iam, ec2, tgw 등은 설명 생략합니다.
2022.07.02 - [Networking] - [실습] Amazon VPC 구성요소 생성하기
1단계 : Connection 생성 및 LOA 다운로드 (Hosted Connection 경우 생략)
Direct Connect > Connections > Create connection > Classic (or Connection wizard)
Name | Location | Port Speed | On-premises | Service provider |
DXConnect | KINX Gasan, Seoul, KOR (or LG U+ Pyeong-Chon Mega Center, Seoul, KOR) | 1Gbps (or 10Gbps) | Connect through an AWS DX partner | KINX (or Dreamline, KINX, LG Uplus, SK Telecom, Sejong, Other) |
2개의 Location 중 선택 On-premises 연결 작업할 AWS DX partner을 선택 |
AWS 계정 메일로 수신된 Direct Connect 신청 메일을 확인하여 응답
DX 로케이션에 직접 상면 임대를 통해 접속할 경우는 해당 로케이션의 이름 (KINX Gasan 또는 LG U+ Pyeong-Chon Mega Center) 입력 후 회신 Provider의 회선을 이용(Hosted Connection)할 경우 해당 Provider의 이름을 기재 후 회신 |
Direct Connect > Connections > 생성된 Connection 선택 > Download LOA > KINX (or Dreamline,LG Uplus, SK Telecom, Sejong, Other) > Download
Provider (ex : KINX)에게 LOA 전달하여 물리 회선 연결
Direct Connect > Connections > 생성된 Connection 상태 ”available” 확인
2단계 : DGW & VGW 생성
Direct Connect > Direct Connect gateway > Create Direct Connect gateway
Name | Amazon-side ASN |
DGW | 64512 |
DGW 생성은 필수는 아니지만, 여러 VPC에 연결된 VGW를 하나로 묶어서 1개의 VIF로 전달할 수 있는 유용한 기능이므로 되도록 생성하여 구성할 것을 권고 |
Direct Connect > Virtual private gateways > Create virtual private gateway
Name tag | Name Amazon-side ASN DGW 64512 |
VGW | Amazon default ASN (or Custom ASN) |
VPC > Virtual private gateways > Create virtual private gateway 동일 |
VPC > Virtual private gateways > 생성된 VGW 선택 > Actions > Attach to VPC > 연결할 VPC 선택
Direct Connect > Virtual private gateways > 생성된 VGW 선택 > Direct Connect gateway associations (tab) > Associate Direct Connect gateway
Account owner | Direct Connect gateways | Allowed prefixes |
My account (or Another account) | DGW | 10.0.0.0/16 |
Allowed prefixes : On-premise와 통신 허용할 AWS VPC 대역 |
3단계 : VIF 생성
Direct Connect > Virtual interfaces > Create virtual interface > Type(Private)
VIF name | Connection | Virtual interface Owner | Gateway type | Direct Connect gateway | VLAN |
PRIVIF | DXConnect | My AWS account(or Another AWS account) | Direct Connect Gateway | DGW | 100 |
BGP ASN | Address family (옵션) | Your router peer ip (고객측, 옵션) | Amazon router peer ip (AWS측, 옵션) | BGP authentication key (옵션) |
65001 | - | - | - | key1 |
Direct Connect > Virtual interfaces > Create virtual interface > Type(Transit)
VIF name | Connection | Virtual interface Owner | Direct Connect gateway | VLAN |
TRANVIF | DXConnect | My AWS account(or Another AWS account) | DGW | 200 |
BGP ASN | Address family (옵션) | Your router peer ip (고객측, 옵션) | Amazon router peer ip (AWS측, 옵션) | BGP authentication key (옵션) |
65002 | - | - | - | key2 |
Direct Connect > Virtual interfaces > Create virtual interface > Type(Public)
VIF name | Connection | Virtual interface Owner | VLAN | BGP ASN |
PIBVIF | DXConnect | My AWS account(or Another AWS account) | 300 | 65003 |
Address family (옵션) | Your router peer ip (고객측, 옵션) | Amazon router peer ip (AWS측, 옵션) | Prefixes you want to advertise | BGP authentication key (옵션) |
IPv4 (or IPv6) | x.x.x.x/31 (public IP 입력) | x.x.x.x/31 (public IP 입력) | 192.168.0.0/16, Peer IP 대역 | key3 |
Private VIF 경우 DGW를 사용하지 않으면 VIF 1개당 VGW 1개 연결 가능 Public IP는 고객에게 받거나 AWS Ticket Open을 통해 받아서 설정 Gateway type : DGW or VGW 중 선택 VLAN : VIF 대역별로 상이한 값을 설정 BGP ASN : 고객(On-premise) 장비에 설정된 값 Prefixes you want to advertise : 고객사 사설 대역, Peer IP 대역 |
Direct Connect > Virtual interfaces > 생성된 VIF 선택 > Actions > Sample configuration > 라우터 종류 선택 > Download
고객에게 전달하여 On-premise에 있는 Router 장비 설정
4단계 : Routing 설정
VPC > Route tables > On-premise와 통신할 Routing table 선택 > Route propagation (tab) > Edit route propagation > Propagation(Enable) > Save
Propagation을 Enable로 설정하면 Direct Connect에 추가된 Routing이 자동으로 등록되며, 수동으로 등록하고자 한다면 VPC > Route tables > On-premise와 통신할 Routing table 선택 > Routes (tab)에 수동 등록하면 됩니다. |
On-premise와 AWS VPC간 통신 테스트 진행
Direct Connect 연결은 되었지만, 통신이 안되는 경우
1. Direct Connect 광고/수신 라우팅 테이블 확인
# To On-premise
XXXXX.inet.0: XX destinations, XX routes ( XX active, 0 holddown, 0 hidden)
Prefix Nexthop MED Lclpref AS path
192.168.1.0/24 169.254.X.X 65001
192.168.2.0/24 169.254.X.X 65002
192.168.3.0/24 169.254.X.X 65003
# To AWS
XXXXX.inet.0: XX destinations, XX routes ( XX active, 0 holddown, 0 hidden)
Prefix Nexthop MED Lclpref AS path
10.0.1.0/24 169.254.X.X 64512
10.0.2.0/24 169.254.X.X 64512
10.0.3.0/24 169.254.X.X 64512
2. VPC 라우팅 테이블에서 위의 라우팅 정보 자동 전파 확인
대상 | 대상 | 상태 | 전파됨 |
192.168.1.0/24 | VGW-A | 활성 | 예 |
192.168.2.0/24 | VGW-A | 활성 | 예 |
192.168.3.0/24 | VGW-A | 활성 | 예 |
VPC별 대상 : VPC (B)는 VGW-B, VPC (C)는 TGW-C, VPC (D)는 TGW-D |
3. NACL 트래픽(IN/OUT) 및 SG 트래픽(IN/OUT) 허용 확인
1) 출발지 192.168.1.0/24~192.168.3.0/24에 대해서 허용, 목적지 192.168.1.0/24~192.168.3.0/24에 대해서 허용
4. 1~3 확인이 정상임에도 통신이 되지 않는 경우는 On-premise의 라우팅 테이블 문제일 경우가 높음
5. VPC Flow Log 활성화하여 Direct Connect 트래픽 이동 확인
# VPC Flow Log 예시
YYYY-MM-DDTHH:MM:SS.000+09:00 2 AWS계정12자리 eni-XXXXXXXXXX 192.168.X.X 10.0.X.X ......
Direct Connect 로깅
AWS Direct Connect > Connections > 연결 선택 > Monitoring(tab) : ConnectionState가 1이면 정상, 0이면 비정상
CloudWatch > Metrics > DX > Connection Metrics > 연결 선택 : ConnectionState가 1이면 정상, 0이면 비정상
Direct Connect는 별도 로깅은 제공하지 않으며 위 2개의 경로에서 연결 상태를 확인할 수 있습니다. 실시간 알림을 받고 싶은 경우 slack 연동을 통해 가능합니다. 만약 Hosted 방식으로 구성하여 KINX같은 업체가 끼인 경우 - DX 정상임에도 전용선 장애가 발생하면 KINX에 문의해서 확인해야 합니다. - LAG 설정도 동일하게 AWS~KINX, KINX~고객사 2개 구간으로 나누어서 고려되어야 합니다. |
'Networking' 카테고리의 다른 글
[이론] 네트워크 및 보안장비 구성 (0) | 2024.04.30 |
---|---|
[실습] EKS - Service를 외부에 노출하기 (ALB, NLB) (0) | 2023.06.02 |
[이론] AWS Direct Connect 기본 개념 (0) | 2022.10.25 |
[실습] AWS Client VPN 구성하기 (OpenVPN, 구글OTP 2차 인증)-2편 (0) | 2022.09.20 |
[Tip] Amazon ELB의 다양한 Error 상황 알아보기 (0) | 2022.07.22 |