[Information]/[CISCO]

[CISCO] BGP 프로토콜 조정 방법 7가지

starterr 2024. 11. 10. 19:29

1. BGP 경로 필터링

 

1) prefix-list를 이용한 경로 필터링

 

프리픽스 리스트는 엑세스 리스트를 개선하여 만든 것으로, BGP뿐만 아니라 모든 라우팅 프로토콜에서 정책 설정을 위한 대상 네트워크를 지정할 때 사용된다. 프리픽스 리스트는 해당 경로를 검색하는 시간이 빠르고, 내용의 일부를 지우거나 추가할 수 있다. (자동으로 리스트 번호가 5씩 증가하며 매겨진다)

 

(1) 프리픽스 리스트 정책 설립

router(config)# ip prefix-list PSK deny 197.68.21.0/24

--> PSK라는 이름을 가진 프리픽스리스트를 만들고, 197.68.21.0/24를 차단한다.

router(config)# ip prefix-list PSK deny 197.68.22.0/24

--> PSK라는 이름을 가진 프리픽스리스트를 만들고, 197.68.22.0/24를 차단한다.

router(config)# ip prefix-list PSK permit 0.0.0.0 le 32

--> 나머지 모든 네트워크광고는 허용한다. (모든 패킷이 묵시적 거부가 되어있기 때문)

 

(2) 프리픽스 리스트 적용

router(config)# router bgp 1

router(config)# neighbor 13.13.3.3 prefix-list PSK in

--> 네이버인 13.13.3.3에게 들어오는 bgp광고패킷이 들어올 때, 프리픽스 PSK정책을 적용시킴

* 엑세스 리스트는 적용을 인터페이스에서 설정하지만, 프리픽스 리스트는 적용을 라우터 광고모드에서 한다.

 

 

2) Distribute-list를 이용한 경로 필터링

 

디스트리뷰트 리스트를 이용하여 특정 네이버로부터 특정 네트워크에 대한 광고를 차단 또는 허용하려면, 라우터 설정모드에서 distribute-list 명령어 다음에 엑세스리스트 이름이나 프리픽스리스트 이름을 지정하면 된다.

 

(1) 엑세스 리스트 정책 설립(프리픽스리스트를 사용해도 무방)

router(config)# access-list 50 197.68.21.0 0.0.0.255

--> 넘버가 50번인 엑세스리스트를 만들고, 197.68.21.0/24를 차단한다.

router(config)# access-list 50 197.68.22.0 0.0.0.255

--> 넘버가 50번인 엑세스리스트를 만들고, 197.68.22.0/24를 차단한다.

router(config)# access-list 50 permit any

--> 나머지 모든 네트워크광고는 허용한다. (모든 패킷이 묵시적 거부가 되어있기 때문)

 

 

(2) 디스트리뷰트리스트로 엑세스리스트 적용

router(config)# router bgp 1

router(config)# neighbor 13.13.3.3 distribute-list 50 in

--> 네이버인 13.13.3.3에게 들어오는 bgp광고패킷이 들어올 때, 엑세스리스트 50번 정책을 적용시킴

 

 

3) Route-map을 이용한 경로 필터링

 

단순히 특정 네트워크를 차단 또는 허용만 하는 경우에는 앞서 설명한 프리픽스리스트나 디스트리뷰트 리스트를 사용한다. 그러나 특정네트워크를 차단함을 동시에 BGP속성이나 커뮤니티를 설정하여 사용할 때는, route-map을 사용한다.

 

(1) 프리픽스 리스트 정책 설립 (액세스리스트로 정책을 설립해도 무방)

router(config)# ip prefix-list PSK permit 197.68.21.0/24

--> PSK라는 이름을 가진 프리픽스리스트를 만들고, 197.68.21.0/24를 허용한다.(나머지는 모두 묵시적 거부)

 

(2) 라우트맵 정책 설립

router(config)# route-map CCNP deny 10

---> CCNP라는 이름을 가진 라우트맵 설정

router(config-route-map)# match ip address prefix-list PSK

--> 라우트맵과 프리픽스리스트를 매치시킨다.

router(config-route-map)# exit

router(config)# route-map CCNP permit 20

--> 프리픽스리스트 설정 때 나머지 모든 패킷이 묵시적 거부가 되어 있으므로, 나머지 패킷은 영향을 받지 않게 모두 허용하는 라우터맵 20을 만든다.

 

(3) 라우터맵 적용

router(config)# router bgp 1

router(config-router)# neighbor 13.13.3.3 router-map CCNP in

--> 네이버인 13.13.3.3에게 들어오는 bgp광고패킷이 들어올 때, 라우트맵을 적용 시킴

 

 

2. BGP peer-grub 설정

 

동일한 설정이 적용되는 BGP정책을 하나의 그룹으로 묶어서, 네이버들에게 전송하는 것을 말한다.

