본문 바로가기
네트워크

[IP Routing 개정 4판] BGP 4번째

by Lauren X Ming 2022. 1. 9.

BGP

- 네트워크 관리자가 지정하는 정책에 따라 라우팅

- 기본적인 설정만 했을 때는 최적 경로 라우팅이 일어나지 않음

 

BGP 네트워크 조정

-> 모든 조정 작업은 현재의 AS에서 이루어진다.

-> BGP는 다른 조직의 네트워크와 연결하여 동작하므로 모든 통신 장비를 한 조직에서 관리하지 못한다

     - 현재의 AS에 소속된 라우터만을 조정하여 원하는 라우팅이 이루어지도록 해야 함

BGP 네트워크 방법

1. 네트워크 차단

2. 입, 출력 경로 지정

  • ex. MED, LP

3. 네트워크 안정화

  • 축약, 댐프닝, 프리픽스 수 제한

 

BGP 조정을 위한 일반적인 절차

step 1. 조정할 대상 지정

  • 대상 : AS, community, 특정 neighbor
  • 대상 지정 : access list, prefix list, route-map 등

step 2. 선택한 대상을 조정

  • 주로 route-map을 이용하여 속성 조정
    • 특정 네트워크나 AS에 대한 BGP 광고를 차단하거나 허용하는 작업만 할 경우에는 이 과정 없어도 됨

step 3. 적용

  • neighbor들에게 적용
  • clear ip bgp로 route refresh 함

 

굳이 clear ip bgp를 해야하는가?

- bgp 관련 route-map 변경, weight 변경, distribution list 변경, bgp acl list 변경 의 정책이 적용되기 위해서는 해당 명령어를 사용해야 함

  • clear ip bgp VS clear ip bgp soft
    • hard reset : TCP 연결을 포함하여 peer에서 오는 경로 삭제
    • soft reset : peering session을 해제하지 않고 BGP 라우팅 테이블 재구성
      • 업데이트를 위한 추가 메모리를 할당하여 네트워크를 중단하지 않고 BGP 정책 적용

Table 1 hard reset vs soft reset

종류 장점 단점
hard reset 메모리 오버헤드 X 이웃에서 제공하는 BGP, IP 및 FIB(Forwarding Information Base) 테이블의 neighbor 손실 -> 권장하지 않음
outbound
soft reset
configration이 없고 라우팅 테이블 업데이트가 저장되지 않음. 인바운드 라우팅 테이블 업데이트 X
inbound
soft reset
BGP 세션 및 캐시 X
라우팅 테이블 업데이트를 저장할 필요가 없으며 메모리 오버헤드가 없음.
두 BGP 장치 모두 route refresh 기능을 지원해야 함
아웃바운드 라우팅 테이블 업데이트 X
neighbor
soft-reconfiguration
두 BGP 장치 모두 route refresh 기능을 지원하지 않을 때 사용 bgp soft-reconfig-backup : route refresh 기능을 지원하지 않는 피어에 대한 inbound soft reset을 위해 사용함 사전 구성 필요 수신된(인바운드) 라우팅 정책 업데이트를 모두 저장
두 BGP 장치 모두 route refresh 기능을 지원하지 않을 때만 권장

참고 : https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_bgp/configuration/xe-3e/irg-iproute-bgp-xe-3e-book/irg-soft-reset.html


네트워크 광고 제어

  • 특정 neighbor에게 routing 정보를 전송하거나 수신할 때 적용
  • 특정 네트워크의 광고들 차단하거나, 허용
    • ISP : 특정 네트워크만 차단
    • 기업 : 특정 네트워크만 허용

실습

1. 기본설정

# SW

!
vlan 12,23,34
!
interface Ethernet1-4
   switchport trunk allowed vlan 12,23,34
   switchport mode trunk
!

# R1

!
vlan 12
!
interface Ethernet1
   no switchport
!
interface Ethernet1.12
   encapsulation dot1q vlan 12
   ip address 1.1.12.1/24
!
interface Loopback0
   ip address 1.1.1.1/24
!

# R2

!
vlan 12,23
!
interface Ethernet1
   no switchport
!
interface Ethernet1.12
   encapsulation dot1q vlan 12
   ip address 1.1.12.2/24
!
interface Ethernet1.23
   encapsulation dot1q vlan 23
   ip address 1.1.23.2/24
!
interface Loopback0
   ip address 1.1.2.2/24
!

# R3

!
vlan 23,34
!
interface Ethernet1
   no switchport
!
interface Ethernet1.23
   encapsulation dot1q vlan 23
   ip address 1.1.23.3/24
!
interface Ethernet1.34
   encapsulation dot1q vlan 34
   ip address 1.1.34.3/24
