이 페이지에서
기본 BGP 라우팅 정책
라우팅 정책 이해하기
각 라우팅 정책은 정책 이름으로 식별됩니다. 이름은 문자, 숫자, 하이픈(-)을 포함할 수 있으며 최대 255자 길이입니다. 이름에 공백을 포함하려면 전체 이름을 큰따옴표 안에 넣으십시오. 구성 내에서 라우팅 정책은 각각 고유한 이름을 가져야 합니다.
정책이 생성되고 이름이 지정되면 활성화되기 전에 먼저 적용해야 합니다. 라우팅 정책은 구성 계층의 protocols protocol-name
수준에서 import
및 export
명령문을 사용해 적용합니다.
import
명령문에서는 경로를 라우팅 프로토콜에서 라우팅 테이블로 가져올 때 평가할 라우팅 정책의 이름을 입력합니다.
export
명령문에서는 경로를 라우팅 테이블에서 동적 라우팅 프로토콜로 내보낼 때 평가할 라우팅 정책의 이름을 입력합니다. 활성 상태의 경로만 라우팅 테이블에서 내보낼 수 있습니다.
정책을 한 개 이상 지정하여 정책 체인을 생성하려면 공백을 구분자로 사용하여 이러한 정책을 모두 나열합니다. 여러 정책이 지정되면 정책은 지정된 순서대로 평가됩니다. 작업 수락 또는 거부가 실행되는 순간 정책 체인 평가가 종료됩니다.
참조
예: BGP 계층의 다른 수준에서 라우팅 정책 적용
이 예는 간단한 네트워크 토폴로지에서 구성된 BGP를 보여주고 라우팅 정책이 BGP 구성의 다른 수준에서 적용될 때 어떻게 효과를 발휘하는지 설명합니다.
요구 사항
이 예를 구성하기 전에 디바이스 초기화를 제외한 특별한 구성은 필요하지 않습니다.
개요
BGP의 경우, 다음과 같이 정책을 적용할 수 있습니다:
BGP 글로벌
import
및export
문—[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]
계층 수준에 이러한 문들을 포함).
peer-level·import
또는 export
문은 그룹 import
또는 export
문보다 우선합니다. group-level 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는 그룹 또는 아웃 수준 정책이 없으므로 send-direct 정책을 사용합니다.
neighbor 172.16.2.2가 세 정책 모두의 기능을 수행해야 하는 경우, 다른 세 개의 기능을 포함하는 새로운 neighbor 수준 정책을 작성하고 적용하거나 기존 세 개의 정책을 모두 체인으로 neighbor 172.16.2.2에 적용할 수 있습니다.
토폴로지
그림 1은 샘플 네트워크를 표시합니다.
CLI 빠른 구성은 그림 1 내 모든 디바이스의 구성을 보여줍니다.
섹션 #d99e203__d99e457은 디바이스 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 interfaces
, show protocols
, show policy-options
및 show routing-options
명령을 입력하여 구성을 확인합니다. 출력 결과가 의도한 구성대로 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정하십시오.
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(Border Gateway Protocol) 라우팅 테이블에 삽입하는 정책을 만드는 방법의 예가 나와 있습니다.
요구 사항
시작하기 전에:
네트워크 인터페이스를 구성합니다.
외부 피어 세션을 구성합니다. 예: 외부 BGP Point-to-Point 피어 세션 구성을 참조하십시오.
피어 간의 IGP(Interior Gateway Protocol) 세션을 구성합니다.
개요
이 예에서는 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 policy-options
및 show protocols bgp
명령을 입력하여 구성을 확인합니다. 출력 결과가 의도한 구성대로 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정하십시오.
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 policy-options
및 show routing-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 구성 내에 import
및 export
문을 포함합니다.
다음과 같이 정책을 적용할 수 있습니다.
BGP 글로벌
import
및export
문—[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]
계층 수준에 이러한 문들을 포함).
peer-level·import
또는 export
문은 그룹 import
또는 export
문보다 우선합니다. group-level 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는 이를 자신의 피어에 보급합니다. Junos OS가 활성 경로로 선택하지 않았더라도 BGP가 학습한 최상의 경로를 BGP로 내보내려면 advertise-inactive
문을 포함하십시오.
advertise-inactive;
이 명령문을 포함할 수 있는 계층 수준의 목록은 이 명령문에 대한 요약 섹션을 참조하십시오.
내부 피어에 최상의 외부 경로를 보급하기 위한 BGP 설정
일반적으로 배포된 BGP 구현은 최상의 경로가 아닌 한 local 선호 값이 가장 높은 외부 경로를 내부 피어에 알리지 않습니다. 이 동작은 이전 버전의 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 내보내기 정책을 구성할 수 있도록 지원합니다. 활성 경로 또는 비활성 경로에서 일치시킬 수 있습니다. 자세한 정보는 라우팅 정책, 방화벽 필터 및 트래픽 Policer 사용자 가이드를 참조하십시오.
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(Provider Edge) 라우팅 디바이스는 예상되는 route target이 없는 모든 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, BGP(Border Gateway Protocol) 지속 경로 진동 상태에서 설명된 내부 BGP(IBGP) 경로 진동 문제를 해결할 수도 있습니다.
advertise-external
문은 BGP 스피커의 동작을 수정하여 최고 전체 경로가 내부 경로인 경우에도 IBGP 피어에 최고 외부 경로를 보급합니다.
advertise-external
문은 그룹 및 neighbor 수준에서 모두 지원됩니다. neighbor 수준에서 문을 구성하면 그룹 내 모든 neighbor에 이것을 구성해야 합니다. 그렇지 않으면 그룹이 자동으로 다른 그룹으로 분리됩니다.
conditional
옵션은 advertise-external
설정의 동작을 제한하여, 경로 선택 프로세스가 MED(Multiple Exit Discriminator) 메트릭이 평가되는 포인트에 도달할 때만 외부 경로가 보급됩니다. 따라서, 예를 들어 AS 경로가 활성 경로보다 나쁜 (긴) 경우 외부 경로가 보급되지 않습니다. conditional
옵션은 최고의 외부 경로와 활성 경로가 경로 선택 프로세스의 MED 단계까지 동일한 경우, 외부 경로 보급을 제한합니다. 최고의 외부 경로를 선택하는 데 사용되는 기준은 conditional
옵션의 구성 여부와 관계없이 동일합니다.
Junos OS는 또한 보급된 경로 상태와 일치하는 BGP 내보내기 정책 구성을 지원합니다. 다음과 같이 활성 또는 비활성 경로를 일치시킬 수 있습니다:
policy-options { policy-statement name{ from state (active|inactive); } }
이 한정자는 내보내기 정책의 컨텍스트에서 사용할 때만 일치합니다. (BGP 같은) 비활성 경로를 보급할 수 있는 프로토콜로 경로가 보급될 경우, advertise-inactive
및 advertise-external
문의 결과로 보급되는 경로와 state inactive
은 일치합니다.
예를 들어 다음 구성은 내부 피어로의 BGP 내보내기 정책으로 사용되어, 사용자 정의 community에서 advertise-external
설정으로 보급된 경로를 표시합니다. 해당 community는 나중에 수신 라우터에 사용되어 포워딩 테이블에서 이러한 경로를 필터링할 수 있습니다. 이와 같은 메커니즘은 발신자가 포워딩에 사용하지 않는 보급 경로가 포워딩 루프를 유발할 수도 있다는 우려를 해결하는 데 사용될 수 있습니다.
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의 경로에 대한 가져오기 정책에서 local 선호를 설정하지 않으므로, 172.16.6.0/24는 100의 기본 local 선호를 갖습니다.
디바이스 R3은 200의 local 선호로 172.16.6.0/24를 보급합니다.
advertise-external
문이 디바이스 R2에서 구성되지 않으면, 디바이스 R2는 디바이스 R3으로 172.16.6.0/24를 보급하지 않습니다.
advertise-external
문이 디바이스 R3에 대한 세션에서 디바이스 R2에 구성되면, 디바이스 R2는 디바이스 R3으로 172.16.6.0/24를 보급합니다.
advertise-external conditional
이 디바이스 R3에 대한 세션에서 디바이스 R2에 구성되면, 디바이스 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 내 모든 디바이스의 구성을 보여줍니다.
섹션 #d102e160__d102e338은 디바이스 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 interfaces
, show protocols
, show policy-options
및 show routing-options
명령을 입력하여 구성을 확인합니다. 출력 결과가 의도한 구성대로 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정하십시오.
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의 경로는 별표(*)로 지정된 활성 경로입니다. 활성 경로가 가장 높은 local 선호를 보유합니다. 두 경로의 local 선호가 동일하더라도 디바이스 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
)의 정적 기본 경로를 포함합니다.
조건부 옵션 실험
목적
conditional
옵션이 BGP 경로 선택 알고리즘의 맥락에서 어떻게 작동하는지 확인합니다.
작업
디바이스 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에서 두 경로의 local 선호가 동일한지 확인합니다.
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 경로 길이가 무시되고 local 선호가 동일하므로 현재 경로가 보급됩니다.
예: BGP 접두사 기반 Outbound Route 필터링 구성
이 예는 주니퍼 네트웍스 라우터를 구성하여 원격 피어의 경로 필터를 수락하고 수신한 필터를 사용해 Outbound Route 필터링을 수행하는 방법을 보여줍니다.
요구 사항
시작하기 전에:
라우터 인터페이스를 구성합니다.
내부 게이트웨이 프로토콜(IGP)을 구성합니다.
개요
BGP 피어를 구성하여 원격 피어의 경로 필터를 수락하고 수신된 필터를 사용하여 Outbound Route 필터링을 수행할 수 있습니다. 원치 않는 업데이트를 필터링하여 전송 피어는 업데이트를 생성 및 전송하는 데 필요한 리소스를 절약하고, 수신 피어는 업데이트를 처리하는 데 필요한 리소스를 절약합니다. 예를 들어 고객 에지(CE) 디바이스의 하위 집합이 VPN 내 모든 경로를 처리할 수 없는 가상 사설망(VPN)에서 이 기능이 유용할 수 있습니다. CE 디바이스는 접두사 기반 Outbound Route 필터링을 사용하여 제공업체 에지(PE) 디바이스와 통신하면서 주요 데이터 센터 경로와 같은 경로 하위 집합만 전송할 수 있습니다.
BGP 피어가 허용할 수 있는 접두사 기반 Outbound Route 필터의 최대 수는 5,000입니다. 원격 피어가 피어 주소에 전송하는 Outbound Route Filter 수가 5,000개를 초과하면, 추가 필터는 폐기되고 시스템 로그 메시지가 생성됩니다.
라우팅 디바이스 전체로서 또는 특정 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에서 경로 필터를 수락하고 수신된 필터를 사용하는 outbound route 필터링을 수행하려면:
로컬 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 경로 필터를 수락하고 수신된 필터를 사용하는 outbound route 필터링을 수행합니다.
[edit protocols bgp group cisco-peers] user@PE1# set outbound-route-filter prefix-based accept inet
(옵션) outbound route 필터를 위한 130 벤더별 호환성 코드 및 128 코드 유형을 사용하는 라우팅 디바이스가 상호 운용성을 활성화합니다.
IANA 표준 코드가 3이며 표준 코드 유형은 64입니다.
[edit protocols bgp group cisco-peers] user@PE1# set outbound-route-filter bgp-orf-cisco-mode
결과
구성 모드에서 show protocols
및 show routing-options
명령을 입력하여 구성을 확인합니다. 출력 결과가 의도한 구성대로 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정하십시오.
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 모드 검증
목적
ORFCiscoMode
옵션이 show bgp neighbor
명령 출력에 표시되는지 확인하여 피어에 대해 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 시리즈 라우터는 일반적으로 IGP(Interior Gateway Protocol) 경로를 사용하여 IP를 포워딩하는 MPLS 전송 플랫폼입니다. PTX 시리즈 패킷 전달 엔진은 상대적으로 적은 수의 variable-length 접두사를 수용할 수 있습니다.
PTX 시리즈 라우터는 컨트롤 플레인에서 전체 BGP 경로를 지원할 수 있으므로 경로 리플렉터(RR)로 사용될 수 있습니다. exact-length 조회 멀티캐스트 포워딩을 수행하고 유니캐스트 컨트롤 플레인에서 사용할 멀티캐스트 포워딩 플레인을 구축할 수 있습니다(예: 멀티캐스트에 대해 reverse-path 포워딩 조회 수행).
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
flag를 사용하여 이러한 기본 구성을 확인할 수 있습니다.
또한 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(Border Gateway Protocol) 경로를 설치하지 않습니다.
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 경로가 설치되지 않았습니다. 이는 예상되는 동작입니다.
이 예는 기본 BGP 라우팅 정책을 효과적으로 대체하기 위해 then install-to-fib
작업을 사용하는 방법을 보여줍니다.
구성
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
결과
구성 모드에서 show policy-options
및 show routing-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 시리즈 Multiservice 에지 라우터, MX 시리즈 5G 유니버설 라우팅 플랫폼 또는 T 시리즈 코어 라우터
Junos OS 릴리스 9.0 이상
개요
이 예에서는 세 가지 다른 AS(Autonomous System) 내 라우터 3개가 BGP 프로토콜과 연결 및 구성되어 있습니다. 업스트림 라우터인 라우터 라벨링 Internet에는 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)에 구성된 주소 다섯 개가 있으며, 추가 루프백 주소(192.168.9.1/32)는 라우터 ID로 구성됩니다. 이 주소 여섯 개는 BGP로 내보내어져 Internet에 연결된 라우터의 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의 가져오기 정책 결과로 경로 네 개가 삭제됩니다. North의 내보내기 정책이 Internet에서 수신된 모든 경로를 누수하고, South의 가져오기 정책이 이 경로 중 일부를 제외하기 때문입니다.
가져오기 정책(인바운드 경로 필터)이 경로를 거부하고, 트래픽 포워딩에 사용하지 않고, 다른 피어에 대한 광고에 포함하지 않을 수도 있지만, Junos OS에서 이 라우터가 숨겨진 경로로 이 경로들을 유지한다는 것을 이해하는 게 중요합니다. 이 숨겨진 경로는 정책 또는 라우팅 목적으로 사용할 수 없습니다. 그러나 라우터의 메모리 공간을 차지합니다. 경로를 필터링하여 메모리에 보관되고 라우터에서 처리되는 정보 양을 제어하는 서비스 프로바이더는 라우터가 가져오기 정책에 의해 거부된 경로를 완전히 제거하길 원할 수 있습니다.
숨겨진 경로는 show route receive-protocol bgp neighbor-address hidden
명령을 사용하여 볼 수 있습니다. 그런 다음 숨겨진 경로는 [edit protocols bgp]
또는 [edit protocols bgp group group-name]
계층 수준에서 keep all | none
문을 구성하여 라우팅 테이블에서 유지되거나 삭제될 수 있습니다.
BGP 경로 유지 규칙은 다음과 같습니다:
-
기본값으로 AS 경로가 반복되는 경우를 제외하고 BGP에서 학습된 모든 경로가 유지됩니다. (AS 경로는 로컬 AS를 포함합니다.)
-
keep all
문을 구성하여, BGP에서 학습된 모든 경로(AS 경로 내 로컬 AS 경로를 포함)가 유지됩니다. -
keep none
문을 구성하여, BGP는 피어에게서 수신하거나 가져오기 정책 또는 기타 온전성 검사로 거부된 경로를 버립니다. 이 문이 구성되고 인바운드 정책이 변경되면, Junos OS는 피어가 광고하는 모든 경로를 다시 광고합니다.
keep all
또는 keep none
을(를) 구성하고 피어가 경로 새로고침을 지원하면, 로컬 스피커는 새로고침 메시지를 보내고 가져오기 평가를 수행합니다. 이 피어를 위해 세션이 다시 시작하지 않습니다. 피어의 새로고침 지원을 알아보려면 show bgp neighbor
명령의 출력에서 Peer supports Refresh capability
을(를) 확인하십시오.
keep all
또는 keep none
을(를) 구성하고 피어가 세션 재시작을 지원하지 않으면, 연결된 BGP 세션이 다시 시작합니다(플랩됨).
토폴로지
구성
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 바꾸고 [edit]
계층 수준에서 명령을 CLI로 복사해 붙여 넣습니다.
라우터 Internet
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
라우터 Internet에 루프백 인터페이스 주소 다섯 개를 구성하여 라우터 South의 라우팅 테이블로 가져오게 되는 Internet에서 학습된 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에 광고되도록 라우터 South에 정적 기본 경로를 구성합니다.
[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를 구성하여 AS(Autonomous System) 간 접두사의 흐름을 활성화합니다.
주:접두사 광고를 활성화하기 위해 각 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 및 AS(Autonomous System) 번호를 구성합니다.
주:이 예에서 라우터 ID는 라우터의 lo0.0 인터페이스에서 구성된 주소를 기반으로 구성됩니다.
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 interfaces
, show protocols bgp
, show policy-options
및 show routing-options
명령을 입력하여 구성을 확인합니다. 출력 결과가 의도한 구성대로 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정하십시오.
디바이스 Internet
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에서 정적 기본 경로와 라우터에서 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
출력으로 라우터 South에서 BGP 가져오기 정책이 운영되고, 라우터 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 주소를 비활성화하여 디바이스 Internet의 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 경로가 존재하지 않을 때 예상되는 동작입니다.
디바이스 Internet의 루프백 인터페이스에서 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의 라우팅 라우팅 테이블에서 숨겨진 경로를 표시합니다:
show route receive-protocol bgp neighbor-address
명령에hidden
옵션을 사용합니다.가져오기 정책을 비활성화합니다.
운영 모드에서
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)으로 숨겨진 경로의 존재를 확인합니다.
[edit protocols bgp group group-name]
계층 수준에서deactivate import
문을 구성하여 BGP 가져오기 정책을 재활성화합니다.[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]
계층 수준에서activate import
및keep none
문을 구성하여 BGP 가져오기 정책을 활성화하고 라우팅 테이블에서 숨겨진 경로를 제거합니다.[edit protocols bgp group toNorth] user@South# activate import user@South# set keep none user@South# commit
운영 모드에서, 가져오기 정책을 활성화하고
keep none
문을 구성한 후 경로를 확인하는show route receive-protocol bgp neighbor-address hidden
명령을 실행합니다.user@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 경로 전파 동작에 대한 암시적 필터
SUMMARY 이 섹션에서는 명시적 정책이 구성되지 않은 경우 EBGP 경로 전파 동작을 규제하기 위해 암시적 필터를 사용하는 방법에 대해 설명합니다.
이점
이 기능은 다음 이점을 제공합니다:
Regulates BGP implementation—EBGP 스피커가 기본적으로 모든 경로를 승인하고 보급하는 silent pass-through가 되지 않도록 합니다. 이 기능은 리프 AS(Autonomous System)에서 전송 트래픽의 증가를 효과적으로 감소시킵니다. 특히 업스트림 인터넷 서비스 공급자에게 멀티호밍될 때 더욱 그렇습니다. 따라서 트래픽 자동 삭제, 서비스 거부 및 글로벌 인터넷 중단을 방지합니다.
Implicit filter—이 구성을 통해 기본 동작이 기본적으로 모든 경로를 수신하고 보급하도록 설정된 암시적 필터를 쉽게 사용할 수 있습니다. 구성 문에는 필요한 경우 accept, reject, reject-always 절에 대해 enable 또는 disable을 지정하는 옵션만 추가됩니다. 암시적 필터는 기본 BGP 정책에 의존하는 기존 배포가 있는 사용자가 운영 중단을 겪지 않도록 보장합니다.
개요
BGP는 글로벌 인터넷 라우팅에 사용되는 현재 도메인 간 자율 프로토콜입니다. 또한 글로벌 사용을 위한 것이 아닌 VPN, link-state 등의 다양한 서비스를 지원합니다.
기본 EBGP 동작을 포함한 BGP 구현은 RFC4271, BGP-4(Border Gateway Protocol 4)에 의해 안내됩니다. 그러나, 어떤 경로를 분배해야 하는지에 대한 명시적인 지침은 제공하지 않습니다. 이것은 원래의 BGP 구현이 어떠한 필터링 없이 경로를 위한 silent pass-through로 이어지며, 따라서 트래픽의 증가를 초래하여 글로벌 인터넷 정지를 초래합니다.
주니퍼는 Junos OS 릴리스 20.3R1부터 기존 [edit protocols bgp]
계층 수준에서 암묵적 필터 defaults ebgp no-policy
을(를) 도입했습니다. 구성은 수신 및 보급에 대한 기본 정책을 별도의 절(승인, 거부 또는 거부-항상)로 분리하여 동작이 독립적으로 변경될 수 있도록 합니다.
없는 경우 명시적인 정책을 구성되어 있는 경우 암시적 필터 기본 eBGP 다음과 같이 하나의 3개의 주 중에 행동 광고를 받을 수 있도록 허용합니다.
가치 |
기본 정책 |
역할 |
---|---|---|
수락 |
수신 |
모든 경로(기본 동작도 포함)를 수신합니다. |
보급 |
모든 경로(기본 동작도 포함) 보급을 허용합니다. |
|
거부 |
수신 |
인스턴스 유형 primary, vrf, virtual-router 및 non-forwarding에서 inet unicast 및 inet6 unicast 유형의 경로를 수신하는 것을 거부합니다. |
보급 |
인스턴스 유형 primary, vrf, virtual-router 및 non-forwarding에서 inet unicast 및 inet6 unicast 유형의 경로를 보급하는 것을 거부합니다. |
|
항상-거부 |
수신 |
모든 경로 수신을 거부합니다. |
보급 |
모든 경로를 보급하지 않습니다. |