피어그룹을 사용하면 BGP설정이 간편해지는 것은 물론, CPU 및 메모리 사용량을 감소시킬 수 있다.

 

R3(config)# router bgp 2

R3(config-router)# bgp router-id 3.3.3.3

R3(config-router)# network 3.3.3.0 mask 255.255.255.0

 

R3(config-router)# neighbor R2 R4 peer-group

R3(config-router)# neighbor R2 R4 remote-as 2 //네이버에게 동일하게 적용되는 정책을

R3(config-router)# neighbor R2R4 update-source lo0 //R2R4란 peer-group으로 묶는다

R3(config-router)# neighbor R2R4 router-reflector-client

 

R3(config-router)# neighbor 3.3.2.2 peer-group R2R4 //설정한 peer-group을 네이버들에게

R3(config-router)# neighbor 3.3.4.4 peer-group //한꺼번에 적용 시킴

 

 

3. BGP 경로 요약 (BGP를 축약하여 광고하기)

 

router(config-router)# aggregate-address [요약 NI] [요약 서브넷마스크] {as-set | summary-only | suppress-map}

* as-set : 기존 BGP 광고와 요약 광고를 함께 광고

* summary-only : BGP 요약 정보만 광고함.

* suppress-map [특정정보]: 특정 정보만 제외하고 BGP요약광고 및 BGP 상세광고 실시

 

 

4. BGP community 속성

 

BGP정보를 하나의 집단으로 조성하여 광고하는 속성이다. 특히 대규모의 BGP 네트워크 환경에서 사용하면 효율적인 속성이다.

이때, 하나의 집단으로 조성할 때는 community 값을 사용한다. 특정 네트워크에 커뮤니티 값을 설정하려면, route-map에서 set community를 사용한다. 라우트 맵 내에서 설정할 수 있는 커뮤니티 값은 다음과 같다.

BGP community 속성
BGP community 속성

 

<1-4294967295> : 커뮤니티 값을 10진수로 설정

aa:nn : 커뮤니티 값을 (AS번호: 커뮤니티번호) 형식으로 설정

local-AS : 커뮤니티 값을 사설 EBGP에게 광고하지 않는 속성

no-advertise : 커뮤니티 값을 모든 BGP 네이버에게 광고하지 않는 속성

no-export : 커뮤니티 값을 다른 AS로 광고하지 않는 속성

 

 

- 커뮤니티값 설정하기

1) 특정 네트워크를 지정하는 프리픽스 리스트를 만든다.

router(config)# ip prefix-list PSK permit 197.68.1.0/24 ---> PSK라는 프리픽스 리스트를 만든다.

router(config)# ip prefix-list PSK permit 197.68.2.0/24

.....

 

2) 프리픽스 리스트에 해당하는 라우트맵을 만든다.

router(config)# route-map PARK permit 10 ---> 라우트맵 이름이 PARK이며, 라우터맵 넘버가 10인 라우터맵을 만든다.

router(config-route-map)# match ip address prefix-list SPK ---> 프리픽스리스트 net155에 해당하는 아이피가 있으면...

router(config-route-map)# set community 13:1 no-export ---> 커뮤니티 값이 13:1이고, 다른 AS로 광고되지 않는 커뮤니티를 만들어라. (곧 커뮤니티 내용은 라우트맵 PARK이다)

 

3) 나머지 네트워크는 별도의 조정 없이 전송하게 하는 라우트맵을 만든다. (프리픽스 리스트 맨 밑에 묵시적 거부가 깔려있음)

router(config)# route-map com permit 20

 

4) 커뮤니티 정책을 이웃 라우터에게 적용한다. (대부분 커뮤니티 정책은 자신만 가지고서는 효과를 볼 수 없기 때문에 목적하는 바를 가진 라우터까지 커뮤니티를 전달해야 한다.)

 

router(config)# router bgp 65005

router(config-router)# neighbor 13.13.3.3 route-map PARK out ---> 루트맵 PARK을 R3로 송신하는 광고에 적용시킨다.

router(config-router)# neighbor 13.13.3.3 send-community ---> 커뮤니티를 R3에게 전송한다.

* 커뮤니티를 전달받은 라우터는 전달받은 커뮤니티를 또 다른 라우터에게 전달할 수 있다.

 

 

- 커뮤니티 확인 하기

router# show ip bgp community ---> 커뮤니티 값을 가진 모든 네트워크 확인하기

router# show ip bgp community 13:1---> 13:1을 포함하는 (다른 커뮤니티도 함께 포함)하는 커뮤니티 값을 가진 네트워크 확인하기

router# show ip bgp community 13:1 exact-match ---> 13:1 커뮤니티 값만을 가진 네트워크 확인하기

 

[참고] router(config)# ip bgp-community new-format --> 적용받은 커뮤니티 값을 aa:nn 형식으로 확인 가능하게 해주는 명령어

 

 

