AWS 의 경우 연결을 생성을 한다고 해서 실제로 접점이 생기지 않는다. KINX 를 예시로 계정정보와 계약정보를 KINX 에 전달후에 상태가 "odering" 으로 바뀌게 된다면 수락을 하여 활성화 할 수 있다.
참고로 DX 를 구축할 때는 연결을 가장 먼저 생성해야 한다. 연결이 생성되지 않았다면 다음 과정들을 진행할 수 없다.
연결 종류
Dedicated 방식
Hosted 방식
TGW 에 DX Gateway를 연결할 것으로 Transit Virtual Interface(가상 인터페이스) 를 만들어야 한다. 이전에 DX 게이트웨이를 만들어야 한다.
연결은 외부와 연결되는 접점이라면, Gateway는 VPC와 접점을 만드는 것이다.
참고로 DX Gateway 의 ASN 은 TGW ASN 과 다르게 지정해야 한다. (아래 에러 참고)
Error
Direct Connect Gateway and Transit Gateway cannot have the same ASN 64512
참고 : Transit Gateway와 Direct Connect ASN 넘버 문의
연결이 구성되면 실제로 AWS 리소스와의 통신을 위한 가상 인터페이스(VIF)가 필요하다.
본 포스팅은 Transit VIF 를 기준으로 작성을 하였다.
VIF는 다음과 같은 유형이 있다.
전용 회선이라는 물리적인 부분에 BGP 라는 프로토콜을 위한 네트워크 속성을 집어 넣기 위해서는 네트워크 관련 정보가 필요하다. VLAN, Serial IP 가 이에 해당한다.
용어 설명
Serial IP
위와 같은데, 앞서 나온 연결과 DX 게이트웨이의 ASN 을 넣도록 되어 있다. 그리고 VLAN 을 넣어야 하는데, 이 값은 KINX 와 협의하에 넣어야 한다. 중계를 시켜주는 사업자의 물리적인 현황을 고려해야 하기 때문이다.
BGP ASN 은 가상 인터페이스에 대한 온프레미스 피어 라우터의 Border Gateway Protocol 자율 시스템 번호를 입력한다. 또한, BGP ASN 도 KINX 와 협의한 값을 넣어줘야 한다.
Transit Virtual Interface 를 생성하게 된다면 아래 예시 사진처럼 피어링은 자동으로 추가가 된다.
현재는 연결이 되어 있지 않는 상황이라 상태는 "Down" 으로 확인이 된다.
또한, 생성된 인터페이스를 선택하면 하단에 Peering 이라는 것을 추가할 수 있다.
이 Peer 라는 것이 BGP 설정정보를 추가하는 것이다.
이곳에서 DX Gateway Associations 가 있다. 여기에서 기존에 생성된 TGW Attachment 를 하면 된다.
또한, 허용되는 접두사에는 IDC 로 라우팅정보를 재분배하는 설정이다.
DX Gateway 에서 설정이 완료되었다면 그림과 같이 인터페이스 연결과 게이트웨이 연결을 확인할 수 있다.
resource "aws_dx_connection" "dx-connection" {
name = "<dx-connection Name>"
bandwidth = "1Gbps"
location = "LGKNX"
request_macsec = false
}
resource "aws_dx_gateway" "dx-gateway" {
name = "<dx-gateway Name>"
amazon_side_asn = "64512"
}
resource "aws_dx_transit_virtual_interface" "dx-tgw-vif" {
address_family = "ipv4"
bgp_asn = <협의한 asn>
connection_id = aws_dx_connection.dx-connection.id
dx_gateway_id = aws_dx_gateway.dx-gateway.id
name = "<dx-tgw-vif Name>"
vlan = <협의한 vlan>
customer_address = <A-end Serial IP>
amazon_address = <B-end Serial IP>
bgp_auth_key = <Auth_Key>
}
resource "aws_dx_gateway_association" "dx-gateway-association" {
dx_gateway_id = aws_dx_gateway.dx-gateway.id
associated_gateway_id = <TGW ID>
allowed_prefixes = [
"10.50.0.0/16", # 광고할 AWS 네트워크 대역
"10.51.0.0/16"
]
}
작성자는 Terraform 을 통해 구축을 진행하였으며, 위 코드를 통해 참고하자.
참고 :
https://sh-t.tistory.com/129
https://btcd.tistory.com/328
https://i-nara.oopy.io/eba3c9fd-dfbd-4808-8580-8da20b06982f
포스팅 작성을 통해 Direct Connect를 정리하였다. Site to Site VPN 보다 상대적으로 안정성이 높은 서비스라고 생각이 든다.
추후 더 높은 가용성과 대역폭 확보 등을 위해 링크 집계 그룹(LAG) 라는 것도 알아 두면 좋을 거 같다.