카테고리 없음

BGP-6(BGP 네트워크 보안)

mintoper 2025. 2. 27. 15:50

BGP 네트워크는 다른 조직의 네트워크와 연결되므로 보안이 중요하다.

아직까지 만족할 만한 대책이 없는 실정이지만

기존의 방법이라도 현재 상황에서 최대한의 보안 대책을 세우는 것이 중요하다.

BGP 네트워크의 보안 대책은 다음과 같은 것이 있다.

  • 특정 네트워크에 대한 광고 차단
  • EBGP 설정시 TTL값 제한
  • BGP 메시지 인증
  • 최대 수신 프리픽스 수 제한

 

 

실습구성도

 

R1
int lo 0
ip add 1.1.1.1 255.255.255.0
int e0/0
ip add 1.1.12.1 255.255.255.0
no shut
int e0/1
ip add 1.1.13.1 255.255.255.0
no shut

router bgp 1
bgp router-id 1.1.1.1
network 1.1.1.0 mask 255.255.255.0
neighbor 1.1.12.2 remote-as 2
neighbor 1.1.13.3 remote-as 65001
neighbor 1.1.14.4 remote-as 65001


R2
int lo 0
ip add 1.1.2.2 255.255.255.0
int e0/0
ip add 1.1.12.2 255.255.255.0
no shut

router bgp 2
bgp router-id 1.1.2.2
network 1.1.2.0 mask 255.255.255.0
neighbor 1.1.12.1 remote-as 1


R3
int lo 0
ip add 1.1.3.3 255.255.255.0
ip ospf network point-to-point
int e0/1
ip add 1.1.13.3 255.255.255.0
no shut
int e0/0
ip add 1.1.34.3 255.255.255.0
no shut
router ospf 3
router-id 1.1.3.3
network 1.1.3.3 0.0.0.0 area 0
network 1.1.34.3 0.0.0.0 area 0
network 1.1.13.3 0.0.0.0 area 0

router bgp 65001
bgp router-id 1.1.3.3
network 1.1.3.0 mask 255.255.255.0
neighbor 1.1.13.1 remote-as 1
neighbor 1.1.4.4 remote-as 65001
neighbor 1.1.4.4 update-source lo 0
neighbor 1.1.4.4 next-hop-self


R4
int lo 0
ip add 1.1.4.4 255.255.255.0
int e0/0
ip add 1.1.34.4 255.255.255.0
no shut
int e0/2
ip add 1.1.14.4 255.255.255.0
no shut
router ospf 4
router-id 1.1.4.4
network 1.1.4.4 0.0.0.0 area 0
network 1.1.34.4 0.0.0.0 area 0
passive-interface e0/2
router bgp 65001
bgp router-id 1.1.4.4
network 1.1.4.0 mask 255.255.255.0
neighbor 1.1.3.3 remote-as 65001
neighbor 1.1.3.3 update-source lo 0
neighbor 1.1.3.3 next-hop-self
neighbor 1.1.14.1 remote-as 1

 

 

 

 

BGP 인증

 

서로 다른 AS를 연결하는 지점에 대한 정보는 비교적 쉽게 얻을 수 있기 때문에 특히 EBGP간의 연결은 보안에 취약하다.

따라서 EBGP간의 네이버 인증은 거의 필수적이라고 생각할 수 있다.

BGP 네이버를 인증하려면 네이버 설정시 password 옵션을 사용하면 된다.

password 설정시 BGP 인증은 MD5를 통해 암호화된다.

 

R1 
router bgp 1
neighbor 1.1.12.2 password Security

R2
router bgp 2
neighbor 1.1.12.1 password Security

 

 

로컬 AS

두 개의 AS 영역이 인수합병등의 이유로 합쳐질 때 합병된 회사의 소속된 고객 AS가 많은 경우 고객 AS에서의 BGP 설정을 변경하지 않으려 할 떄 로컬 AS를 사용한다.

 

R2
router bgp 2
no neighbor 1.1.12.1 remote-as 1
neighbor 1.1.1.1 remote-as 2

R1
no router bgp 1
router bgp 2
bgp router-id 1.1.1.1
neighbor 1.1.2.2 remote-as 2
neighbor LocalAS peer-group
neighbor 1.1.13.3 peer-group LocalAS
neighbor 1.1.14.4 peer-group LocalAS
neighbor LocalAS remote-as 65001
neighbor LocalAS local-as 1

 

결과

 

R1의 AS가 2로 변경되었지만, R3에서의 BGP 테이블에서는 영향을 받지 않았다.

 

수신하는 광고에 로컬 AS 번호를 추가하지 않기 위해 local-as [number]에 no-prepend를 입력한다.

R1
router bgp 2
neighbor 1.1.13.3 local-as 1 no-prepend
neighbor 1.1.14.4 local-as 1 no-prepend

 

설정전은 path에 자신의 local-as값인 1이 마지막 path로 나타난다.

 

 

설정 후 path에 자신의 local-as 값이 나타나지 않는다.

 

 

 

최대 수신 네트워크 제한

특정 네이버를 통해서 광고받는 최대 BGP 네트워크의 수를 제한할 수 있다.

최대 BGP 네트워크 이상의 광고를 받을 경우 추가 옵션을 통해 초과시 세션 다시시작/경고메시지만 표시/75%이후 경고메시지 표시 후 초과시 다시시작의 옵션을 사용할 수 있다. 디폴트는 75%이후 경고 및 초과시 다시시작이다.

 

R4
router bgp 65001
neighbor 1.1.14.1 maximum-prefix 10 ?
#BGP 최대 네트워크 광고회수를 10으로 지정
#10의 뒤에 restart/warning-only를 통해 옵션 조정가능 restart는 재시작 warning-only는 경고만

 

그리고 R1에 가상의 아이피 대역을 추가하여 BGP에 매칭한다.

R1
int lo 1
ip add 2.2.1.1 255.255.255.0
ip add 2.2.2.2 255.255.255.0 secondary
ip add 2.2.3.3 255.255.255.0 secondary
ip add 2.2.4.4 255.255.255.0 secondary
ip add 2.2.5.5 255.255.255.0 secondary
ip add 2.2.6.6 255.255.255.0 secondary
ip add 2.2.7.7 255.255.255.0 secondary
ip add 2.2.8.8 255.255.255.0 secondary
ip add 2.2.9.9 255.255.255.0 secondary

router bgp 2
network 2.2.1.0 mask 255.255.255.0
network 2.2.2.0 mask 255.255.255.0
network 2.2.3.0 mask 255.255.255.0
network 2.2.4.0 mask 255.255.255.0
network 2.2.5.0 mask 255.255.255.0
network 2.2.6.0 mask 255.255.255.0
network 2.2.7.0 mask 255.255.255.0
network 2.2.8.0 mask 255.255.255.0
network 2.2.9.0 mask 255.255.255.0

 

네트워크가 75퍼센트를 초과하자 R4에서 경고 메시지가 나타난다.

네트워크의 허용대역을 넘어서자 네이버가 해제되었다. 해당 네이버를 복구하기 위해서는 네트워크를 삭제한 후 clear ip bgp external을 입력한다.

clear ip bgp external

네트워크를 다시 삭제한 후 clear ip bgp external을 입력하자 네이버가 다시 매칭되었다.