이 페이지의 내용
기본 BGP 라우팅 정책
라우팅 정책 이해하기
각 라우팅 정책은 정책 이름으로 식별됩니다. 이름은 문자, 숫자 및 하이픈(-)을 포함할 수 있으며 최대 255자 길이입니다. 이름에 공백을 포함하려면 전체 이름을 큰따옴표로 묶으십시오. 각 라우팅 정책 이름은 구성 내에서 고유해야 합니다.
정책이 생성되고 이름이 지정되면 활성화되기 전에 적용해야 합니다. 라우팅 정책은 구성 계층의 수준에서 protocols protocol-name and export 문을 사용하여 import 적용합니다.
문에서는 import 경로를 라우팅 프로토콜에서 라우팅 라우팅 테이블로 가져올 때 평가할 라우팅 정책의 이름을 나열합니다.
문에서는 export 경로를 라우팅 라우팅 테이블에서 동적 라우팅 프로토콜로 내보낼 때 평가할 라우팅 정책의 이름을 나열합니다. 활성 경로만 라우팅 테이블에서 내보낼 수 있습니다.
정책을 두 개 이상 지정하고 정책 체인을 생성하려면 공백을 구분자로 사용하여 정책을 나열합니다. 여러 정책이 지정되면 정책은 지정된 순서대로 평가됩니다. 수락 또는 거부 작업이 실행되는 순간 정책 체인 평가가 종료됩니다.
명시적으로 구성된 경로
명시적으로 구성된 경로는 사용자가 구성한 경로입니다. 직접 경로는 명시적으로 구성되지 않습니다. 인터페이스에 구성된 IP 주소의 결과로 생성됩니다. 명시적으로 구성된 경로에는 집계, 생성, 로컬 및 정적 경로가 포함됩니다. (집계 경로는 공통 주소가 있는 경로 그룹을 하나의 경로로 추출하는 경로입니다. 생성된 경로는 라우팅 테이블에 특정 목적지에 도달하는 방법에 대한 정보가 없을 때 사용되는 경로입니다. 로컬 경로는 라우터 인터페이스에 할당된 IP 주소입니다. 정적 경로는 목적지에 대한 변경 없는 경로입니다.)
정책 프레임워크 소프트웨어는 명시적으로 구성된 직접 경로를 라우팅 프로토콜을 통해 학습한 것처럼 처리합니다. 따라서 라우팅 테이블로 가져올 수 있습니다. 이 프로토콜은 실제 라우팅 프로토콜이 아니기 때문에 경로를 라우팅 테이블에서 유사 프로토콜로 내보낼 수 없습니다. 그러나 집계, 직접 경로, 생성 경로 및 정적 경로는 라우팅 테이블에서 라우팅 프로토콜로 내보낼 수 있지만 로컬 경로는 내보낼 수 없습니다.
기본적으로 BGP는 BGP에서 학습한 경로만 내보냅니다. 다른 프로토콜(예: 정적, 직접 또는 IGP)에서 학습한 경로는 라우팅 정책에서 명시적으로 허용하지 않는 한 내보내지지 않습니다.
명시적 정책은 암시적 기본 설정을 재정의합니다. 라우팅 정책이 구성되면 암시적 동작보다 우선합니다. 라우팅 정책을 구성하지 않은 경우 BGP는 암시적 선호 동작을 적용합니다. 설계상 BGP는 암시적 기본 설정보다 로컬로 구성된 명시적 정책을 선호합니다.
또한보십시오
예: BGP 계층의 다른 수준에서 라우팅 정책 적용
이 예는 간단한 네트워크 토폴로지에서 구성된 BGP를 보여주고 라우팅 정책이 BGP 구성의 다른 수준에서 적용될 때 어떻게 효과를 발휘하는지 설명합니다.
요구 사항
이 예제를 구성하기 전에 디바이스 초기화 이외의 특별한 구성은 필요하지 않습니다.
개요
BGP의 경우 다음과 같이 정책을 적용할 수 있습니다.
-
BGP global
importandexportstatements—계층 수준에서[edit protocols bgp]이러한 문을 포함합니다(라우팅 인스턴스의 경우, 계층 수준에서[edit routing-instances routing-instance-name protocols bgp]이러한 문을 포함). -
그룹
import및export문 - 계층 수준에서[edit protocols bgp group group-name]이러한 문을 포함합니다(라우팅 인스턴스의 경우, 계층 수준에서[edit routing-instances routing-instance-name protocols bgp group group-name]이러한 문 포함). -
피어
import및export문 - 계층 수준에서[edit protocols bgp group group-name neighbor address]이러한 문을 포함합니다(라우팅 인스턴스의 경우, 계층 수준에서[edit routing-instances routing-instance-name protocols bgp group group-name neighbor address]이러한 문 포함). -
family
importandexportstatements - 계층 수준에서[edit protocols bgp family nlri]이러한 문을 포함합니다(라우팅 인스턴스의 경우, 계층 수준에서[edit routing-instances routing-instance-name protocols bgp family nlri]이러한 문을 포함).
피어 수준 import 또는 export 문은 그룹 import 또는 export 문보다 우선합니다. 그룹 수준 import 또는 export 문은 글로벌 BGP import 또는 export 문보다 우선합니다.
이 예에서는 라는 send-direct 정책이 글로벌 수준에서 적용되고, 라는 또 send-192.168.0.1 다른 정책이 그룹 수준에서 적용되며, 라는 send-192.168.20.1 세 번째 정책이 neighbor 수준에서 적용됩니다.
user@host# show protocols
bgp {
local-address 172.16.1.1;
export send-direct;
group internal-peers {
type internal;
export send-192.168.0.1;
neighbor 172.16.2.2 {
export send-192.168.20.1;
}
neighbor 172.16.3.3;
}
group other-group {
type internal;
neighbor 172.16.4.4;
}
}
종종 잘못 이해되고 문제를 일으킬 수 있는 키 포인트는 이러한 구성에서는 가장 명시적인 정책만 적용된다는 것입니다. neighbor 수준 정책은 그룹 수준 정책보다 더 명시적이며, 결과적으로 글로벌 정책보다 더 명시적입니다.
neighbor 172.16.2.2는 send-192.168.20.1 정책의 적용만 받습니다. 더 구체적인 것이 없는 neighbor 172.16.3.3은 send-192.168.0.1 정책의 적용만 받습니다. 한편, 그룹 other-group의 neighbor 172.16.4.4는 그룹 또는 neighbor 수준 정책이 없으므로 send-direct 정책을 사용합니다.
neighbor 172.16.2.2가 세 정책 모두의 기능을 수행해야 하는 경우, 다른 세 개의 기능을 포함하는 새로운 neighbor 수준 정책을 작성하고 적용하거나 기존 세 개의 정책을 모두 체인으로 neighbor 172.16.2.2에 적용할 수 있습니다.
토폴로지
그림 1 은 샘플 네트워크를 보여줍니다.
에 라우팅 정책 적용
CLI 빠른 구성 은 그림 1의 모든 디바이스에 대한 구성을 보여줍니다.
섹션 #d10e247__d10e501 은 디바이스 R1의 단계를 설명합니다.
구성
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 변경한 다음, 계층 수준에서 [edit] 명령을 복사하여 CLI에 붙여 넣습니다.
디바이스 R1
set interfaces fe-1/2/0 unit 0 description to-R2 set interfaces fe-1/2/0 unit 0 family inet address 10.10.10.1/30 set interfaces lo0 unit 0 family inet address 172.16.1.1/32 set protocols bgp local-address 172.16.1.1 set protocols bgp export send-direct set protocols bgp group internal-peers type internal set protocols bgp group internal-peers export send-static-192.168.0 set protocols bgp group internal-peers neighbor 172.16.2.2 export send-static-192.168.20 set protocols bgp group internal-peers neighbor 172.16.3.3 set protocols bgp group other-group type internal set protocols bgp group other-group neighbor 172.16.4.4 set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface fe-1/2/0.0 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set policy-options policy-statement send-static-192.168.0 term 1 from protocol static set policy-options policy-statement send-static-192.168.0 term 1 from route-filter 192.168.0.0/24 orlonger set policy-options policy-statement send-static-192.168.0 term 1 then accept set policy-options policy-statement send-static-192.168.20 term 1 from protocol static set policy-options policy-statement send-static-192.168.20 term 1 from route-filter 192.168.20.0/24 orlonger set policy-options policy-statement send-static-192.168.20 term 1 then accept set routing-options static route 192.168.0.1/32 discard set routing-options static route 192.168.20.1/32 discard set routing-options router-id 172.16.1.1 set routing-options autonomous-system 17
디바이스 R2
set interfaces fe-1/2/0 unit 0 description to-R1 set interfaces fe-1/2/0 unit 0 family inet address 10.10.10.2/30 set interfaces fe-1/2/1 unit 0 description to-R3 set interfaces fe-1/2/1 unit 0 family inet address 10.10.10.5/30 set interfaces lo0 unit 0 family inet address 172.16.2.2/32 set protocols bgp group internal-peers type internal set protocols bgp group internal-peers local-address 172.16.2.2 set protocols bgp group internal-peers neighbor 172.16.3.3 set protocols bgp group internal-peers neighbor 172.16.1.1 set protocols bgp group internal-peers neighbor 172.16.4.4 set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface fe-1/2/0.0 set protocols ospf area 0.0.0.0 interface fe-1/2/1.0 set routing-options router-id 172.16.2.2 set routing-options autonomous-system 17
디바이스 R3
set interfaces fe-1/2/1 unit 0 description to-R2 set interfaces fe-1/2/1 unit 0 family inet address 10.10.10.6/30 set interfaces fe-1/2/2 unit 0 description to-R4 set interfaces fe-1/2/2 unit 0 family inet address 10.10.10.9/30 set interfaces lo0 unit 0 family inet address 172.16.3.3/32 set protocols bgp group internal-peers type internal set protocols bgp group internal-peers local-address 172.16.3.3 set protocols bgp group internal-peers neighbor 172.16.2.2 set protocols bgp group internal-peers neighbor 172.16.1.1 set protocols bgp group internal-peers neighbor 172.16.4.4 set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface fe-1/2/1.0 set protocols ospf area 0.0.0.0 interface fe-1/2/2.0 set routing-options router-id 172.16.3.3 set routing-options autonomous-system 17
디바이스 R4
set interfaces fe-1/2/2 unit 0 description to-R3 set interfaces fe-1/2/2 unit 0 family inet address 10.10.10.10/30 set interfaces lo0 unit 0 family inet address 172.16.4.4/32 set protocols bgp group internal-peers type internal set protocols bgp group internal-peers local-address 172.16.4.4 set protocols bgp group internal-peers neighbor 172.16.2.2 set protocols bgp group internal-peers neighbor 172.16.1.1 set protocols bgp group internal-peers neighbor 172.16.3.3 set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface fe-1/2/2.0 set routing-options router-id 172.16.4.4 set routing-options autonomous-system 17
절차
단계별 절차
다음 예에서는 구성 계층에서 다양한 수준을 탐색해야 합니다. CLI 탐색에 대한 정보는 CLI 사용자 가이드의 구성 모드에서 CLI 편집기 사용을 참조하십시오.
IS-IS 기본 경로 정책 구성:
디바이스 인터페이스를 구성합니다.
[edit interfaces] user@R1# set fe-1/2/0 unit 0 description to-R2 user@R1# set fe-1/2/0 unit 0 family inet address 10.10.10.1/30 user@R1# set lo0 unit 0 family inet address 172.16.1.1/32
인터페이스에서 OSPF 또는 다른 내부 게이트웨이 프로토콜(IGP)을 활성화합니다.
[edit protocols OSPF area 0.0.0.0] user@R1# set interface lo0.0 passive user@R1# set interface fe-1/2/0.0
정적 경로를 구성합니다.
[edit routing-options] user@R1# set static route 192.168.0.1/32 discard user@R1# set static route 192.168.20.1/32 discard
라우팅 정책을 활성화합니다.
[edit protocols policy-options] user@R1# set policy-statement send-direct term 1 from protocol direct user@R1# set policy-statement send-direct term 1 then accept user@R1# set policy-statement send-static-192.168.0 term 1 from protocol static user@R1# set policy-statement send-static-192.168.0 term 1 from route-filter 192.168.0.0/24 orlonger user@R1# set policy-statement send-static-192.168.0 term 1 then accept user@R1# set policy-statement send-static-192.168.20 term 1 from protocol static user@R1# set policy-statement send-static-192.168.20 term 1 from route-filter 192.168.20.0/24 orlonger user@R1# set policy-statement send-static-192.168.20 term 1 then accept
BGP를 구성하고 내보내기 정책을 적용합니다.
[edit protocols bgp] user@R1# set local-address 172.16.1.1 user@R1# set protocols bgp export send-direct user@R1# set group internal-peers type internal user@R1# set group internal-peers export send-static-192.168.0 user@R1# set group internal-peers neighbor 172.16.2.2 export send-static-192.168.20 user@R1# set group internal-peers neighbor 172.16.3.3 user@R1# set group other-group type internal user@R1# set group other-group neighbor 172.16.4.4
라우터 ID 및 AS(Autonomous System) 번호를 구성합니다.
[edit routing-options] user@R1# set router-id 172.16.1.1 user@R1# set autonomous-system 17
디바이스 구성을 완료하면 구성을 커밋합니다.
[edit] user@R1# commit
결과
구성 모드에서 , show protocols, 및 show routing-options show policy-options명령을 실행show interfaces하여 구성을 확인합니다. 출력에 의도한 구성이 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정합니다.
user@R1# show interfaces
fe-1/2/0 {
unit 0 {
description to-R2;
family inet {
address 10.10.10.1/30;
}
}
}
lo0 {
unit 0 {
family inet {
address 172.16.1.1/32;
}
}
}
user@R1# show protocols
bgp {
local-address 172.16.1.1;
export send-direct;
group internal-peers {
type internal;
export send-static-192.168.0;
neighbor 172.16.2.2 {
export send-static-192.168.20;
}
neighbor 172.16.3.3;
}
group other-group {
type internal;
neighbor 172.16.4.4;
}
}
ospf {
area 0.0.0.0 {
interface lo0.0 {
passive;
}
interface fe-1/2/0.0;
}
}
user@R1# show policy-options
policy-statement send-direct {
term 1 {
from protocol direct;
then accept;
}
}
policy-statement send-static-192.168.0 {
term 1 {
from {
protocol static;
route-filter 192.168.0.0/24 orlonger;
}
then accept;
}
}
policy-statement send-static-192.168.20 {
term 1 {
from {
protocol static;
route-filter 192.168.20.0/24 orlonger;
}
then accept;
}
}
user@R1# show routing-options
static {
route 192.168.0.1/32 discard;
route 192.168.20.1/32 discard;
}
router-id 172.16.1.1;
autonomous-system 17;
검증
구성이 제대로 작동하고 있는지 확인합니다.
BGP 경로 학습 확인
목적
라우팅 테이블을 확인하여 BGP 내보내기 정책이 예상대로 작동하는지 확인합니다.
작업
user@R1> show route protocol direct
inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
172.16.1.1/32 *[Direct/0] 1d 22:19:47
> via lo0.0
10.10.10.0/30 *[Direct/0] 1d 22:19:47
> via fe-1/2/0.0
user@R1> show route protocol static
inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
192.168.0.1/32 *[Static/5] 02:20:03
Discard
192.168.20.1/32 *[Static/5] 02:20:03
Discard
user@R2> show route protocol bgp
inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
192.168.20.1/32 *[BGP/170] 02:02:40, localpref 100, from 172.16.1.1
AS path: I, validation-state: unverified
> to 10.10.10.1 via fe-1/2/0.0
user@R3> show route protocol bgp
inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
192.168.0.1/32 *[BGP/170] 02:02:51, localpref 100, from 172.16.1.1
AS path: I, validation-state: unverified
> to 10.10.10.5 via fe-1/2/1.0
user@R4> show route protocol bgp
inet.0: 9 destinations, 11 routes (9 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
172.16.1.1/32 [BGP/170] 1d 20:38:54, localpref 100, from 172.16.1.1
AS path: I, validation-state: unverified
> to 10.10.10.9 via fe-1/2/2.0
10.10.10.0/30 [BGP/170] 1d 20:38:54, localpref 100, from 172.16.1.1
AS path: I, validation-state: unverified
> to 10.10.10.9 via fe-1/2/2.0
의미
디바이스 R1에서 명령은 show route protocol direct 두 개의 직접 경로인 172.16.1.1/32 및 10.10.10.0/30을 표시합니다. 이 명령은 show route protocol static 두 개의 고정 경로인 192.168.0.1/32 및 192.168.20.1/32를 표시합니다.
디바이스 R2에서 명령은 show route protocol bgp 디바이스 R2가 BGP를 통해 학습한 유일한 경로가 192.168.20.1/32 경로라고 표시합니다.
디바이스 R3에서 명령은 show route protocol bgp 디바이스 R3이 BGP를 통해 학습한 유일한 경로가 192.168.0.1/32 경로임을 보여줍니다.
디바이스 R4에서 명령은 show route protocol bgp 디바이스 R4가 BGP를 통해 학습한 유일한 경로가 172.16.1.1/32 및 10.10.10.0/30 경로라고 표시합니다.
BGP 경로 수신 확인
목적
디바이스 R1에서 수신된 BGP 경로를 확인하여 BGP 내보내기 정책이 예상대로 작동하는지 확인합니다.
작업
user@R2> show route receive-protocol bgp 172.16.1.1 inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 192.168.20.1/32 172.16.1.1 100 I
user@R3> show route receive-protocol bgp 172.16.1.1 inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 192.168.0.1/32 172.16.1.1 100 I
user@R4> show route receive-protocol bgp 172.16.1.1 inet.0: 9 destinations, 11 routes (9 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path 172.16.1.1/32 172.16.1.1 100 I 10.10.10.0/30 172.16.1.1 100 I
의미
디바이스 R2에서 명령은 route receive-protocol bgp 172.16.1.1 디바이스 R2가 디바이스 R1에서 단 하나의 BGP 경로인 192.168.20.1/32를 수신한 것을 보여줍니다.
디바이스 R3에서 명령은 route receive-protocol bgp 172.16.1.1 디바이스 R3이 디바이스 R1에서 단 하나의 BGP 경로인 192.168.0.1/32를 수신한 것을 보여줍니다.
디바이스 R4에서 명령은 route receive-protocol bgp 172.16.1.1 디바이스 R4가 디바이스 R1에서 두 개의 BGP 경로인 172.16.1.1/32 및 10.10.10.0/30을 수신한 것을 보여줍니다.
요약하자면, BGP의 서로 다른 CLI 계층에 여러 정책이 적용되면, 가장 구체적인 애플리케이션만 평가되며 다른 덜 구체적인 정책 애플리케이션은 제외됩니다. 이 점은 이해되는 것처럼 보이지만 라우터 구성 중 쉽게 잊어버리며, neighbor 수준 정책이 글로벌 또는 그룹 수준 정책과 결합된다고 잘못 믿게 되면 정책 동작이 예상대로 이루어지지 않습니다.
예: BGP 라우팅 테이블에 OSPF 경로 삽입
이 예는 OSPF 경로를 BGP 라우팅 테이블에 삽입하는 정책을 만드는 방법을 보여줍니다.
요구 사항
시작하기 전에:
네트워크 인터페이스를 구성합니다.
외부 피어 세션을 구성합니다. 예: 외부 BGP 포인트 투 포인트 피어 세션 구성을 참조하십시오.
피어 간의 내부 게이트웨이 프로토콜(IGP) 세션을 구성합니다.
개요
이 예에서는 라는 injectpolicy1 라우팅 정책과 라는 라우팅 용어 injectterm1를 생성합니다. 이 정책은 OSPF 경로를 BGP 라우팅 테이블에 삽입합니다.
토폴로지
구성
라우팅 정책 구성
CLI 빠른 구성
이 예제를 빠르게 구성하려면 다음 명령을 복사하여 텍스트 파일에 붙여 넣은 다음 줄 바꿈을 제거하고, 네트워크 구성과 일치하는 데 필요한 세부 정보를 변경하고, 명령을 복사하여 [edit] 계층 수준의 CLI에 붙여넣은 다음, 구성 모드에서 입력합니다 commit .
set policy-options policy-statement injectpolicy1 term injectterm1 from protocol ospf set policy-options policy-statement injectpolicy1 term injectterm1 from area 0.0.0.1 set policy-options policy-statement injectpolicy1 term injectterm1 then accept set protocols bgp export injectpolicy1
단계별 절차
다음 예에서는 구성 계층에서 다양한 수준을 탐색해야 합니다. CLI 탐색에 대한 정보는 CLI 사용자 가이드의 구성 모드에서 CLI 편집기 사용을 참조하십시오.
OSPF 경로를 BGP 라우팅 테이블에 삽입하려면
정책 용어를 생성합니다.
[edit policy-options policy-statement injectpolicy1] user@host# set term injectterm1
OSPF를 일치 조건으로 지정합니다.
[edit policy-options policy-statement injectpolicy1 term injectterm1] user@host# set from protocol ospf
OSPF 영역의 경로를 일치 조건으로 지정합니다.
[edit policy-options policy-statement injectpolicy1 term injectterm1] user@host# set from area 0.0.0.1
이전 조건이 일치하는 경우 경로를 수락하도록 지정합니다.
[edit policy-options policy-statement injectpolicy1 term injectterm1] user@host# set then accept
BGP에 라우팅 정책 적용합니다.
[edit] user@host# set protocols bgp export injectpolicy1
결과
구성 모드에서 및 show protocols bgp 명령을 show policy-options 입력하여 구성을 확인합니다. 출력에 의도한 구성이 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정합니다.
user@host# show policy-options
policy-statement injectpolicy1 {
term injectterm1 {
from {
protocol ospf;
area 0.0.0.1;
}
then accept;
}
}
user@host# show protocols bgp export injectpolicy1;
디바이스 구성이 완료되면 구성 모드에서 들어갑니다 commit .
라우팅 정책에 대한 추적 구성
CLI 빠른 구성
이 예제를 빠르게 구성하려면 다음 명령을 복사하여 텍스트 파일에 붙여 넣은 다음 줄 바꿈을 제거하고, 네트워크 구성과 일치하는 데 필요한 세부 정보를 변경하고, 명령을 복사하여 [edit] 계층 수준의 CLI에 붙여넣은 다음, 구성 모드에서 입력합니다 commit .
set policy-options policy-statement injectpolicy1 term injectterm1 then trace set routing-options traceoptions file ospf-bgp-policy-log set routing-options traceoptions file size 5m set routing-options traceoptions file files 5 set routing-options traceoptions flag policy
단계별 절차
다음 예에서는 구성 계층에서 다양한 수준을 탐색해야 합니다. CLI 탐색에 대한 정보는 CLI 사용자 가이드의 구성 모드에서 CLI 편집기 사용을 참조하십시오.
정책에 추적 작업을 포함합니다.
[edit policy-options policy-statement injectpolicy1 term injectterm1] user@host# then trace
출력에 대한 추적 파일을 구성합니다.
[edit routing-options traceoptions] user@host# set file ospf-bgp-policy-log user@host# set file size 5m user@host# set file files 5 user@host# set flag policy
결과
구성 모드에서 및 show routing-options 명령을 show policy-options 입력하여 구성을 확인합니다. 출력에 의도한 구성이 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정합니다.
user@host# show policy-options
policy-statement injectpolicy1 {
term injectterm1 {
then {
trace;
}
}
}
user@host# show routing-options
traceoptions {
file ospf-bgp-policy-log size 5m files 5;
flag policy;
}
디바이스 구성이 완료되면 구성 모드에서 들어갑니다 commit .
검증
BGP 경로 보급을 제어하기 위한 라우팅 정책 구성
모든 라우팅 프로토콜은 Junos OS 라우팅 테이블을 사용하여 학습한 경로를 저장하고 프로토콜 패킷에 보급할 경로를 결정합니다. 라우팅 정책을 사용하면 라우팅 프로토콜이 라우팅 테이블에 저장하고 라우팅 테이블에서 검색하는 경로를 제어할 수 있습니다. 라우팅 정책에 대한 자세한 내용은 라우팅 정책, 방화벽 필터 및 트래픽 폴리서 사용자 설명서를 참조하십시오.
BGP 라우팅 정책 구성 시 다음 작업을 수행할 수 있습니다.
- 라우팅 정책 적용
- 비활성 경로를 보급하도록 BGP 설정
- 내부 피어에 최상의 외부 경로를 보급하기 위한 BGP 구성
- BGP가 라우팅 테이블과 경로를 교환하는 빈도 구성
- 경로 보급 억제 비활성화
라우팅 정책 적용
계층 수준에서 라우팅 정책을 정의합니다.[edit policy-options] BGP에 대해 정의한 정책을 적용하려면 BGP 구성 내에 및 문을 export 포함 import 합니다.
다음과 같이 정책을 적용할 수 있습니다.
-
BGP global
importandexportstatements—계층 수준에서[edit protocols bgp]이러한 문을 포함합니다(라우팅 인스턴스의 경우, 계층 수준에서[edit routing-instances routing-instance-name protocols bgp]이러한 문을 포함). -
그룹
import및export문 - 계층 수준에서[edit protocols bgp group group-name]이러한 문을 포함합니다(라우팅 인스턴스의 경우, 계층 수준에서[edit routing-instances routing-instance-name protocols bgp group group-name]이러한 문 포함). -
피어
import및export문 - 계층 수준에서[edit protocols bgp group group-name neighbor address]이러한 문을 포함합니다(라우팅 인스턴스의 경우, 계층 수준에서[edit routing-instances routing-instance-name protocols bgp group group-name neighbor address]이러한 문 포함). -
family
importandexportstatements - 계층 수준에서[edit protocols bgp family nlri]이러한 문을 포함합니다(라우팅 인스턴스의 경우, 계층 수준에서[edit routing-instances routing-instance-name protocols bgp family nlri]이러한 문을 포함).
피어 수준 import 또는 export 문은 그룹 import 또는 export 문보다 우선합니다. 그룹 수준 import 또는 export 문은 글로벌 BGP import 또는 export 문보다 우선합니다.
정책을 적용하려면 다음 섹션을 참조하십시오.
BGP에서 라우팅 테이블로 가져올 경로에 정책 적용
BGP에서 라우팅 테이블로 가져오는 경로에 정책을 적용하려면 평가할 하나 이상의 정책 이름을 나열하는 문을 포함 import 합니다.
import [ policy-names ];
이 문을 포함할 수 있는 계층 수준 목록은 이 문에 대한 문 요약 섹션을 참조하십시오.
정책을 두 개 이상 지정하면 첫 번째부터 마지막까지 지정된 순서대로 평가되고 첫 번째 일치 필터가 경로에 적용됩니다. 일치하는 항목이 없으면 BGP는 BGP 라우팅 장치에서 학습한 경로만 라우팅 테이블에 배치합니다.
라우팅 테이블에서 BGP로 내보내는 경로에 정책 적용
라우팅 테이블에서 BGP로 내보내는 경로에 정책을 적용하려면 평가할 하나 이상의 정책 이름을 나열하는 문을 포함 export 합니다.
export [ policy-names ];
이 문을 포함할 수 있는 계층 수준 목록은 이 문에 대한 문 요약 섹션을 참조하십시오.
정책을 두 개 이상 지정하면 첫 번째부터 마지막까지 지정된 순서대로 평가되고 첫 번째 일치 필터가 경로에 적용됩니다. 필터와 일치하는 경로가 없는 경우 라우팅 테이블은 BGP에서 학습한 경로만 BGP로 내보냅니다.
비활성 경로를 보급하도록 BGP 설정
기본적으로 BGP는 업데이트 메시지에서 수신한 경로 정보를 Junos OS 라우팅 테이블에 저장하고, 라우팅 테이블은 활성 경로만 BGP로 내보내고, BGP는 이를 피어에 보급합니다. 라우팅 테이블을 BGP로 내보내려면 Junos OS가 활성 경로로 선택하지 않았더라도 BGP가 학습한 최상의 경로를 BGP로 내보내려면 다음 문을 포함합니다.advertise-inactive
advertise-inactive;
이 문을 포함할 수 있는 계층 수준 목록은 이 문에 대한 문 요약 섹션을 참조하십시오.
내부 피어에 최상의 외부 경로를 보급하기 위한 BGP 구성
일반적으로 배포된 BGP 구현은 최상의 경로가 아닌 한 로컬 선호 값이 가장 높은 외부 경로를 내부 피어에 알리지 않습니다. 이 동작은 이전 버전의 BGP 버전 4 사양인 RFC 1771에서 요구되었지만, 일반적으로 보급되는 정보의 양을 최소화하고 라우팅 루프를 방지하기 위해 따르지 않았습니다. 그러나 특히 IBGP 경로 변동을 초래할 수 있는 상황에서 최상의 외부 경로를 보급하는 것이 유익한 시나리오가 있습니다.
Junos OS 릴리스 9.3 이상에서는 최상의 경로가 내부 경로인 경우에도 최상의 외부 경로를 내부 BGP(IBGP) 메시 그룹, 경로 리플렉터 클러스터 또는 AS(Autonomous System) 페더레이션에 알리도록 BGP를 구성할 수 있습니다.
경로 리플렉터에서 문을 advertise-external 구성하려면 문을 사용하여 클러스터 내 리플렉션을 비활성화해야 합니다 no-client-reflect .
라우팅 디바이스가 클러스터의 경로 리플렉터로 구성된 경우, 경로 리플렉터가 보급하는 경로는 동일한 클러스터 식별자를 가진 내부 피어에서 수신되거나 두 피어 모두 구성된 클러스터 식별자가 없는 경우 내부로 간주됩니다. 다른 클러스터에 속하는 내부 피어에서 수신된 경로, 즉 다른 클러스터 식별자를 가진 경로는 외부 피어로 간주됩니다.
페더레이션에서 경로를 페더레이션 경계 라우터에 보급할 때 다른 페더레이션 하위 AS의 모든 경로는 외부 경로로 간주됩니다.
또한 경로 선택 프로세스가 MED(Multiple Exit Discriminator) 메트릭이 평가되는 지점에 도달하는 경우에만 외부 경로를 알리도록 BGP를 구성할 수 있습니다. 결과적으로, AS 경로가 활성 경로보다 더 나쁜(즉, 더 긴) 외부 경로는 보급되지 않습니다.
또한 Junos OS는 보급된 경로의 상태와 일치하는 BGP 내보내기 정책 구성을 지원합니다. 활성 경로 또는 비활성 경로에서 일치시킬 수 있습니다. 자세한 정보는 라우팅 정책, 방화벽 필터 및 트래픽 폴리서 사용자 가이드를 참조하십시오.
내부 피어로의 최상의 외부 경로를 보급하도록 BGP를 구성하려면 다음 문을 포함합니다.advertise-external
advertise-external;
문은 advertise-external 그룹 및 neighbor 수준에서 모두 지원됩니다. neighbor 수준에서 문을 구성하는 경우 그룹 내 모든 neighbor에 대해 구성해야 합니다. 그렇지 않으면 그룹이 자동으로 다른 그룹으로 분할됩니다.
이 문을 구성할 수 있는 전체 계층 수준 목록은 이 문에 대한 문 요약 섹션을 참조하십시오.
경로 선택 프로세스가 MED 값이 평가되는 지점에 도달하는 경우에만 최적의 외부 경로를 보급하도록 BGP를 구성하려면, 다음 문을 포함합니다.conditional
advertise-external {
conditional;
}
BGP가 라우팅 테이블과 경로를 교환하는 빈도 구성
BGP는 업데이트 메시지로부터 받은 경로 정보를 라우팅 테이블에 저장하고, 라우팅 테이블은 활성 경로를 라우팅 테이블에서 BGP로 내보냅니다. 그런 다음 BGP는 내보낸 경로를 피어에 보급합니다. 기본적으로 BGP와 라우팅 테이블 간의 경로 정보 교환은 경로가 수신된 직후에 발생합니다. 이러한 즉각적인 경로 정보 교환은 네트워크 연결성 정보에 불안정성을 야기할 수 있습니다. 이를 방지하기 위해 BGP와 라우팅 테이블이 경로 정보를 교환하는 시간을 지연할 수 있습니다.
BGP와 라우팅 테이블이 경로 정보를 교환하는 빈도를 구성하려면 다음 문을 포함합니다.out-delay
out-delay seconds;
기본적으로 라우팅 테이블은 BGP에서 학습한 경로 정보의 일부를 유지합니다. 라우팅 테이블에서 이 정보를 모두 또는 전혀 유지하지 않도록 하려면 다음 문을 포함합니다.keep
keep (all | none);
이러한 문을 포함할 수 있는 계층 수준 목록은 해당 문에 대한 문 요약 섹션을 참조하십시오.
라우팅 테이블은 다음 방법 중 하나로 BGP에서 학습한 경로 정보를 유지할 수 있습니다.
기본값(문 생
keep략) - AS 경로가 루프되고 루프가 로컬 AS를 포함하는 경로를 제외하고 BGP에서 학습한 모든 경로 정보를 유지합니다.keep all—BGP에서 학습한 모든 경로 정보를 보관합니다.keep none—피어로부터 수신되었지만 가져오기 정책 또는 AS 경로나 다음 홉과 같은 기타 온전성 검사에서 거부된 경로를 삭제합니다. BGP 세션에 대해 구성keep none하고 인바운드 정책이 변경되면 Junos OS는 피어가 보급하는 전체 경로 집합을 강제로 다시 보급합니다.
AS 경로 복구 상황에서, 이론적으로 AS 경로 루프 제한이 변경될 때 소프트 재구성 중에 루프가 있는 경로를 사용할 수 있습니다. 그러나 기본값과 keep all.
다음과 같은 시나리오를 고려하십시오.
피어는 경로를 학습한 피어에 대한 경로를 다시 보급합니다.
이 문제는 다음과 같은 경우에 발생할 수 있습니다.
다른 벤더의 라우팅 디바이스는 전송 피어에 경로를 다시 보급합니다.
전송 피어에 대한 경로를 다시 보급하지 않는 Junos OS 피어의 기본 동작은 구성을 통해
advertise-peer-as재정의됩니다.
프로바이더 에지(PE) 라우팅 디바이스는 예상되는 경로 대상이 없는 모든 VPN 경로를 삭제합니다.
구성된 경우 keep all , 위의 시나리오에서 수신된 경로를 폐기하는 동작이 무시됩니다.
경로 보급 억제 비활성화
Junos OS는 한 EBGP 피어에서 학습한 경로를 동일한 외부 BGP(EBGP) 피어로 다시 알리지 않습니다. 또한 소프트웨어는 라우팅 인스턴스에 관계없이 원래 피어와 동일한 AS에 있는 EBGP 피어에 이러한 경로를 다시 알리지 않습니다. 구성에 문을 포함하여 advertise-peer-as 이 동작을 수정할 수 있습니다. 기본 보급 억제를 비활성화하려면 다음 문을 포함합니다.advertise-peer-as
advertise-peer-as;
문이 as-override 구성에 포함된 경우 경로 억제 기본 동작이 비활성화됩니다.
구성에 문을 포함 advertise-peer-as 하면 BGP는 이 확인에 관계없이 경로를 보급합니다.
기본 동작을 복원하려면 구성에 문을 포함합니다.no-advertise-peer-as
no-advertise-peer-as;
구성에 및 as-override 문을 no-advertise-peer-as 모두 포함하면 문은 no-advertise-peer-as 무시됩니다. 이러한 문을 여러 계층 수준에 포함할 수 있습니다.
이러한 문을 포함할 수 있는 계층 수준 목록은 해당 문에 대한 문 요약 섹션을 참조하십시오.
또한보십시오
예: 내부 피어에 최상의 외부 경로를 보급하는 라우팅 정책 구성
RFC 1771에 정의된 BGP 프로토콜 사양은 BGP 피어가 내부 피어에 더 높은 선호 외부 경로를 보급하도록 지정합니다. 이 경로가 전체적으로 최선이 아니더라도 (다시 말해 최고 경로가 내부 경로라고 해도) 적용됩니다. 실제로 배포된 BGP 구현은 이 규칙을 따르지 않습니다. 사양에서 벗어나는 이유는 다음과 같습니다.
보급되는 정보의 양을 최소화합니다. BGP는 사용 가능한 경로 수에 따라 확장됩니다.
라우팅 및 포워딩 루프 회피.
그러나 RFC 1771에 지정된 최고 외부 경로를 보급하는 동작이 유익할 수 있는 여러 시나리오가 있습니다. 경로 다양화가 복원 시간을 줄이는 데 도움이 될 수 있으므로 경로 정보 제한이 항상 바람직한 것은 아닙니다. 또한 최고 외부 경로 보급은 RFC 3345, Border Gateway Protocol(BGP) 지속 경로 진동 상태에서 설명된 내부 BGP(IBGP) 경로 진동 문제를 해결할 수도 있습니다.
명령문은 advertise-external BGP 스피커의 동작을 수정하여 최상의 전체 경로가 내부 경로인 경우에도 IBGP 피어에 최상의 외부 경로를 보급합니다.
문은 advertise-external 그룹 및 neighbor 수준에서 모두 지원됩니다. neighbor 수준에서 문을 구성하는 경우 그룹 내 모든 neighbor에 대해 구성해야 합니다. 그렇지 않으면 그룹이 자동으로 다른 그룹으로 분할됩니다.
이 conditional 옵션은 경로 선택 프로세스가 MED(Multiple Exit Discriminator) 메트릭이 평가되는 지점에 도달할 때만 외부 경로가 보급되도록 설정의 advertise-external 동작을 제한합니다. 따라서, 예를 들어 AS 경로가 활성 경로보다 나쁜 (긴) 경우 외부 경로가 보급되지 않습니다. 이 conditional 옵션은 경로 선택 프로세스의 MED 단계까지 최상의 외부 경로와 활성 경로가 동일한 경우로 외부 경로 보급을 제한합니다. 최적의 외부 경로를 선택하는 데 사용되는 기준은 옵션의 구성 여부 conditional 와 관계없이 동일합니다.
또한 Junos OS는 보급된 경로의 상태와 일치하는 BGP 내보내기 정책 구성을 지원합니다. 다음과 같이 활성 또는 비활성 경로를 일치시킬 수 있습니다:
policy-options {
policy-statement name{
from state (active|inactive);
}
}
이 한정자는 내보내기 정책의 컨텍스트에서 사용할 때만 일치합니다. 비활성 경로(예: BGP)를 보급할 수 있는 프로토콜에 의해 경로가 보급될 경우, state inactive and advertise-external 문의 결과로 보급되는 경로와 일치합니다.advertise-inactive
예를 들어, 다음 구성은 내부 피어로의 BGP 내보내기 정책으로 사용되어 사용자 정의 커뮤니티로 설정으로 advertise-external 인해 보급된 경로를 표시할 수 있습니다. 해당 커뮤니티는 나중에 수신 라우터에 사용되어 포워딩 테이블에서 이러한 경로를 필터링할 수 있습니다. 이러한 메커니즘은 발신자가 포워딩에 사용하지 않는 보급 경로가 포워딩 루프로 이어질 수 있다는 우려를 해결하는 데 사용될 수 있습니다.
user@host# show policy-options
policy-statement mark-inactive {
term inactive {
from state inactive;
then {
community set comm-inactive;
}
}
term default {
from protocol bgp;
then accept;
}
then reject;
}
community comm-inactive members 65536:65284;
요구 사항
Junos OS 9.3 이상이 필요합니다.
개요
이 예는 라우팅 디바이스 세 개를 보여줍니다. 디바이스 R2는 디바이스 R1에 대한 외부 BGP(EBGP) 연결을 가지고 있습니다. 디바이스 R2는 디바이스 R3에 IBGP 연결을 가지고 있습니다.
디바이스 R1은 172.16.6.0/24를 보급합니다. 디바이스 R2는 디바이스 R1의 경로에 대한 가져오기 정책에서 로컬 기본 설정을 설정하지 않으므로, 172.16.6.0/24는 100의 기본 로컬 기본 설정을 갖습니다.
디바이스 R3은 200의 로컬 선호로 172.16.6.0/24를 보급합니다.
문이 advertise-external 디바이스 R2에서 구성되지 않은 경우, 디바이스 R2는 디바이스 R3으로 172.16.6.0/24를 보급하지 않습니다.
디바이스 R3에 대한 세션에서 디바이스 R2에 문이 구성되면 advertise-external , 디바이스 R2는 디바이스 R3으로 172.16.6.0/24를 보급합니다.
디바이스 R3에 대한 세션에서 디바이스 R2에 구성되면 advertise-external conditional , 디바이스 R2는 디바이스 R3으로 172.16.6.0/24를 보급하지 않습니다. 디바이스 R3에서 설정을 제거하고 then local-preference 200 디바이스 R2에 대한 설정을 추가 path-selection as-path-ignore 하면(따라서 경로 선택 기준이 경로 선택 프로세스의 MED 단계까지 동일), 디바이스 R2가 디바이스 R3으로 172.16.6.0/24를 보급합니다.
경로 리플렉터에서 문을 advertise-external 구성하려면, 문과 함께 no-client-reflect 클러스터 내 리플렉션을 비활성화해야 하며, 클라이언트 클러스터를 완전히 연결하여 중복 경로 보급의 전송을 막아야 합니다.
라우팅 디바이스가 클러스터의 경로 리플렉터로 구성된 경우, 경로 리플렉터가 보급하는 경로는 동일한 클러스터 식별자를 가진 내부 피어에서 수신되거나 두 피어 모두 구성된 클러스터 식별자가 없는 경우 내부로 간주됩니다. 다른 클러스터에 속하는 내부 피어에서 수신된 경로, 즉 다른 클러스터 식별자를 가진 경로는 외부 피어로 간주됩니다.
토폴로지
그림 2 는 샘플 네트워크를 보여줍니다.
CLI 빠른 구성 은 그림 2의 모든 디바이스에 대한 구성을 보여줍니다.
섹션 #d13e169__d13e347 에서는 디바이스 R2의 단계를 설명합니다.
구성
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 변경한 다음, 계층 수준에서 [edit] 명령을 복사하여 CLI에 붙여 넣습니다.
디바이스 R1
set interfaces fe-1/2/0 unit 0 description to-R2 set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set protocols bgp group ext type external set protocols bgp group ext export send-static set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 10.0.0.2 set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 from route-filter 172.16.6.0/24 exact set policy-options policy-statement send-static term 1 then accept set policy-options policy-statement send-static term 2 then reject set routing-options static route 172.16.6.0/24 reject set routing-options router-id 192.168.0.1 set routing-options autonomous-system 100
디바이스 R2
set interfaces fe-1/2/0 unit 0 description to-R1 set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.2/30 set interfaces fe-1/2/1 unit 0 description to-R3 set interfaces fe-1/2/1 unit 0 family inet address 10.0.0.5/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp group ext type external set protocols bgp group ext peer-as 100 set protocols bgp group ext neighbor 10.0.0.1 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.2 set protocols bgp group int advertise-external set protocols bgp group int neighbor 192.168.0.3 set protocols ospf area 0.0.0.0 interface fe-1/2/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set routing-options router-id 192.168.0.2 set routing-options autonomous-system 200
디바이스 R3
set interfaces fe-1/2/0 unit 6 family inet address 10.0.0.6/30 set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.3 set protocols bgp group int export send-static set protocols bgp group int neighbor 192.168.0.2 set protocols ospf area 0.0.0.0 interface fe-1/2/0.6 set protocols ospf area 0.0.0.0 interface lo0.0 passive set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then local-preference 200 set policy-options policy-statement send-static term 1 then accept set routing-options static route 172.16.6.0/24 reject set routing-options static route 0.0.0.0/0 next-hop 10.0.0.5 set routing-options autonomous-system 200
절차
단계별 절차
다음 예에서는 구성 계층에서 다양한 수준의 탐색이 필요합니다. CLI 탐색에 대한 정보는 Junos OS CLI 사용자 가이드의 구성 모드에서 CLI 편집기 사용을 참조하십시오.
디바이스 R2 구성:
디바이스 인터페이스를 구성합니다.
[edit interfaces] user@R2# set fe-1/2/0 unit 0 description to-R1 user@R2# set fe-1/2/0 unit 0 family inet address 10.0.0.2/30 user@R2# set fe-1/2/1 unit 0 description to-R3 user@R2# set fe-1/2/1 unit 0 family inet address 10.0.0.5/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
OSPF 또는 다른 내부 게이트웨이 프로토콜(IGP)을 구성합니다.
[edit protocols ospf area 0.0.0.0] user@R2# set interface fe-1/2/1.0 user@R2# set interface lo0.0 passive
디바이스 R1에 대한 EBGP 연결을 구성합니다.
[edit protocols bgp group ext] user@R2# set type external user@R2# set peer-as 100 user@R2# set neighbor 10.0.0.1
디바이스 R3에 대한 IBGP 연결을 구성합니다.
[edit protocols bgp group int] user@R2# set type internal user@R2# set local-address 192.168.0.2 user@R2# set neighbor 192.168.0.3
IBGP 그룹 피어링 세션에 문을 추가합니다
advertise-external.[edit protocols bgp group int] user@R2# set advertise-external
AS(Autonomous System) 번호와 라우터 ID를 구성합니다.
[edit routing-options ] user@R2# set router-id 192.168.0.2 user@R2# set autonomous-system 200
결과
구성 모드에서 , show protocols, show policy-options및 show routing-options 명령을 show interfaces입력하여 구성을 확인합니다. 출력에 의도한 구성이 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정합니다.
user@R2# show interfaces
fe-1/2/0 {
unit 0{
description to-R1;
family inet {
address 10.0.0.2/30;
}
}
}
fe-1/2/1 {
unit 0 {
description to-R3;
family inet {
address 10.0.0.5/30;
}
}
}
lo0 {
unit 0 {
family inet {
address 192.168.0.2/32;
}
}
}
user@R2# show protocols
bgp {
group ext {
type external;
peer-as 100;
neighbor 10.0.0.1;
}
group int {
type internal;
local-address 192.168.0.2;
advertise-external;
neighbor 192.168.0.3;
}
}
ospf {
area 0.0.0.0 {
interface fe-1/2/1.0;
interface lo0.0 {
passive;
}
}
}
user@R2# show routing-options router-id 192.168.0.2; autonomous-system 200;
디바이스 구성이 완료되면 구성 모드에서 들어갑니다 commit .
검증
구성이 제대로 작동하고 있는지 확인합니다.
BGP 활성 경로 확인
목적
디바이스 R2에서 172.16.6.0/24 접두사가 라우팅 테이블에 있고 예상되는 활성 경로가 있는지 확인합니다.
작업
user@R2> show route 172.16.6
inet.0: 8 destinations, 9 routes (8 active, 1 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
172.16.6.0/24 *[BGP/170] 00:00:07, localpref 200, from 192.168.0.3
AS path: I, validation-state: unverified
> to 10.0.0.6 via fe-1/2/1.0
[BGP/170] 03:23:03, localpref 100
AS path: 100 I, validation-state: unverified
> to 10.0.0.1 via fe-1/2/0.0
의미
디바이스 R2는 디바이스 R1과 디바이스 R3에서 모두 172.16.6.0/24 경로를 수신합니다. 디바이스 R3의 경로는 별표(*)로 지정된 활성 경로입니다. 활성 경로가 가장 높은 로컬 선호를 갖습니다. 두 경로의 로컬 기본 설정이 동일하더라도 디바이스 R3의 경로가 가장 짧은 AS 경로를 가지고 있기 때문에 활성 상태를 유지합니다.
외부 경로 보급 확인
목적
디바이스 R2에서 172.16.6.0/24 경로가 디바이스 R3으로 보급되는지 확인합니다.
작업
user@R2> show route advertising-protocol bgp 192.168.0.3 inet.0: 8 destinations, 9 routes (8 active, 1 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path 172.16.6.0/24 10.0.0.1 100 100 I
의미
디바이스 R2는 디바이스 R3으로 172.16.6.0/24 경로를 보급합니다.
디바이스 R3에서 경로 확인
목적
172.16.6.0/24 접두사가 디바이스 R3의 라우팅 테이블에 있는지 확인합니다.
작업
user@R3> show route 172.16.6.0/24
inet.0: 7 destinations, 8 routes (7 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
172.16.6.0/24 *[Static/5] 03:34:14
Reject
[BGP/170] 06:34:43, localpref 100, from 192.168.0.2
AS path: 100 I, validation-state: unverified
> to 10.0.0.5 via fe-1/2/0.6
의미
디바이스 R3에는 정적 경로와 172.16.6.0/24에 대한 BGP 경로가 있습니다.
경로가 도달할 수 없거나 다음 홉을 확인할 수 없는 경우 BGP 경로는 디바이스 R3에 숨겨집니다. 이 요구 사항을 충족하기 위해 이 예는 디바이스 R3(static route 0.0.0.0/0 next-hop 10.0.0.5)의 정적 기본 경로를 포함합니다.
조건부 옵션 실험
목적
BGP 경로 선택 알고리즘의 맥락에서 옵션이 어떻게 작동하는지 conditional 확인합니다.
작업
디바이스 R2에서 옵션을
conditional추가합니다.[edit protocols bgp group int] user@R2# set advertise-external conditional user@R2# commit
디바이스 R2에서 172.16.6.0/24 경로가 디바이스 R3으로 보급되는지 확인합니다.
user@R2> show route advertising-protocol bgp 192.168.0.3
예상대로 경로가 더 이상 보급되지 않습니다. 이 결과를 보려면 몇 초 기다려야 할 수도 있습니다.
디바이스 R3에서 정책 작업을 비활성화합니다
then local-preference.[edit policy-options policy-statement send-static term 1] user@R3# deactivate logical-systems R3 then local-preference user@R3# commit
디바이스 R2에서 두 경로의 로컬 기본 설정이 동일한지 확인합니다.
user@R2> show route 172.16.6.0/24 inet.0: 8 destinations, 9 routes (8 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.6.0/24 *[BGP/170] 08:02:59, localpref 100 AS path: 100 I, validation-state: unverified > to 10.0.0.1 via fe-1/2/0.0 [BGP/170] 00:07:51, localpref 100, from 192.168.0.3 AS path: I, validation-state: unverified > to 10.0.0.6 via fe-1/2/1.0디바이스 R2에서 문을
as-path-ignore추가합니다.[edit protocols bgp] user@R2# set path-selection as-path-ignore user@R2# commit
디바이스 R2에서 172.16.6.0/24 경로가 디바이스 R3으로 보급되는지 확인합니다.
user@R2> show route advertising-protocol bgp 192.168.0.3 inet.0: 8 destinations, 9 routes (8 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.6.0/24 10.0.0.1 100 100 I
예상대로 AS 경로 길이가 무시되고 로컬 기본 설정이 동일하기 때문에 이제 경로가 보급됩니다.
Junos에서 더 빠른 컨버전스를 위한 BGP 구성 최적화
Junos OS의 BGP에는 장애 또는 토폴로지 변경 후 트래픽 포워딩을 신속하게 복원하도록 설계된 여러 기능이 포함되어 있습니다. 여기에는 BGP 코어 보호(PIC 에지), eBGP FRR(Fast Reroute), 상태 압축 및 Graceful Restart가 포함됩니다. 그러나 트래픽을 재개하기 전에 전체 프로토콜 컨버전스가 필요한 시나리오가 있습니다. 다음 권장 사항은 가능한 가장 빠른 컨버전스를 위해 BGP 구성을 최적화하는 데 도움이 됩니다.
권장 사항
동일한 논리를 가진 피어 간에 단일 정책을 재사용합니다.
논리는 같지만 이름은 다른 여러 정책을 만들지 마십시오. 대신 여러 피어에 대해 단일 정책을 재사용합니다.
피어가 유사한 로직을 공유할 때 정책을 결합합니다.
여러 BGP 피어가 동일한 핵심 정책 논리를 공유하는 경우, 별도의 피어별 정책을 유지하는 대신 해당 규칙을 단일 내보내기 정책으로 통합하여 정책 관리를 최적화할 수 있습니다. 이 접근 방식은 구성 복잡성을 줄이고 확장성을 향상시킵니다.
예:
각 피어에 대해 별도의 내보내기 정책을 구성하는 대신:
set policy-options policy-statement <export-peer1> term 1 from community <community-1> set policy-options policy-statement <export-peer1> then accept set policy-options policy-statement <export-peer2> term 1 from community <community-1> set policy-options policy-statement <export-peer2> then accept
단일 내보내기 정책으로 통합할 수 있습니다.
set policy-options policy-statement <export-common> term 1 from community <community-1> set policy-options policy-statement <export-common> then accept set protocols bgp group <peers> export <export-common>
그룹 수준에서 내보내기 정책을 구성합니다.
- 다음과 같은 내보내기 정책을 이웃별로 구성하지 마십시오.
set protocols bgp group <foo> neighbor 192.168.1.1 export <policy-1> set protocols bgp group <foo> neighbor 192.168.1.2 export <policy-2>
대신 동일한 내보내기 정책을 공유하는 모든 이웃에 대해 그룹 수준에서 정책을 구성합니다.
set protocols bgp group <foo> export <common-policy>
주의:BGP 그룹 내에서 서로 다른 이웃별 내보내기 정책이 적용되는 경우, Junos OS는 그룹 분할을 트리거하여 영향을 받는 피어가 그룹을 떠나 세션을 재설정하도록 강제합니다. 이로 인해 트래픽이 중단되고 예기치 않은 동작이 발생할 수 있습니다. 이를 방지하기 위해 명시적인 인접 항목별 재정의가 필요하지 않는 한 항상 그룹 수준에서 일관된 정책 적용을 보장합니다.
- 다음과 같은 내보내기 정책을 이웃별로 구성하지 마십시오.
경로 최대 전송 단위(MTU) 검색을 활성화하거나 TCP MSS를 설정하여 IP 단편화를 방지합니다.
BGP 세션 성능을 최적화하고 IP 단편화를 방지하려면 다음 중 하나를 수행해야 합니다.
- 경로 MTU 검색(PMTUD)을 활성화합니다.
TCP MSS(최대 세그먼트 크기)를 최적의 값으로 수동으로 구성합니다.
구성 명령:
- BGP 세션에 대해 경로 MTU 검색(PMTUD)을 활성화합니다.
set protocols bgp group <external> mtu-discovery
이를 통해 라우터는 네트워크 상태에 따라 BGP 세션의 최대 전송 단위(MTU) 크기를 동적으로 조정할 수 있습니다.
BGP 세션에 대해 수동 설정 TCP MSS 값(예: 1400바이트)을 설정합니다.
set protocols bgp group <external> tcp-mss 1400
이렇게 하면 TCP 세그먼트 크기가 수동으로 제한되어 PMTUD가 비활성화되거나 신뢰할 수 없는 경우 단편화를 방지할 수 있습니다.
참고: 가장 좋은 방법은 가능하면 PMTUD를 사용하는 것이지만, 네트워크가 PMTUD에 필요한 ICMP 메시지를 차단하는 경우에는 네트워크 MTU에 따라 적절한 TCP MSS 값을 수동으로 설정합니다.BGP 피어 간의 모든 인터페이스 및 링크에서 큰 최대 전송 단위(MTU)를 구성합니다.
피어 간의 모든 인터페이스와 링크가 큰 최대 전송 단위(MTU)를 지원하여 성능을 최적화해야 합니다.
주의 사항
내보내기 정책 변경으로 세션 재설정이 트리거될 수 있습니다.
-
Junos OS에서 공유 Adj-RIB-Out 내의 한 피어에 대한 내보내기 정책이 변경되면 Junos는 피어를 다른(또는 새로운) Adj-RIB-Out으로 이동합니다. 이 전환은 해당 피어에 대한 BGP 세션을 재설정합니다.
-
이러한 재설정은 특히 많은 수의 접두사를 보급하는 피어(예: 업링크 프로바이더)의 경우 중단될 수 있습니다.
-
권장 사항: 세션 재설정을 피하는 것이 중요한 경우 별도의 BGP 그룹을 구성하여 전용 Adj-RIB-out을 생성하는 것이 좋습니다. 이러한 절충안은 안정성을 향상시키지만 경로 처리 성능에 영향을 미칠 수 있습니다.
또한보십시오
예: BGP 접두사 기반 Outbound Route 필터링 구성
이 예는 원격 피어의 경로 필터를 수락하고 수신된 필터를 사용하여 아웃바운드 경로 필터링을 수행하도록 주니퍼 네트웍스 라우터를 구성하는 방법을 보여줍니다.
요구 사항
시작하기 전에:
라우터 인터페이스를 구성합니다.
내부 게이트웨이 프로토콜(IGP)을 구성합니다.
개요
원격 피어의 경로 필터를 수락하고 수신된 필터를 사용하여 아웃바운드 경로 필터링을 수행하도록 BGP 피어를 구성할 수 있습니다. 원치 않는 업데이트를 필터링하여 전송 피어는 업데이트를 생성 및 전송하는 데 필요한 리소스를 절약하고, 수신 피어는 업데이트를 처리하는 데 필요한 리소스를 절약합니다. 예를 들어 고객 에지(CE) 디바이스의 하위 집합이 VPN의 모든 경로를 처리할 수 없는 가상 사설망(VPN)에서 이 기능이 유용할 수 있습니다. CE 디바이스는 접두사 기반 아웃바운드 경로 필터링을 사용하여 프로바이더 에지(PE) 라우팅 디바이스와 통신하여 주요 데이터 센터 경로와 같은 경로 하위 집합만 전송할 수 있습니다.
BGP 피어가 허용할 수 있는 접두사 기반 Outbound Route 필터의 최대 수는 5,000개입니다. 원격 피어가 피어 주소에 5000개 이상의 아웃바운드 경로 필터를 전송하는 경우 추가 필터는 폐기되고 시스템 로그 메시지가 생성됩니다.
라우팅 디바이스 전체로서 또는 특정 BGP 그룹 또는 피어에 대한 상호 운용성을 구성할 수 있습니다.
토폴로지
샘플 네트워크에서 디바이스 CE1은 다른 벤더의 라우터입니다. 이 예에 표시된 구성은 주니퍼 네트웍스 라우터 PE1에 있습니다.
그림 3 은 샘플 네트워크를 보여줍니다.
구성
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 변경한 다음, 계층 수준에서 [edit] 명령을 복사하여 CLI에 붙여 넣습니다.
PE1
set protocols bgp group cisco-peers type external set protocols bgp group cisco-peers description “to CE1” set protocols bgp group cisco-peers local-address 192.168.165.58 set protocols bgp group cisco-peers peer-as 35 set protocols bgp group cisco-peers outbound-route-filter bgp-orf-cisco-mode set protocols bgp group cisco-peers outbound-route-filter prefix-based accept inet set protocols bgp group cisco-peers neighbor 192.168.165.56 set routing-options autonomous-system 65500
절차
단계별 절차
다음 예에서는 구성 계층에서 다양한 수준의 탐색이 필요합니다. CLI 탐색에 대한 정보는 Junos OS CLI 사용자 가이드의 구성 모드에서 CLI 편집기 사용을 참조하십시오.
라우터 PE1이 디바이스 CE1에서 경로 필터를 수락하고 수신된 필터를 사용하여 아웃바운드 경로 필터링을 수행하도록 구성하려면:
로컬 AS(Autonomous System)를 구성합니다.
[edit routing-options] user@PE1# set autonomous-system 65500
디바이스 CE1으로 외부 피어싱을 구성합니다.
[edit protocols bgp group cisco-peers] user@PE1# set type external user@PE1# set description “to CE1” user@PE1# set local-address 192.168.165.58 user@PE1# set peer-as 35 user@PE1# set neighbor 192.168.165.56
라우터 PE1을 구성하여 디바이스 CE1에서 IPv4 경로 필터를 수락하고 수신된 필터를 사용하여 아웃바운드 경로 필터링을 수행합니다.
[edit protocols bgp group cisco-peers] user@PE1# set outbound-route-filter prefix-based accept inet
(선택 사항) 아웃바운드 경로 필터에 130의 벤더별 호환성 코드 및 128의 코드 유형을 사용하는 라우팅 디바이스와의 상호 운용성을 활성화합니다.
IANA 표준 코드는 3이며 표준 코드 유형은 64입니다.
[edit protocols bgp group cisco-peers] user@PE1# set outbound-route-filter bgp-orf-cisco-mode
결과
구성 모드에서 and show routing-options 명령을 입력 show protocols 하여 구성을 확인합니다. 출력에 의도한 구성이 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정합니다.
user@PE1# show protocols
group cisco-peers {
type external;
description “to CE1”;
local-address 192.168.165.58;
peer-as 35;
outbound-route-filter {
bgp-orf-cisco-mode;
prefix-based {
accept {
inet;
}
}
}
neighbor 192.168.165.56;
}
user@PE1# show routing-options autonomous-system 65500;
디바이스 구성이 완료되면 구성 모드에서 들어갑니다 commit .
검증
구성이 제대로 작동하고 있는지 확인합니다.
Outbound Route 필터 검증
목적
디바이스 CE1에서 수신된 접두사 기반 Outbound Route 필터에 대한 정보를 표시합니다.
작업
운영 모드에서 명령을 입력합니다.show bgp neighbor orf detail
user@PE1> show bgp neighbor orf 192.168.165.56 detail
Peer: 192.168.165.56 Type: External
Group: cisco-peers
inet-unicast
Filter updates recv: 4 Immediate: 0
Filter: prefix-based receive
Updates recv: 4
Received filter entries:
seq 10 2.2.0.0/16 deny minlen 0 maxlen 0
seq 20 3.3.0.0/16 deny minlen 24 maxlen 0
seq 30 4.4.0.0/16 deny minlen 0 maxlen 28
seq 40 5.5.0.0/16 deny minlen 24 maxlen 28
BGP neighbor 모드 검증
목적
옵션이 명령 출력에 show bgp neighbor 표시되는지 확인 ORFCiscoMode 하여 피어에 대해 설정이 활성화되었는지 확인합니다bgp-orf-cisco-mode.
작업
운영 모드에서 명령을 입력합니다.show bgp neighbor
user@PE1> show bgp neighbor Peer: 192.168.165.56 AS 35 Local: 192.168.165.58 AS 65500 Type: External State: Active Flags: <> Last State: Idle Last Event: Start Last Error: None Export: [ adv_stat ] Options: <Preference LocalAddress AddressFamily PeerAS Refresh> Options: <ORF ORFCiscoMode> Address families configured: inet-unicast Local Address: 192.168.165.58 Holdtime: 90 Preference: 170 Number of flaps: 0 Trace options: detail open detail refresh Trace file: /var/log/orf size 5242880 files 20
패킷 전송 라우터(PTX 시리즈)의 기본 BGP 라우팅 정책 이해
PTX 시리즈 패킷 전송 라우터에서 기본 BGP 라우팅 정책은 다른 Junos OS 라우팅 디바이스의 정책과 다릅니다. PTX 시리즈 3000 및 5000 시리즈 라우터의 기본 라우팅 정책은 이를 재정의하는 다른 정책을 구성하지 않는 한 BGP 경로를 포워딩 테이블에 설치하지 않습니다. 다른 모든 PTX 시리즈 라우터는 정책 없이 BGP 학습 경로를 포워딩 정보 베이스(FIB) 및 패킷 포워딩 엔진(PFE)에 설치합니다.
PTX 시리즈 라우터는 일반적으로 내부 게이트웨이 프로토콜(IGP) 경로를 사용하여 IP 포워딩을 수행하는 MPLS 전송 플랫폼입니다. PTX 시리즈 패킷 포워딩 엔진은 상대적으로 적은 수의 가변 길이 접두사를 수용할 수 있습니다.
PTX 시리즈 라우터는 컨트롤 플레인에서 전체 BGP 경로를 지원할 수 있으므로 경로 리플렉터(RR)로 사용될 수 있습니다. 정확한 길이 조회 멀티캐스트 포워딩을 수행할 수 있으며 유니캐스트 컨트롤 플레인에서 사용할 멀티캐스트 포워딩 플레인을 구축할 수 있습니다(예: 멀티캐스트에 대한 역방향 경로 포워딩 조회 수행).
PFE 제한을 감안할 때, PTX 시리즈 라우터의 기본 라우팅 정책은 BGP 경로가 포워딩 테이블에 설치되지 않도록 하는 것입니다. 기본 라우팅 정책을 무시하고 포워딩 테이블에 설치할 특정 BGP 경로를 선택할 수 있습니다.
PTX 시리즈 라우터에서 로드 밸런싱 및 BGP 경로에 대한 기본 동작은 다음과 같습니다. 다음과 같은 바람직한 특징이 있습니다.
기본 정책을 직접 변경하지 않고도 기본 동작을 재정의할 수 있습니다.
기본값을 무효화하는 우발적인 변경 가능성을 줄입니다.
수락, 거부와 같은 flow-control 작업을 설정하지 않습니다.
PTX 시리즈 라우터의 기본 라우팅 정책은 다음과 같습니다.
user@host# show policy-options | display inheritance defaults no-comments
policy-options {
policy-statement junos-ptx-series-default {
term t1 {
from {
protocol bgp;
rib inet.0;
}
then no-install-to-fib;
}
term t2 {
from {
protocol bgp;
rib inet6.0;
}
then no-install-to-fib;
}
term t3 {
then load-balance per-packet;
}
}
}
routing-options {
forwarding-table {
default-export junos-ptx-series-default;
}
}
user@host# show routing-options forwarding-table default-export | display inheritance defaults no-comments
default-export junos-ptx-series-default;
여기에서 보시다시피, 정책은 junos-ptx-series-default 에서 정의됩니다.[edit policy-options] 정책은 문을 default-export 사용하여 에서 적용됩니다[edit routing-options forwarding-table]. 플래그를 사용하여 이러한 기본 구성을 볼 수 있습니다.| display inheritance
또한 명령을 사용하여 show policy 기본 정책을 볼 수 있습니다.
user@host> show policy junos-ptx-series-default
Policy junos-ptx-series-default:
Term t1:
from proto BGP
inet.0
then install-to-fib no
Term t2:
from proto BGP
inet6.0
then install-to-fib no
Term t3:
then load-balance per-packet
라우팅 정책은 junos-ptx-series-default 직접 변경하지 않는 것이 좋습니다.
Junos OS는 junos-ptx-series-default 정책과 사용자가 구성한 모든 내보내기 정책을 연결합니다. 이 정책은 junos-ptx-series-default flow-control 작업을 사용하지 않기 때문에 구성한 모든 내보내기 정책은 모든 경로에 대해 (암묵적인 next-policy 작업을 통해) 실행됩니다. 따라서 정책에 의해 설정된 모든 작업을 재정의할 수 있습니다 junos-ptx-series-default . 내보내기 정책을 구성하지 않으면 정책에 의해 junos-ptx-series-default 설정된 조치만 유일한 조치입니다.
정책 작업을 install-to-fib 사용하여 작업을 재정의할 수 있습니다.no-install-to-fib
마찬가지로 작업을 재정의하도록 작업을 설정할 load-balance per-prefix 수 있습니다.load-balance per-packet
또한보십시오
예: PTX 시리즈 패킷 전송 라우터에서 기본 BGP 라우팅 정책 재정의
이 예에서는 PTX 시리즈 패킷 패킷 전송 라우터와 같은 패킷 전송 라우터에서 기본 라우팅 정책을 재정의하는 방법을 보여줍니다.
요구 사항
이 예는 Junos OS 릴리스 12.1 이상이 필요합니다.
개요
기본적으로 PTX 시리즈 라우터는 포워딩 테이블에 BGP 경로를 설치하지 않습니다.
PTX 시리즈 라우터의 경우, 작업이 포함된 then accept 조건의 from protocols bgp 구성은 다른 Junos OS 라우팅 디바이스에 있는 일반적인 결과가 없습니다. PTX 시리즈 라우터에서 다음 라우팅 정책을 사용하면 BGP 경로가 포워딩 테이블에 설치되지 않습니다.
user@host# show policy-options
policy-statement accept-no-install {
term 1 {
from protocol bgp;
then accept;
}
}
user@host# show routing-options
forwarding-table {
export accept-no-install;
}
user@host> show route forwarding-table Routing table: default.inet Internet: Destination Type RtRef Next hop Type Index NhRef Netif default perm 0 rjct 36 2
포워딩 테이블에 BGP 경로가 설치되지 않았습니다. 이는 예상되는 동작입니다.
이 예는 작업을 사용하여 then install-to-fib 기본 BGP 라우팅 정책을 효과적으로 재정의하는 방법을 보여줍니다.
구성
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 변경한 다음, 계층 수준에서 [edit] 명령을 복사하여 CLI에 붙여 넣습니다.
set policy-options prefix-list install-bgp 66.0.0.1/32 set policy-options policy-statement override-ptx-series-default term 1 from prefix-list install-bgp set policy-options policy-statement override-ptx-series-default term 1 then load-balance per-prefix set policy-options policy-statement override-ptx-series-default term 1 then install-to-fib set routing-options forwarding-table export override-ptx-series-default
포워딩 테이블에서 선택한 BGP 경로 설치
단계별 절차
다음 예에서는 구성 계층에서 다양한 수준을 탐색해야 합니다. CLI 탐색에 대한 정보는 Junos OS CLI 사용자 가이드의 구성 모드에서 CLI 편집기 사용을 참조하십시오.
포워딩 테이블에서 선택한 BGP 경로를 설치하려면
포워딩 테이블에 설치할 접두사 목록을 구성합니다.
[edit policy-options prefix-list install-bgp] user@host# set 66.0.0.1/32
접두사 목록을 조건으로 적용하여 라우팅 정책 구성합니다.
[edit policy-options policy-statement override-ptx-series-default term 1] user@host# set from prefix-list install-bgp user@host# set then install-to-fib user@host# set then load-balance per-prefix
포워딩 테이블에 라우팅 정책 적용합니다.
[edit routing-options forwarding-table] user@host# set export override-ptx-series-default
결과
구성 모드에서 and show routing-options 명령을 입력 show policy-options 하여 구성을 확인합니다. 출력에 의도한 구성이 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정합니다.
user@host# show policy-options
prefix-list install-bgp {
66.0.0.1/32;
}
policy-statement override-ptx-series-default {
term 1 {
from {
prefix-list install-bgp;
}
then {
load-balance per-prefix;
install-to-fib;
}
}
}
user@host# show routing-options
forwarding-table {
export override-ptx-series-default;
}
디바이스 구성이 완료되면 구성 모드에서 들어갑니다 commit .
검증
구성이 제대로 작동하고 있는지 확인합니다.
포워딩 테이블에 선택한 경로가 설치되는지 확인
목적
구성된 정책이 기본 정책에 우선하는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다.show route forwarding-table
user@host> show route forwarding-table destination 66.0.0.1
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
66.0.0.1/32 user 0 indr 2097159 3
ulst 2097156 2
5.1.0.2 ucst 574 1 et-6/0/0.1
5.2.0.2 ucst 575 1 et-6/0/0.2
의미
이 출력은 66.0.0.1/32에 대한 경로가 포워딩 테이블에 설치되었음을 보여줍니다.
접두사의 조건부 설치를 활성화하는 조건부 보급 사용 사례
네트워크는 일반적으로 AS(Autonomous System)라고 하는 관리하기 쉬운 더 작은 단위로 세분화됩니다. 라우터에서 BGP를 사용하여 동일한 AS에서 피어 관계를 구축하면 이를 내부 BGP(IBGP)라고 합니다. 라우터에서 BGP를 사용하여 서로 다른 AS에서 피어 관계를 형성하는 경우, 이를 외부 BGP(EBGP)라고 합니다.
경로 건전성 검사를 수행한 후 BGP 라우터는 피어에서 수신한 경로를 수락하고 라우팅 테이블에 설치합니다. 기본적으로 IBGP 및 EBGP 세션의 모든 라우터는 표준 BGP 광고 규칙을 따릅니다. IBGP 세션의 라우터는 직접 피어로부터 학습한 경로만 보급하는 반면, EBGP 세션의 라우터는 직접 및 간접 피어(피어의 피어)로부터 학습한 모든 경로를 보급합니다. 따라서 EBGP로 구성된 일반적인 네트워크에서 라우터는 EBGP 피어로부터 수신된 모든 경로를 해당 라우팅 테이블에 추가하고 거의 모든 경로를 모든 EBGP 피어에 보급합니다.
인터넷에서 고객 및 피어 모두와 BGP 경로를 교환하는 서비스 프로바이더는 트래픽의 적절한 경로와 라우터 작동을 손상시킬 수 있는 악의적이고 의도하지 않는 위협에 노출될 수 있습니다.
여기에는 몇 가지 단점이 있습니다.
Non-aggregated route advertisements—고객은 주소 공간의 총 집계가 아닌 ISP에 모든 접두사를 잘못 보급할 수 있습니다. 인터넷 라우팅 테이블의 크기를 고려할 때 신중하게 제어해야 합니다. 또한 에지 라우터는 인터넷으로 나가는 기본 경로만 필요하고 대신 업스트림 피어에서 전체 BGP 라우팅 테이블을 수신할 수 있습니다.
BGP route manipulation—악의를 가진 관리자가 BGP 라우팅 테이블의 내용을 변경하면 트래픽이 의도한 목적지에 도달하지 못할 수 있습니다.
BGP route hijacking—BGP 피어의 불량한 관리자는 트래픽 콘텐츠에 대한 액세스 권한을 얻거나 피해자의 온라인 서비스를 차단하기 위해 피해자 네트워크에 의도된 트래픽을 관리자 네트워크로 다시 라우팅하려는 시도 중에 네트워크의 접두사를 악의적으로 알릴 수 있습니다.
BGP denial of service (DoS)—악의를 가진 관리자가 라우터에서 사용 가능한 모든 BGP 리소스를 사용하려는 시도 중에 예기치 않거나 원하지 않는 라우터로 BGP 트래픽을 보내는 경우, 유효한 BGP 경로 정보를 처리하는 라우터 기능이 손상될 수 있습니다.
접두사의 조건부 설치는 앞에서 언급한 모든 문제를 해결하는 데 사용할 수 있습니다. 고객이 원격 네트워크에 액세스해야 하는 경우, 원격 네트워크와 연결된 라우터의 라우팅 테이블에 특정 경로를 설치할 수 있습니다. 이는 일반적인 EBGP 네트워크에서 발생하지 않으므로 접두사의 조건부 설치가 필수적입니다.
AS는 물리적 관계뿐만 아니라 비즈니스 또는 기타 조직 관계의 구속을 받습니다. AS는 다른 조직에 서비스를 제공하거나 두 개의 다른 AS 사이에서 전송 AS 역할을 할 수 있습니다. 이러한 전송 AS는 서로 연결하는 방법과 서로를 위해 전달하는 트래픽 유형 및 수량에 대한 매개 변수를 포함하는 당사자 간의 계약에 의해 구속됩니다. 따라서 서비스 프로바이더는 법적 및 재정적 이유로 BGP 경로가 neighbor과 교환되는 방법, 해당 neighbor에서 수락되는 경로, 이러한 경로가 AS 간의 트래픽에 영향을 미치는 방법을 제어하는 정책을 구현해야 합니다.
BGP 피어에서 수신한 경로를 필터링하여 AS 간 정책을 시행하고 잠재적으로 유해한 경로를 수신하는 데 발생하는 위험을 완화하는 데 사용할 수 있는 다양한 옵션이 있습니다. 기존 경로 필터링은 경로의 속성을 검사하고 해당 속성을 기반으로 경로를 수락하거나 거부합니다. 정책이나 필터는 AS-Path의 내용, 다음 홉 값, community 값, 접두사 목록, 경로의 address family 등을 검사할 수 있습니다.
어떤 경우에는 특정 속성 값과 일치하는 표준 '수락 조건'으로 충분하지 않습니다. 서비스 프로바이더는 경로 자체를 벗어나는 다른 조건(예: 라우팅 테이블의 다른 경로)을 사용해야 할 수 있습니다. 예를 들어, 이 피어가 다른 업스트림 네트워크에 연결할 수 있는지 확인할 수 있는 경우에만 업스트림 피어에서 수신한 기본 경로를 설치하는 것이 바람직할 수 있습니다. 이 조건부 경로 설치는 피어가 업스트림의 경로를 손실하여 트래픽이 블랙홀될 수 있는 경우 이 피어로 트래픽을 전송하는 데 사용되는 기본 경로가 설치되지 않도록 합니다. 이를 위해 라우터는 라우팅 테이블에서 특정 경로의 존재를 검색하도록 구성할 수 있으며, 이 정보를 기반으로 다른 접두사를 수락 또는 거부할 수 있습니다.
예: 라우팅 테이블에 접두사의 조건부 설치를 활성화하는 조건부 광고에 대한 라우팅 정책 구성 에서는 접두사의 조건부 설치를 구성 및 확인하는 방법에 대해 설명합니다.
또한보십시오
조건부 광고 및 특정 일치 조건의 가져오기 정책(라우팅 테이블)
BGP는 neighbor에서 학습된 모든 비 루프 경로를 수락하고 RIB-In 테이블로 가져옵니다. 이러한 경로가 BGP 가져오기 정책에 허용되면, inet.0 라우팅 테이블로 가져옵니다. 특정 경로만 가져와야 하는 경우, 피어 라우팅 디바이스가 상태 또는 조건 세트에 따라 경로를 내보내는 것과 같은 조항을 만들 수 있습니다.
경로 내보내기 조건은 다음을 기반으로 할 수 있습니다.
경로가 학습된 피어
경로가 학습된 인터페이스
일부 다른 필수 속성
예를 들면 다음과 같습니다.
[edit]
policy-options {
condition condition-name {
if-route-exists address table table-name;
}
}
이것은 접두사의 조건부 설치로 알려져 있으며 예: 라우팅 테이블에 접두사의 조건부 설치를 활성화하는 조건부 광고에 대한 라우팅 정책 구성에 설명되어 있습니다.
라우팅 정책의 조건은 내보내기 또는 가져오기 정책의 일부이든 두 가지 모두이든 상관없이 구성할 수 있습니다. 내보내기 정책은 라우팅 정책에 다른 경로가 존재한다는 점을 기반으로 라우팅 정책에서 상속된 이러한 라우팅 정책을 지원합니다. 그러나 가져오기 정책은 이러한 조건을 지원하지 않으며, 조건이 있더라도 실행되지 않습니다.
그림 4 는 BGP 가져오기 및 내보내기 정책이 적용되는 위치를 보여줍니다. 가져오기 정책은 명령 출력 show route receive-protocol bgp neighbor-address 에서 보이는 인바운드 경로에 적용됩니다. 내보내기 정책은 명령 출력 show route advertising-protocol bgp neighbor-address 에서 보이는 아웃바운드 경로에 적용됩니다.
접두사의 조건부 설치를 활성화하려면 접두사 내보내기가 수행되어야 하는 디바이스에 내보내기 정책을 구성해야 합니다. 내보내기 정책은 각 경로를 평가하여 문 아래의 from 모든 일치 조건을 충족하는지 확인합니다. 또한 문에 condition 따라 정의된 경로의 존재를 검색합니다(문에 따라 from 구성됨).
경로가 정책에 정의된 필수 조건 세트와 일치하지 않거나 문에 정의된 condition 경로가 라우팅 테이블에 존재하지 않으면, 경로는 BGP 피어로 내보내지지 않습니다. 따라서 조건부 내보내기 정책은 원하는 경로 또는 피어 라우팅 테이블에 설치하려는 접두사의 경로와 일치합니다.
내보내기 정책의 도움으로 접두사의 조건부 설치를 구성하려면 다음을 수행합니다.
접두사를 확인하는 문을 생성합니다
condition.[edit] policy-options { condition condition-name { if-route-exists address table table-name; } }문을 사용하여 새로 생성된 조건으로 내보내기 정책을 만듭니다.
condition[edit] policy-options { policy-statement policy-name { term 1 { from { protocols bgp; condition condition-name; } then { accept; } } } }라우팅 테이블에서 선택한 접두사만 내보내야 하는 디바이스에 내보내기 정책을 적용합니다.
[edit] protocols bgp { group group-name { export policy-name; } }
또한보십시오
예: 라우팅 테이블에 접두사의 조건부 설치를 활성화하는 조건부 광고에 대한 라우팅 정책 구성
이 예는 BGP 내보내기 정책을 사용하여 라우팅 테이블에 접두사의 조건부 설치를 구성하는 방법을 보여줍니다.
요구 사항
이 예에서 사용되는 하드웨어 및 소프트웨어 구성 요소는 다음과 같습니다.
M Series 멀티서비스 에지 라우터, MX 시리즈 5G 유니버설 라우팅 플랫폼 또는 T 시리즈 코어 라우터
Junos OS 릴리스 9.0 이상
개요
이 예에서는 세 가지 다른 AS(Autonomous System)의 라우터 3개가 BGP 프로토콜과 연결 및 구성됩니다. 업스트림 라우터인 라우터 라벨 인터넷에는 lo0.0 루프백 인터페이스(172.16.11.1/32, 172.16.12.1/32, 172.16.13.1/32, 172.16.14.1/32, 및 172.16.15.1/32)에 구성된 주소 5개가 있으며, 추가 루프백 주소(192.168.9.1/32)는 라우터 ID로 구성됩니다. 이 주소 여섯 개는 BGP로 내보내져 인터넷에 연결된 라우터의 BGP 라우팅 테이블 콘텐츠를 에뮬레이트하고 North에 보급됩니다.
North 및 South 라우터는 각각 10.0.89.12/30 및 10.0.78.12/30 네트워크를 사용하고, 각각의 루프백 주소에 192.168.7.1 및 192.168.8.1을 사용합니다.
그림 5 는 이 예에서 사용되는 토폴로지를 보여줍니다.
의 조건부 설치
라우터 North는 라우터 인터넷에서 라우터 South로 학습한 172.16.0.0/16 BGP 경로를 내보냅니다. 이러한 경로는 인터넷 라우터의 도메인이 소유한 경로를 나타낼 수 있습니다. 또한 특정 172.16.11.1/32 경로가 있는 경우 라우터 North는 기본 경로도 보급합니다. 172.16.11.1 경로는 완전한 인터넷 연결을 제공하는 Tier 1 전송 피어링 프로바이더에 대한 인터넷 라우터의 링크를 나타낼 수 있습니다.
라우터 South는 6개의 경로를 모두 수신하지만 라우팅 테이블에 기본 경로와 하나의 다른 특정 경로(172.16.11.1/32)만 설치해야 합니다.
요약하자면, 이 예는 다음 요구 사항을 충족합니다:
-
North에서는 모든 172.16/16 접두사를 보냅니다. 또한 inet.0 라우팅 테이블(이 예에서는 172.16.11.1/32)에 특정 경로가 있는 경우에만 0/0을 South로 보냅니다.
-
South에서는 라우팅 및 포워딩 테이블에 기본 경로와 172.16.11.1/32 경로를 수락하고 설치합니다. 다른 모든 경로는 삭제합니다. South는 전체 인터넷 라우팅 테이블을 수락할 수 없는 저가형 디바이스일 수 있습니다. 따라서 운영자는 South가 기본 경로와 하나의 다른 특정 접두사만 갖기를 원합니다.
첫 번째 요구 사항은 North의 내보내기 정책을 충족합니다.
user@North# show policy-options
policy-statement conditional-export-bgp {
term prefix_11 {
from {
protocol bgp;
route-filter 172.16.0.0/16 orlonger;
}
then accept;
}
term conditional-default {
from {
route-filter 0.0.0.0/0 exact;
condition prefix_11;
}
then accept;
}
term others {
then reject;
}
}
condition prefix_11 {
if-route-exists {
172.16.11.1/32;
table inet.0;
}
}
조건부 내보내기 정책의 논리는 다음과 같이 요약할 수 있습니다: 0/0이 존재하고 172.16.11.1/32가 존재하면 0/0 접두사를 보냅니다. 이는 172.16.11.1/32가 존재하지 않으면 0/0을 보내지 않는다는 의미입니다.
두 번째 요구 사항은 South의 가져오기 정책을 충족합니다.
user@South# show policy-options
policy-statement import-selected-routes {
term 1 {
from {
rib inet.0;
neighbor 10.0.78.14;
route-filter 0.0.0.0/0 exact;
route-filter 172.16.11.1/32 exact;
}
then accept;
}
term 2 {
then reject;
}
}
이 예에서는 South의 가져오기 정책 결과로 경로 4개가 삭제됩니다. North의 내보내기 정책이 Internet에서 수신된 모든 경로를 누수하고, South의 가져오기 정책이 이러한 경로 중 일부를 제외하기 때문입니다.
Junos OS에서 가져오기 정책(인바운드 경로 필터)이 경로를 거부하고, 트래픽 포워딩에 사용하지 않고, 다른 피어에 대한 광고에 포함하지 않을 수도 있지만, 라우터가 숨겨진 경로로 이러한 경로를 유지한다는 것을 이해하는 것이 중요합니다. 이러한 숨겨진 경로는 정책 또는 라우팅 목적으로 사용할 수 없습니다. 그러나 라우터의 메모리 공간을 차지합니다. 경로를 필터링하여 메모리에 보관되고 라우터에서 처리되는 정보의 양을 제어하는 서비스 프로바이더는 라우터가 가져오기 정책에 의해 거부된 경로를 완전히 삭제하기를 원할 수 있습니다.
숨겨진 경로는 명령을 show route receive-protocol bgp neighbor-address hidden 사용하여 볼 수 있습니다. 그런 다음 숨겨진 경로는 or [edit protocols bgp group group-name] 계층 수준에서 [edit protocols bgp] 문을 구성 keep all | none 하여 라우팅 테이블에서 유지되거나 삭제될 수 있습니다.
BGP 경로 유지 규칙은 다음과 같습니다.
-
기본적으로 AS 경로가 반복되는 경우를 제외하고 BGP에서 학습된 모든 경로가 유지됩니다. (AS 경로에는 로컬 AS가 포함됩니다.)
-
명령문을 구성
keep all하여, BGP에서 학습된 모든 경로가 유지되며, AS 경로에 로컬 AS가 있는 경로를 포함합니다. -
이 문을 구성
keep none하여, BGP는 피어로부터 수신하거나 가져오기 정책 또는 기타 온전성 검사에 의해 거부된 경로를 버립니다. 이 문이 구성되고 인바운드 정책이 변경되면, Junos OS는 피어가 광고하는 모든 경로를 다시 광고합니다.
구성 또는 keep none 피어가 경로 새로 고침을 지원하면keep all, 로컬 스피커는 새로 고침 메시지를 보내고 가져오기 평가를 수행합니다. 이러한 피어의 경우 세션이 다시 시작되지 않습니다. 피어가 새로 고침을 지원하는지 확인하려면 명령의 출력에서 을 확인합니다Peer supports Refresh capability.show bgp neighbor
또는 keep none 구성 keep all 하고 피어가 세션 재시작을 지원하지 않으면, 연결된 BGP 세션이 다시 시작됩니다(플랩됨).
토폴로지
구성
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 변경한 다음, 계층 수준에서 [edit] 명령을 복사하여 CLI에 붙여 넣습니다.
라우터 인터넷
set interfaces lo0 unit 0 family inet address 172.16.11.1/32 set interfaces lo0 unit 0 family inet address 172.16.12.1/32 set interfaces lo0 unit 0 family inet address 172.16.13.1/32 set interfaces lo0 unit 0 family inet address 172.16.14.1/32 set interfaces lo0 unit 0 family inet address 172.16.15.1/32 set interfaces lo0 unit 0 family inet address 192.168.9.1/32 set interfaces fe-0/1/3 unit 0 family inet address 10.0.89.14/30 set protocols bgp group toNorth local-address 10.0.89.14 set protocols bgp group toNorth peer-as 65200 set protocols bgp group toNorth neighbor 10.0.89.13 set protocols bgp group toNorth export into-bgp set policy-options policy-statement into-bgp term 1 from interface lo0.0 set policy-options policy-statement into-bgp term 1 then accept set routing-options router-id 192.168.9.1 set routing-options autonomous-system 65300
라우터 North
set interfaces fe-1/3/1 unit 0 family inet address 10.0.78.14/30 set interfaces fe-1/3/0 unit 0 family inet address 10.0.89.13/30 set interfaces lo0 unit 0 family inet address 192.168.8.1/32 set protocols bgp group toInternet local-address 10.0.89.13 set protocols bgp group toInternet peer-as 65300 set protocols bgp group toInternet neighbor 10.0.89.14 set protocols bgp group toSouth local-address 10.0.78.14 set protocols bgp group toSouth export conditional-export-bgp set protocols bgp group toSouth peer-as 65100 set protocols bgp group toSouth neighbor 10.0.78.13 set policy-options policy-statement conditional-export-bgp term prefix_11 from protocol bgp set policy-options policy-statement conditional-export-bgp term prefix_11 from route-filter 172.16.0.0/16 orlonger set policy-options policy-statement conditional-export-bgp term prefix_11 then accept set policy-options policy-statement conditional-export-bgp term conditional-default from route-filter 0.0.0.0/0 exact set policy-options policy-statement conditional-export-bgp term conditional-default from condition prefix_11 set policy-options policy-statement conditional-export-bgp term conditional-default then accept set policy-options policy-statement conditional-export-bgp term others then reject set policy-options condition prefix_11 if-route-exists 172.16.11.1/32 set policy-options condition prefix_11 if-route-exists table inet.0 set routing-options static route 0/0 reject set routing-options router-id 192.168.8.1 set routing-options autonomous-system 65200
라우터 South
set interfaces fe-0/1/2 unit 0 family inet address 10.0.78.13/30 set interfaces lo0 unit 0 family inet address 192.168.7.1/32 set protocols bgp group toNorth local-address 10.0.78.13 set protocols bgp group toNorth import import-selected-routes set protocols bgp group toNorth peer-as 65200 set protocols bgp group toNorth neighbor 10.0.78.14 set policy-options policy-statement import-selected-routes term 1 from neighbor 10.0.78.14 set policy-options policy-statement import-selected-routes term 1 from route-filter 172.16.11.1/32 exact set policy-options policy-statement import-selected-routes term 1 from route-filter 0.0.0.0/0 exact set policy-options policy-statement import-selected-routes term 1 then accept set policy-options policy-statement import-selected-routes term 2 then reject set routing-options router-id 192.168.7.1 set routing-options autonomous-system 65100
접두사의 조건부 설치 구성
단계별 절차
다음 예에서는 구성 계층에서 다양한 수준의 탐색이 필요합니다. CLI 탐색에 대한 정보는 Junos OS CLI 사용자 가이드의 구성 모드에서 CLI 편집기 사용을 참조하십시오.
접두사의 조건부 설치 구성:
세 개의 라우터 사이에 링크를 형성하는 라우터 인터페이스를 구성합니다.
Router Internet [edit interfaces] user@Internet# set fe-0/1/3 unit 0 family inet address 10.0.89.14/30
Router North [edit interfaces] user@North# set fe-1/3/1 unit 0 family inet address 10.0.78.14/30 user@North# set fe-1/3/0 unit 0 family inet address 10.0.89.13/30
Router South [edit interfaces] user@South# set fe-0/1/2 unit 0 family inet address 10.0.78.13/30
라우터 인터넷에 다섯 개의 루프백 인터페이스 주소를 구성하여 라우터 South의 라우팅 테이블로 가져올 인터넷에서 학습된 BGP 경로를 에뮬레이트하고, 라우터 ID로 구성될 추가 주소(192.168.9.1/32)를 구성합니다.
Router Internet [edit interfaces lo0 unit 0 family inet] user@Internet# set address 172.16.11.1/32 user@Internet# set address 172.16.12.1/32 user@Internet# set address 172.16.13.1/32 user@Internet# set address 172.16.14.1/32 user@Internet# set address 172.16.15.1/32 user@Internet# set address 192.168.9.1/32
또한 라우터 North 및 South에서 루프백 인터페이스 주소를 구성합니다.
Router North [edit interfaces lo0 unit 0 family inet] user@North# set address 192.168.8.1/32
Router South [edit interfaces lo0 unit 0 family inet] user@South# set address 192.168.7.1/32
라우터 North에 광고되도록 라우터 North에 정적 기본 경로를 구성합니다.
[edit routing-options] user@North# set static route 0/0 reject
라우터 North의 라우팅 테이블에서 접두사를 내보내기 위한 조건을 정의합니다.
[edit policy-options condition prefix_11] user@North# set if-route-exists 172.16.11.1/32 user@North# set if-route-exists table inet.0
라우터 Internet과 North에서 각각 내보내기 정책(
into-bgp및conditional-export-bgp)을 정의하여 BGP로 경로를 광고합니다.참고:내보내기 정책에서 조건
prefix_11( 4단계에서 구성)을 참조해야 합니다.Router Internet [edit policy-options policy-statement into-bgp ] user@Internet# set term 1 from interface lo0.0 user@Internet# set term 1 then accept
Router North [edit policy-options policy-statement conditional-export-bgp] user@North# set term prefix_11 from protocol bgp user@North# set term prefix_11 from route-filter 172,16.0.0/16 orlonger user@North# set term prefix_11 then accept user@North# set term conditional-default from route-filter 0.0.0.0/0 exact user@North# set term conditional-default from condition prefix_11 user@North# set term conditional-default then accept user@North# set term others then reject
라우터 South에서 가져오기 정책(
import-selected-routes)을 정의하여 라우터 North에 의해 보급되는 경로 중 일부를 라우팅 테이블로 가져옵니다.[edit policy-options policy-statement import-selected-routes ] user@South# set term 1 from neighbor 10.0.78.14 user@South# set term 1 from route-filter 172.16.11.1/32 exact user@South# set term 1 from route-filter 0.0.0.0/0 exact user@South# set term 1 then accept user@South# set term 2 then reject
라우터 세 개에 BGP를 구성하여 자율 시스템 간의 접두사 흐름을 활성화합니다.
참고:접두사 광고가 발생하도록 정의된 가져오기 및 내보내기 정책을 각 BGP 그룹에 적용했는지 확인합니다.
Router Internet [edit protocols bgp group toNorth] user@Internet# set local-address 10.0.89.14 user@Internet# set peer-as 65200 user@Internet# set neighbor 10.0.89.13 user@Internet# set export into-bgp
Router North [edit protocols bgp group toInternet] user@North# set local-address 10.0.89.13 user@North# set peer-as 65300 user@North# set neighbor 10.0.89.14
[edit protocols bgp group toSouth] user@North# set local-address 10.0.78.14 user@North# set peer-as 65100 user@North# set neighbor 10.0.78.13 user@North# set export conditional-export-bgp
Router South [edit protocols bgp group toNorth] user@South# set local-address 10.0.78.13 user@South# set peer-as 65200 user@South# set neighbor 10.0.78.14 user@South# set import import-selected-routes
라우터 세 개 모두에 대한 라우터 ID 및 자율 시스템 번호를 구성합니다.
참고:이 예에서 라우터 ID는 라우터의 lo0.0 인터페이스에 구성된 IP 주소를 기반으로 구성됩니다.
Router Internet [edit routing options] user@Internet# set router-id 192.168.9.1 user@Internet# set autonomous-system 65300
Router North [edit routing options] user@North# set router-id 192.168.8.1 user@North# set autonomous-system 65200
Router South [edit routing options] user@South# set router-id 192.168.7.1 user@South# set autonomous-system 65100
결과
구성 모드에서 , show protocols bgp, 및 show routing-options show policy-options명령을 실행show interfaces하여 구성을 확인합니다. 출력에 의도한 구성이 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정합니다.
디바이스 인터넷
user@Internet# show interfaces
fe-0/1/3 {
unit 0 {
family inet {
address 10.0.89.14/30;
}
}
}
lo0 {
unit 0 {
family inet {
address 172.16.11.1/32;
address 172.16.12.1/32;
address 172.16.13.1/32;
address 172.16.14.1/32;
address 172.16.15.1/32;
address 192.168.9.1/32;
}
}
}
user@Internet# show protocols bgp
group toNorth {
local-address 10.0.89.14;
export into-bgp;
peer-as 65200;
neighbor 10.0.89.13;
}
user@Internet# show policy-options
policy-statement into-bgp {
term 1 {
from interface lo0.0;
then accept;
}
}
user@Internet# show routing-options router-id 192.168.9.1; autonomous-system 65300;
디바이스 North
user@North# show interfaces
fe-1/3/1 {
unit 0 {
family inet {
address 10.0.78.14/30;
}
}
}
fe-1/3/0 {
unit 0 {
family inet {
address 10.0.89.13/30;
}
}
}
lo0 {
unit 0 {
family inet {
address 192.168.8.1/32;
}
}
}
user@North# show protocols bgp
group toInternet {
local-address 10.0.89.13;
peer-as 65300;
neighbor 10.0.89.14;
}
group toSouth {
local-address 10.0.78.14;
export conditional-export-bgp;
peer-as 65100;
neighbor 10.0.78.13;
}
user@North# show policy-options
policy-statement conditional-export-bgp {
term prefix_11 {
from {
protocol bgp;
route-filter 172.16.0.0/16 orlonger;
}
then accept;
}
term conditional-default {
from {
route-filter 0.0.0.0/0 exact;
condition prefix_11;
}
then accept;
}
term others {
then reject;
}
}
condition prefix_11 {
if-route-exists {
172.16.11.1/32;
table inet.0;
}
}
user@North# show routing-options
static {
route 0.0.0.0/0 reject;
}
router-id 192.168.8.1;
autonomous-system 65200;
디바이스 South
user@South# show interfaces
fe-0/1/2 {
unit 0 {
family inet {
address 10.0.78.13/30;
}
}
}
lo0 {
unit 0 {
family inet {
address 192.168.7.1/32;
}
}
}
user@South# show protocols bgp
bgp {
group toNorth {
local-address 10.0.78.13;
import import-selected-routes;
peer-as 65200;
neighbor 10.0.78.14;
}
}
user@South# show policy-options
policy-statement import-selected-routes {
term 1 {
from {
neighbor 10.0.78.14;
route-filter 172.16.11.1 exact;
route-filter 0.0.0.0/0 exact;
}
then accept;
}
term 2 {
then reject;
}
}
user@South# show routing-options router-id 192.168.7.1; autonomous-system 65100;
라우터 구성을 마쳤으면 구성 모드에서 들어갑니다 commit .
검증
구성이 제대로 작동하고 있는지 확인합니다.
- BGP 검증
- 라우터 Internet에서 라우터 North로의 접두사 광고 검증
- 라우터 North에서 라우터 South로의 접두사 광고 검증
- 접두사 설치를 위한 BGP 가져오기 정책 검증
- 라우터 North에서 라우터 South로 조건부 내보내기 검증
- 정책으로 숨겨진 경로 존재 확인(옵션)
BGP 검증
목적
BGP 세션이 라우터 세 개 사이에 설정되었는지 확인합니다.
작업
운영 모드에서 명령을 실행합니다 show bgp neighbor neighbor-address .
라우터 Internet에서 BGP 세션을 확인하여 라우터 North가 neighbor인지 확인합니다.
user@Internet> show bgp neighbor 10.0.89.13 Peer: 10.0.89.13+179 AS 65200 Local: 10.0.89.14+56187 AS 65300 Type: External State: Established Flags: [ImportEval Sync] Last State: OpenConfirm Last Event: RecvKeepAlive Last Error: None Export: [ into-bgp ] Options: [Preference LocalAddress PeerAS Refresh] Local Address: 10.0.89.14 Holdtime: 90 Preference: 170 Number of flaps: 0 Peer ID: 192.168.8.1 Local ID: 192.168.9.1 Active Holdtime: 90 Keepalive Interval: 30 Group index: 0 Peer index: 0 BFD: disabled, down Local Interface: fe-0/1/3.0 NLRI for restart configured on peer: inet-unicast NLRI advertised by peer: inet-unicast NLRI for this session: inet-unicast Peer supports Refresh capability (2) Stale routes from peer are kept for: 300 Peer does not support Restarter functionality NLRI that restart is negotiated for: inet-unicast NLRI of received end-of-rib markers: inet-unicast NLRI of all end-of-rib markers sent: inet-unicast Peer supports 4 byte AS extension (peer-as 65200) Peer does not support Addpath Table inet.0 Bit: 10000 RIB State: BGP restart is complete Send state: in sync Active prefixes: 0 Received prefixes: 0 Accepted prefixes: 0 Suppressed due to damping: 0 Advertised prefixes: 6 Last traffic (seconds): Received 9 Sent 18 Checked 28 Input messages: Total 12 Updates 1 Refreshes 0 Octets 232 Output messages: Total 14 Updates 1 Refreshes 0 Octets 383 Output Queue[0]: 0라우터 North에서 BGP 세션을 확인하여 라우터 Internet이 neighbor인지 확인합니다.
user@North> show bgp neighbor 10.0.89.14 Peer: 10.0.89.14+56187 AS 65300 Local: 10.0.89.13+179 AS 65200 Type: External State: Established Flags: [ImportEval Sync] Last State: OpenConfirm Last Event: RecvKeepAlive Last Error: None Options: [Preference LocalAddress PeerAS Refresh] Local Address: 10.0.89.13 Holdtime: 90 Preference: 170 Number of flaps: 0 Peer ID: 192.168.9.1 Local ID: 192.168.8.1 Active Holdtime: 90 Keepalive Interval: 30 Group index: 0 Peer index: 0 BFD: disabled, down Local Interface: fe-1/3/0.0 NLRI for restart configured on peer: inet-unicast NLRI advertised by peer: inet-unicast NLRI for this session: inet-unicast Peer supports Refresh capability (2) Stale routes from peer are kept for: 300 Peer does not support Restarter functionality NLRI that restart is negotiated for: inet-unicast NLRI of received end-of-rib markers: inet-unicast NLRI of all end-of-rib markers sent: inet-unicast Peer supports 4 byte AS extension (peer-as 65300) Peer does not support Addpath Table inet.0 Bit: 10001 RIB State: BGP restart is complete Send state: in sync Active prefixes: 6 Received prefixes: 6 Accepted prefixes: 6 Suppressed due to damping: 0 Advertised prefixes: 0 Last traffic (seconds): Received 14 Sent 3 Checked 3 Input messages: Total 16 Updates 2 Refreshes 0 Octets 402 Output messages: Total 15 Updates 0 Refreshes 0 Octets 348 Output Queue[0]: 0
이 출력에서 다음 필드를 확인하여 BGP 세션이 설정되었는지 확인합니다.
Peer- 피어 AS 번호가 목록에 있는지 확인합니다.
Local- 로컬 AS 번호가 나열되어 있는지 확인합니다.
State- 값이
Established인지 확인합니다. 그렇지 않으면 구성을 다시 확인하고 출력 필드에서 자세한 내용을 확인합니다show bgp neighbor.
마찬가지로, 라우터 North 및 South가 서로 피어 관계를 형성하는지 확인합니다.
의미
BGP 세션은 라우터 세 개 사이에 설정됩니다.
라우터 Internet에서 라우터 North로의 접두사 광고 검증
목적
라우터 Internet에서 전송된 경로가 라우터 North에서 수신되는지 확인합니다.
작업
라우터 Internet의 운영 모드에서 명령을 실행합니다
show route advertising-protocol bgp neighbor-address.user@Internet> show route advertising-protocol bgp 10.0.89.13 inet.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.11.1/32 Self I * 172.16.12.1/32 Self I * 172.16.13.1/32 Self I * 172.16.14.1/32 Self I * 172.16.15.1/32 Self I * 192.168.9.1/32 Self I
출력으로 라우터 Internet이 라우터 North에 경로 172.16.11.1/32, 172.16.12.1/32, 172.16.13.1/32, 172.16.14.1/32, 172.16.15.1/32, 및 192.168.9.1/32(라우터 ID로 사용되는 루프백 주소)를 광고하는지 확인합니다.
라우터 North의 운영 모드에서 명령을 실행합니다
show route receive-protocol bgp neighbor-address.user@North> show route receive-protocol bgp 10.0.89.14 inet.0: 12 destinations, 12 routes (12 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.11.1/32 10.0.89.14 65300 I * 172.16.12.1/32 10.0.89.14 65300 I * 172.16.13.1/32 10.0.89.14 65300 I * 172.16.14.1/32 10.0.89.14 65300 I * 172.16.15.1/32 10.0.89.14 65300 I * 192.168.9.1/32 10.0.89.14 65300 I
출력으로 라우터 North가 라우터 Internet이 광고하는 모든 경로를 수신했는지 확인합니다.
의미
라우터 Internet에서 보낸 접두사가 라우터 North의 라우팅 테이블에 성공적으로 설치되었습니다.
라우터 North에서 라우터 South로의 접두사 광고 검증
목적
라우터 Internet에서 수신된 경로와 정적 기본 경로가 라우터 North에서 라우터 South로 보급되는지 확인합니다.
작업
라우터 North의 운영 모드에서 명령을 실행합니다
show route 0/0 exact.user@North> show route 0/0 exact inet.0: 12 destinations, 12 routes (12 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 0.0.0.0/0 *[Static/5] 00:10:22 Reject출력으로 라우터 North의 라우팅 테이블에 정적 기본 경로(0.0.0.0/0)가 존재하는지 라우팅 테이블에서 확인할 수 있습니다.
라우터 North의 운영 모드에서 명령을 실행합니다
show route advertising-protocol bgp neighbor-address.user@North> show route advertising-protocol bgp 10.0.78.13 inet.0: 12 destinations, 12 routes (12 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 0.0.0.0/0 Self I * 172.16.11.1/32 Self 65300 I * 172.16.12.1/32 Self 65300 I * 172.16.13.1/32 Self 65300 I * 172.16.14.1/32 Self 65300 I * 172.16.15.1/32 Self 65300 I
출력으로 라우터 North가 라우터 Internet에서 수신된 정적 경로 및 172.16.11.1/32 경로를 광고하고 라우터 South로의 다른 여러 경로를 광고하고 있는지 확인합니다.
접두사 설치를 위한 BGP 가져오기 정책 검증
목적
BGP 가져오기 정책이 필요한 접두사를 성공적으로 설치하는지 확인합니다.
작업
라우터 North의 정적 기본 경로와 라우터 South의 172.16.11.1/32 경로만 라우팅 테이블에 설치되었는지 확인하여 라우터 South의 가져오기 정책이 작동하는지 라우팅 테이블에 설치되었는지 확인합니다.
운영 모드에서 명령을 실행합니다 show route receive-protocol bgp neighbor-address .
user@South> show route receive-protocol bgp 10.0.78.14 inet.0: 10 destinations, 11 routes (6 active, 0 holddown, 4 hidden) Prefix Nexthop MED Lclpref AS path * 0.0.0.0/0 10.0.78.14 65200 I * 172.16.11.1/32 10.0.78.14 65200 65300 I
출력은 BGP 가져오기 정책이 라우터 South에서 운영되고, 라우터 North에서 0.0.0.0/0의 정적 기본 경로 및 라우터 Internet에서 172.16.11.1/32 경로만 라우터 South의 라우팅 테이블로 누수되었는지 확인합니다.
의미
구성된 BGP 가져오기 정책 덕분에 접두사 설치가 성공적으로 작동합니다.
라우터 North에서 라우터 South로 조건부 내보내기 검증
목적
디바이스 Internet이 172.16.11.1/32 경로를 전송하지 않을 때, 디바이스 North가 기본 0/0 경로를 전송을 멈추는지 확인합니다.
작업
루프백 인터페이스의 172.16.11.1/32 주소를 비활성화하여 디바이스 인터넷의 172.16.11.1/32 경로 전송을 중단합니다.
[edit interfaces lo0 unit 0 family inet] user@Internet# deactivate address 172.16.11.1/32 user@Internet# commit
라우터 North의 운영 모드에서 명령을 실행합니다
show route advertising-protocol bgp neighbor-address.user@North> show route advertising-protocol bgp 10.0.78.13 inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.12.1/32 Self 65300 I * 172.16.13.1/32 Self 65300 I * 172.16.14.1/32 Self 65300 I * 172.16.15.1/32 Self 65300 I
출력으로 라우터 North가 라우터 South로 기본 경로를 광고하지 않는다는 것을 확인합니다. 이것은 172.16.11.1/32 경로가 존재하지 않을 때 예상되는 동작입니다.
디바이스 인터넷의 루프백 인터페이스에서 172.16.11.1/32 주소를 다시 활성화합니다.
[edit interfaces lo0 unit 0 family inet] user@Internet# activate address 172.16.11.1/32 user@Internet# commit
정책으로 숨겨진 경로 존재 확인(옵션)
목적
라우터 South에서 구성된 가져오기 정책에 의해 숨겨진 경로의 존재를 확인합니다.
이 섹션에서는 필요에 따라 구성에 적용할 수 있는 다양한 변경 사항의 영향을 보여줍니다.
작업
라우터 South의 라우팅 테이블에서 숨겨진 경로를 표시합니다:
명령에 대한 옵션을 사용합니다
hidden.show route receive-protocol bgp neighbor-address가져오기 정책을 비활성화합니다.
운영 모드에서 명령을 실행
show route receive-protocol bgp neighbor-address hidden하여 숨겨진 경로를 확인합니다.user@South> show route receive-protocol bgp 10.0.78.14 hidden inet.0: 10 destinations, 11 routes (6 active, 0 holddown, 4 hidden) Prefix Nexthop MED Lclpref AS path 172.16.12.1/32 10.0.78.14 65200 65300 I 172.16.13.1/32 10.0.78.14 65200 65300 I 172.16.14.1/32 10.0.78.14 65200 65300 I 172.16.15.1/32 10.0.78.14 65200 65300 I
출력은 라우터 South의 가져오기 정책(172.16.12.1/32, 172.16.13.1/32, 172.16.14.1/32, 및 172.16.15.1/32)에 의해 숨겨진 경로의 존재를 확인합니다.
계층 수준에서 문을 구성
deactivate import하여 BGP 가져오기 정책을 비활성화합니다[edit protocols bgp group group-name].[edit protocols bgp group toNorth] user@South# deactivate import user@South# commit
운영 모드 명령을 실행
show route receive-protocol bgp neighbor-address하여 가져오기 정책을 비활성화한 후 경로를 확인합니다.user@South> show route receive-protocol bgp 10.0.78.14 inet.0: 10 destinations, 11 routes (10 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 0.0.0.0/0 10.0.78.14 65200 I * 172.16.11.1/32 10.0.78.14 65200 65300 I * 172.16.12.1/32 10.0.78.14 65200 65300 I * 172.16.13.1/32 10.0.78.14 65200 65300 I * 172.16.14.1/32 10.0.78.14 65200 65300 I * 172.16.15.1/32 10.0.78.14 65200 65300 I
출력으로 이전에 숨겨진 경로(172.16.12.1/32, 172.16.13.1/32, 172.16.14.1/32, 및 172.16.15.1/32)의 존재를 확인합니다.
계층 수준에서
[edit protocols bgp group group-name]및 문을keep none각각 구성activate import하여 BGP 가져오기 정책을 활성화하고 라우팅 테이블에서 숨겨진 경로를 제거합니다.[edit protocols bgp group toNorth] user@South# activate import user@South# set keep none user@South# commit
운영 모드에서 명령을 실행
show route receive-protocol bgp neighbor-address hidden하여 가져오기 정책을 활성화하고 문을 구성한 후 경로를 확인합니다.keep noneuser@South> show route receive-protocol bgp 10.0.78.14 hidden inet.0: 6 destinations, 7 routes (6 active, 0 holddown, 0 hidden)
출력은 구성된
keep none문으로 인해 숨겨진 경로가 라우팅 테이블에서 유지되지 않는다는 것을 확인합니다.
정책 없이 기본 EBGP 경로 전파 동작에 대한 암시적 필터
이 섹션에서는 명시적 정책이 구성되지 않은 경우 EBGP 경로 전파 동작을 규제하기 위해 암시적 필터를 사용하는 방법에 대해 설명합니다.
이점
이 기능은 다음과 같은 이점을 제공합니다.
Regulates BGP implementation- EBGP 스피커가 기본적으로 모든 경로를 승인하고 보급하는 자동 패스스루가 되지 않도록 합니다. 이 기능은 리프 AS(Autonomous System)에서 전송 트래픽의 증가를 효과적으로 감소시킵니다. 특히 업스트림 인터넷 서비스 공급자에게 멀티호밍될 때 더욱 그렇습니다. 따라서 트래픽 자동 삭제, 서비스 거부 및 글로벌 인터넷 중단을 방지합니다.
Implicit filter- 이 구성을 통해 기본 동작이 기본적으로 모든 경로를 수신하고 보급하도록 설정된 암시적 필터를 쉽게 사용할 수 있습니다. 구성 문은 필요한 경우 accept, reject, reject-always 절에 대해 enable 또는 disable을 지정하는 옵션만 추가합니다. 암시적 필터는 기본 BGP 정책에 의존하는 기존 구축이 있는 사용자가 운영 중단을 겪지 않도록 합니다.
개요
BGP는 글로벌 인터넷 라우팅에 사용되는 현재 도메인 간 자율 프로토콜입니다. 또한 글로벌 사용을 위한 것이 아닌 VPN, 링크 상태 등 다양한 서비스를 지원합니다.
기본 EBGP 동작을 포함한 BGP 구현은 BGP-4(RFC4271, A Border Gateway Protocol 4)에 의해 안내됩니다. 그러나 배포해야 하는 경로를 지정하는 것에 대한 명시적인 지침은 제공하지 않습니다. 이로 인해 원래 BGP 구현은 필터링 없이 경로에 대한 자동 패스스루가 되므로 트래픽이 증가하여 글로벌 인터넷 정지를 초래합니다.
Junos OS 릴리스 20.3R1부터 기존 [edit protocols bgp] 계층 수준에서 암시적 필터 defaults ebgp no-policy 를 도입했습니다. 구성은 수신 및 보급에 대한 기본 정책을 별도의 절(승인, 거부 또는 거부-항상)으로 분리하여 동작이 독립적으로 변경될 수 있도록 합니다.
명시적인 정책이 구성되어 있지 않은 경우, 암시적 필터를 사용하면 다음과 같이 기본 eBGP 수신 및 보급 동작을 다음과 같이 활성화할 수 있습니다.
가치 |
기본 정책 |
기능 |
|---|---|---|
수락 |
수신 |
모든 경로(기본 동작도 포함)를 수신합니다. |
광고 |
모든 경로(기본 동작도 포함) 보급을 허용합니다. |
|
거부 |
수신 |
인스턴스 유형 primary, vrf, virtual-라우터 및 non-forwarding에서 inet 유니캐스트 및 inet6 유니캐스트 유형의 경로를 수신하는 것을 거부합니다. |
광고 |
인스턴스 유형 primary, vrf, virtual-라우터 및 non-forwarding에서 inet 유니캐스트 및 inet6 유니캐스트 유형의 경로를 보급하는 것을 거부합니다. |
|
항상 거부 |
수신 |
모든 경로 수신을 거부합니다. |
광고 |
모든 경로를 보급하지 않습니다. |