[CISCO 보안 아카데미 1기 Part.2] 13일차 정리(BGP 2)

Working with a Transit AS
Transit AS Tasks
- 다른 먼 거리의 AS 사이에 경로 홍보
- 먼 거리의 네트워크에 패킷 전송
External Route Propagation

- TCP 세션만 형성된다면 먼 거리의 네트워크에도 패킷 전송 가능
- 항상 EBGP를 통해 패킷이 교환됨
Internal Route Propagation

- Backbone Area를 가로질러 BGP 속성을 전송할 수 있는 프로토콜은 AS 내에서의 BGP, 즉 Internal BGP(IBGP)라고 함
- 라우팅 테이블에 라우팅 정보가 없어서 Drop하는 라우터를 라우터 블랙홀이라고 함
- EBGP 경로를 홍보하려면 IBGP 세션이 transit AS Border Router 사이에 형성되어야 함
Interacting with IBGP and EBGP in a Transit AS
BGP Split Horizon

- BGP는 자신이 판단했을 때 best path라고 생각되는 경로의 neighbor에게 업데이트 정보를 전달하지 않음
- IBGP로 받은 정보는 IBGP로 전달하지 않음
- 루프를 막기 위해 다른 IBGP peer에게 전달하지 않음
- IBGP 세션이 풀 메쉬 형태로 형성되어야 함
IBGP Neighbors

- 풀 메쉬 조건 때문에 IBGP neighbor는 일반적으로 직접 연결되지 않음
루프백 인터페이스와의 IBGP 세션은 늘 동작하고 있음
- 물리적 인터페이스가 Down 되더라도, IBGP 세션은 항상 형성되어 있음
- IBGP 세션은 안정적
- 물리적 인터페이스 결함은 IBGP 세션을 지우지 않음
- transit AS내의 결함이 발생한 후에도, BGP recovery 없음
- 구성된 IGP가 루프백 인터페이스와 다시 경로를 형성할 것
- IBGP 세션은 영향을 받지 않음
Trnasit Network Using External Next Hops
- AS 내에서 모든 EBGP peer는 BGP-Speaking 라우터에 의해 통신이 가능해야 함
- EBGP next hop은 IGP를 통해 다음과 같이 홍보됨
- 연결된 인터페이스를 Edge Router에서 IGP로 재분배함
- EBGP neighbor links를 IGP로 포함
- 이들을 Passive interface로 구성
Trnasit Network Using Edge Routers as Next Hops
- Alternate Design
- Edge Router에서 Next-hop 프로세싱이 수정됨
- Edge Router는 IBGP 업데이트에 자기 자신들을 Edge Router로 홍보
- 외부 서브넷의 재분배가 필요하지 않음
- 해당 설계는 neighboring AS에 다중 경로가 존재하는 경우 최적 라우팅이 되지 않을 수 있음

- Edge Router에서 next-hop processing 변경
- BGP next-hop processing을 우회하고, 지정된 neighbor로 전송되는 업데이트에서 Local IP 주소를 BGP next-hop으로 알림
EBGP와 IBGP 세션 간의 차이

- IBGP 업데이트에서 BGP 속성은 변하지 않음
- BGP Split Horizon으로 인해, IBGP peer로부터 학습된 경로들은 다른 IBGP peer들에게 홍보되지 않음
- Local Preference는 오직 IBGP 세션만을 거쳐서 홍보됨
- EBGP peer는 직접 연결되어 있음
- 경로를 선택할 때, EBGP 경로를 조금 더 우선시함
Forwarding Packets in a Transit AS
Packet Forwarding in a Transit AS

- 모든 코어 라우터는 적절한 패킷 포워딩을 위한 external 라우터가 필요
- 재분배는 IGP 리소스에 과부하를 줄 수 있음
- 확장성으로 인해 IBGP 선호
- BGP를 통해 학습된 경로는 라우팅 테이블에 연관된 발신 인터페이스가 존재하지 않음
- 외부 목적지를 향해 IP Packet을 포워딩하기 위해 반복적인 lookup이 수행됨
BGP and IGP Interaction
- 이상적으로, BGP와 IGP 간에는 상호작용이 없을 것
- BGP는 외부, 고객 경로만 제공
- IGP는 오직 core subnet만 제공
- IGP는 외부 경로 상태의 영향을 받지 않음
- BGP는 BGP next-hop이 도달 가능한 상태로 남아 있는 한 내부 네트워크 결함에 영향을 받지 않음
- BGP와 IGP 사이의 유일한 link는 recursive lookup만 존재해야 함

- 가끔 BGP와 IGP는 같은 경로를 홍보할 때가 있음
- 일반적으로 잘못된 네트워크 설계가 원인임
- 이러한 경우, 경로는 AD 값을 기반으로 EBGP/IGP/BGP 순서로 결정
- 일반적으로 EBGP는 20, IBGP는 200의 AD를 가짐
Problems with BGP and IGP Interaction
- IGP 경로가 EBGP로 학습되었을 경우, EBGP 경로는 우선권을 얻음
- 잘못된 네트워크 디자인, 경로 문제, DoS 공격 가능성이 있음
- AS Edge에서 inbound prefix-list 필터로 IGP 경로를 보호
- 라우터는 외부 Source로부터의 local subnets에 대한 정보를 받아서는 안 됨
Multihomed BGP Networks
Business Requirements for Multihomed BGP Networks