5. community-list

 

라우트맵에서 커뮤니티 값을 설정하여 네이버에게 전송하면, 해당 네이버는 커뮤니티 값이 따라 네트워크를 조정할 수 있게 된다. 그러나 no-advertise, local-as, no-export 같은 알려진 커뮤니티가 아닌 것(로컬프리퍼런스 값 변경, MED값 변경... 등)은 커뮤니티 리스트를 사용하여 해당 커뮤니티를 지정한 다음, 라우트맵에서 match명령어와 set명령어를 사용하여 적당한 동작을 지정해야 한다.

 

 

- 커뮤니티 리스트를 이용하여 커뮤니티 값이 3:1인 네트워크의 로컬 프리퍼런스 값을 1000으로 설정하기

 

router(config)# ip community-list 1 permit 3:1

---> 네이버라우터에게 받은 커뮤니티 3:1을 커뮤니티리스트 1로 지정

router(config)# route-map MAP 10

---> MAP이라는 이름을 가진 라우트맵 만들기

router(config-route-map)# match community 1

---> 커뮤니티 1을(커뮤니티 값 3:1을 가지고 있는) 라우트맵 MAP와 매치시킴

router(config-route-map)# set local-preference 1000

---> 커뮤니티값 3:1 경로의 로컬 프리퍼런스 값을 1000으로 바꿈

router(config)# router-map MAP 20

router(config)# router bgp 1

router(config-router)# neighbor 1.1.13.3 route-map MAP in

---> 설정한 커뮤니티 리스트를 네이버라우터로부터 들어올 때 적용

 

 

6. BGP 인증

 

서로 다른 AS를 연결하는데 지점에 대한 정보는 비교적 쉽게 얻을 수 있기 때문에 특히 ebgp 간의 연결은 보안에 취약하다. 따라서 EBGP 간의 네이버 인증은 거의 필수적이다. BGP 메시지 인증은 MD5인증만을 사용하고, 네이버 설정 시 password옵션을 사용하면 된다.

 

설정법

R1(config-router)#neighbor 13.13.9.2 password cisco

R2(config-router)#neighbor 13.13.9.1 password cisco

 

 

7. 로컬 AS ('local-as' 및 'no-prepend' 옵션)

 

- 상대방 EBGP라우터에게 나의 AS를 다르게 알려줌

 

1) local-as : 기존의 AS(113)를 다른 AS(1013)로 변경이 된 경우, 상대방 EBGP 라우터(AS 13)에서 네이버 성립이 불가능하기 때문에, 상대방 EBGP라우터에게 알려줄 나의 AS(113)을 명시해 준다.

 

2) no-prepend : Local-as으로 명시한 AS(113)가 AS-Path에 포함되지 않게 하는 기능

 

설정법

AS1013 router(config)# router bgp 1013

AS1013 router(config-router)# neighbor 1.1.13.3 local-as 113no-prepend

--> 원래는 AS1013인데 네이버 1.1.13.3에게 AS가 113이라고 알려줌

 


반응형

[CISCO] BGP 프로토콜 속성 - 우선 순위 13가지 및 분류 상세 분석

 

[CISCO] BGP 프로토콜 속성 - 우선 순위 13가지 및 분류 상세 분석

A. BGP 속성 - IGP의 메트릭에 해당하는 것을 BGP에서는 속성이라고 함 - 동일한 IGP가 동작하는 모든 라우터들은 해당 IGP의 메트릭을 모두 알고 있어야 함 - IGP와 달리, BGP가 사용하는 다양한 종류

infoofit.tistory.com

 

[TIP] 윈도우키 사용법 13가지 단축키 - 가상 데스크톱 생성, 작업 표시줄 아이콘 실행, 화면 분할, 작업 한눈에 보기, 작업 관리자, 파일 탐색기, 돋보기, 화면 캡처, PC잠그기, 클립보드

 

[TIP] 윈도우키 사용법 13가지 단축키 - 가상 데스크톱 생성, 작업 표시줄 아이콘 실행, 화면 분할,

진짜 유용한 꿀팁 윈도우키 사용법입니다. 활용도가 엄청 많아 보여요. 1. 윈도우키 + Ctrl + D : 가상데스크톱 생성 - 가상데스크톱은 2개, 3개 그 이상 만들 수 있다. 한참 업무 중에 다른 업무

infoofit.tistory.com

 

[용어/개념] Network - Packet 구조 / 캡슐레이션(Capsulation)

 

[용어/개념] Network - Packet 구조 / 캡슐레이션(Capsulation)

A. Packet이란?일반적으로 네트워크 상에서 전달되는 데이터를 "패킷"이라고 부릅니다. 이는 블록단위로 표현되며 순서가 있습니다. B. 일반적인 구조 헤더페이로드 앞에 붙습니다. 계층별로 붙

infoofit.tistory.com

 

반응형