!
!
interface Loopback0
   ip address 1.1.3.3/24
!

# R4

!
vlan 34
!
interface Ethernet1
   no switchport
!
interface Ethernet1.34
   encapsulation dot1q vlan 34
   ip address 1.1.34.4/24
!
interface Loopback0
   ip address 1.1.4.4/24
!

2. BGP 설정

# R1

!
router bgp 1
   router-id 1.1.1.1
   neighbor 1.1.12.2 remote-as 2
   network 1.1.1.0/24
!

# R2

!
router bgp 2
   router-id 1.1.2.2
   neighbor 1.1.12.1 remote-as 1
   neighbor 1.1.23.3 remote-as 3
   neighbor 2.2.12.1 remote-as 1
   network 1.1.2.0/24
   network 2.2.2.0/24
!

# R3

!
router bgp 3
   router-id 1.1.3.3
   neighbor 1.1.23.2 remote-as 2
   neighbor 1.1.34.4 remote-as 4
   network 1.1.3.0/24
!

# R4

!
router bgp 4
   router-id 1.1.4.4
   neighbor 1.1.34.3 remote-as 3
   network 1.1.4.0/24
!

R1의 라우팅 테이블

 

prefix-list로 네트워크 광고 제어

  • prefix-list : 모든 라우팅 프로토콜에서 정책 설정을 위한 대상 네트워크를 지정할 때 사용
    • 경로 검색이 빠르고, 일부를 지우거나 추가할 수 있음
    • 직관적임
  • deny 0.0.0.0/0 le 32 묵시적인 문장이 있음
  • 설정 Example
    • R1에서 1.1.2.0/24에 대한 광고를 차단
!
ip prefix-list TEST seq 10 deny 1.1.2.0/24
ip prefix-list TEST seq 20 permit 0.0.0.0/0 le 32
!
router bgp 1
   neighbor 1.1.12.2 prefix-list TEST in
!

R1의 라우팅 테이블

* 참고 * ge / le

  • ge, le 옵션이 없으면 : 명시된 서브넷 마스크를 가진 네트워크만 지정
  • ge : ge에서 지정한 숫자 이상. ge 24이면, 24 ~32bit까지
    • ex) 1.1.0.0/16 ge 25 : 25 ~32까지
  • le : 해당 서브넷 이상 부터 le 에서 지정한 숫자까지
    • ex) 1.1.2.0/24 le 32란 24~32까지
  • permit 0.0.0.0/0 le 32이면 32bit까지 이기 때문에 모든 네트워크 허용
  • 0.0.0.0/0 ge 8 le 24 : subnet mask 길이가 8이상 24 이하인 모든 네트워크

 

prefix-list 고유 번호

  • 각 prefix-list에 고유 번호를 주지 않으면 10씩 증가
    • 책에서는 5씩 증가한다고 되어있지만, arista 장비에서는 10씩 증가하는 것으로 보임
  • 중간에 prefix-list를 추가하고 싶다면 seq option을 주면 됨

seq option


AS 경로 access list를 이용한 네트워크 광고 제어

  • AS 경로 Access list를 만들때는. regular expression(regix)(정규식)를 사용함
  • access list와 마찬가지로 묵시적으로 나머지 모든 AS는 차단하라는 문장이 있음

실습

# R1

  • AS 2에서 시작된 네트워크만 허용
ip as-path access-list 1 permit ^2$ any
neighbor 1.1.12.2 prefix-list 1 in

원래는 R2에서 오는 건 보여야 하는데.... 실제로 해보니 모두 deny 되버림....


route-map을 이용한 네트워크 광고 제어

  • 특정 네트워크를 허용함과 동시에 BGP 속성(MED, LP 값 등)도 조정하는 경우 사용

실습

  • 1.1.2.0/24 네트워크의 LP는 200, AS 3에서 시작된 네트워크의 LP는 300으로 설정

# R1

ip prefix-list R2 seq 10 permit 1.1.2.0/24
ip as-path access-list 1 permit 3$ any
!
route-map CHANGE-LP permit 10
   match ip address prefix-list R2
   set local-preference 200
!
route-map CHANGE-LP permit 20
   match as-path 1
   set local-preference 300
!
router bgp 1
   neighbor 1.1.12.2 route-map CHANGE-LP in
!
  1. 조정을 원하는 대상을 prefix-list, as-path access-list로 지정
  2. route map에서 위에 지정한 대상을 가져옴
  3. neighbor에게 route-map 지정
  4. route-map의 번호를 지정하여, 실행 순서를 지정할 수 있다.
  5. match : as-path, community 등 대상을 지정할 때 사용