- Multihomed 고객들은 다수의 ISP와 BGP를 맺어야 함
- Multihomed 고객들은 일반적으로 공인 AS 번호가 필요하고 ISP 독집적인 주소 공간이 필요함

- 고객은 두 개의 BGP 세션을 구성하고 주소 공간을 홍보
Multihomed Customer Routing Policies
- Multihomed 고객들은 여러 라우팅 정책이 필요할 수 있음
- 하나의 ISP만 Primary로 동작하고, 나머지는 Backup이 됨
- ISP의 고객을 향한 트래픽은 직접 흐르고, 나머지 트래픽은 primary ISP를 통함
- 특정 지역으로의 모든 트래픽은 하나의 ISP를 통함
- 특정 목적지로의 트래픽은 오직 하나의 ISP만을 이용함
Influencing BGP Route Selection

- 인터넷 트래픽은 늘 Primary ISP로 흐름
- Primary ISP로부터 받은 경로는 Backup ISP로부터 받은 경로보다 우선시
- BGP의 경로 선택 tool은 가중치 또는 local preference
- 인터넷 트래픽은 Primary ISP 너머로 흐름
- Backup ISP의 고객 트래픽은 곧바로 나감
-경로 선택은 AS 경로에서 AS 번호에 기반하여 수행됨
BGP Filters - Transit Traffic Issue

- 고객들은 Service Provider의 transit AS가 될 수 있음
- 다른 Provider에게는 특정 Provider의 경로를 홍보하지 않음
BGP Filters - Routing Update Reliability Issue

- BGP가 동작 중인 고객들은 Service Provider에게 어떠한 경로라도 전부 홍보할 수 있음
- Service Provider는 들어오는 업데이트 정보에 대해서 IP prefix를 필터링 해야 함
Employing AS-Path Filters
AS-Path Filtering Scenarios
- Regular Expression 방법으로 필터링 진행
- AS 경로에서 특정 AS 기반의 경로를 선택
- BGP neighbor 중에서 특정 AS의 경로만 허용
AS-Path Regular Expressions

- AS-Path가 문자열로 변환됨
- 31이라는 번호를 필터링 할 때 317 / 62316 등, 문자열 관점에서 해당 번호가 들어가는 번호는 전부 선택됨
String Matching - Regular Expressions

String Matching - Alternatives

String Matching - Ranges and Wildcard Characters

- 단일 문자 또는 범위
- (.)은 모든 단일 문자 matching을 의미
String Matching - Matching Delimiters

- ^은 문자열의 시작
- $는 문자열의 끝
- _ 모든 문자의 끝을 의미
- 문자열의 시작, 끝, 공백, tab, comma 등
String Matching - Special Characters

- \ 는 특수 기호의 의미를 지워 하나의 단일 문자 패턴으로 사용하기 위해 사용
String Matching - Repeating Operators

- 은 나오지 않거나 더 많이 반복되어 나오는 atom match
- ? 는 나오지 않거나 단 한 번만 나오는 atom match
- 는 한 번 나오거나 더 많이 반복되어 나오는 atom match
- atom은 단일 문자 또는 그룹
String Matching - Sample Regular Expressions

Commonly Used Characters in Expressions

AS-Path Filter Configuration

Using Outbound Route Filtering
Outbound Route Filtering
- 상대방 라우터에도 Outbound route filtering 기능 활성화 요청을 해야 하기 때문에 잘 사용하지 않음
- 일반적으로 BGP 트래픽과 CPU 사용량을 줄이기 위해 사용
Applying Route-Maps as BGP Filters
Route-Map Continue
- continue {sequenceNum}
- continue
Implementing Changes in BGP Policy
Traditional Filtering Limitations
- 모든 필터는 새로운 업데이트 정보에서만 적용되었음
- Outbound 라우팅 정책을 변경하기 위해서는 BGP 업데이트 정보를 neighbor로 다시 전송해야 했음
- Inbound 라우팅 정책을 바꾸기 위해, neighbor에서 다시 업데이트 정보를 전송하도록 강제해야 했음
- 위의 과정은 BGP 재시작 명령어로만 가능했음
BGP Soft Resoncfiguration
- Soft Reconfiguration은 CISCO IOS 소프트웨어에서 소개되었음
- Outbound soft reconfiguration은 완전한 BGP Table을 재전송
- Inbound soft reconfiguration이 완전한 neighbor의 BGP 테이블을 라우터 메모리에 저장함
Inbound Soft Reconfiguration Cisco IOS Commands

- Neighbor 관계의 라우터와 Inbound Soft Reconfiguration 관계 설정

- BGP 정책 변경 적용 시 작성하는 명령어
- BGP Session이 끊어지지 않으면서 in 정책 업데이트
Outbound Soft Reconfiguration Cisco IOS Commands

- BGP Session이 끊어지지 않으면서 out 정책 업데이트
왜 Route-Map을 써야 하는가
- 일부 상황에서 복잡한 필터가 필요함
- 특정 AS 번호로부터 오는 IP Prefix 필터
- 다른 BGP 속성 필터
- 특별한 경우, 네트워크 관리자가 BGP 속성을 정의해야 할 필요가 있음
- Route-Map은 두 요구사항 전부의 해결책을 제공