The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
Cisco는 전 세계 사용자에게 다양한 언어로 지원 콘텐츠를 제공하기 위해 기계 번역 기술과 수작업 번역을 병행하여 이 문서를 번역했습니다. 아무리 품질이 높은 기계 번역이라도 전문 번역가의 번역 결과물만큼 정확하지는 않습니다. Cisco Systems, Inc.는 이 같은 번역에 대해 어떠한 책임도 지지 않으며 항상 원본 영문 문서(링크 제공됨)를 참조할 것을 권장합니다.
BGP는 인터넷 트래픽의 백본 역할을 합니다.인터넷 코어의 가장 중요한 구성 요소임에도 불구하고 인그레스 BGP 알림이 인증된 자동 시스템에서 시작되었는지 여부를 확인할 수 있는 기능이 없습니다.
이러한 BGP 제한 때문에 다양한 유형의 공격을 쉽게 받을 수 있습니다.하나의 일반적인 공격은 '경로 하이잭'입니다.이 공격은 다음 용도로 악용될 수 있습니다.
DoS(Denial of Service) 공격은 라우터, 스위치, 서버 등에 대한 정상적인 트래픽을 중단시키기 위한 악의적인 시도입니다.여기에는 다양한 DoS 공격이 있으며 이에 대해 논의된 내용은 거의 없습니다.
여기에 표시된 시나리오를 고려해 보십시오.AS3(Autonomous System 3)은 접두사 10.0.0.0/24에 대한 법적 BGP 광고를 전송합니다. BGP의 설계로 공격자가 동일한 접두사를 인터넷에 광고하지 못하도록 하는 BGP에는 아무것도 없습니다.
표시된 대로 AS4의 공격자는 동일한 접두사 10.0.0.0/24을 알립니다. BGP 최적 경로 알고리즘은 더 짧은 AS_Path의 경로를 선호합니다.AS_Path 1,5,4는 AS 1,5,2,3을 통해 더 긴 경로를 통해 승리합니다. 따라서 클라이언트의 트래픽은 이제 공격자의 환경으로 리디렉션되고 블랙홀이 되어 최종 클라이언트에 대한 서비스 거부가 될 수 있습니다.
경로 하이잭
이 섹션에서는 서비스를 거부할 수 있는 다른 방법에 대해 설명합니다.Cisco의 BGP 경로 댐프닝(route dampening) 기능이 구성된 경우 공격자가 네트워크에서 빠른 경로 플랩을 도입하여 지속적인 이탈을 일으킬 경우 악용될 수 있습니다.
댐프닝(Dampening) 기능은 합법적인 경로에 대한 페널티를 계속 부과하며 실제 트래픽에서 이를 사용할 수 없게 합니다.또한 이러한 종류의 비윤리적으로 유도된 플랩은 CPU, 메모리 등과 같은 라우터의 리소스에 부담을 줄 수 있습니다.
경로 댐프닝
이전 섹션에서 설명한 대로 공격자가 접두사를 잘못 생성하여 트래픽을 블랙홀링하는 방법을 설명합니다.불행히도, 블랙홀링이 유일한 관심사는 아니다.이러한 공격에서 공격자가 수신한 데이터를 비윤리적인 용도로 스캔할 수 있는 실제 데이터가 손상될 수 있습니다.
마찬가지로, 더 정확한 경로를 불법으로 광고함으로써 경로를 하이킹하는 것이 이루어질 수 있다.BGP는 더 긴 일치 접두사를 선호하며 이미지에 표시된 대로 이 동작을 잘못 악용할 수 있습니다.
하위 접두사 하이잭
이러한 모든 공격은 BGP가 악의적인 광고 접두사의 AS가 유효한지 여부를 식별할 수 없다는 사실에서 비롯됩니다.이 문제를 해결하려면 라우터가 데이터베이스에 보관할 수 있는 'true' 및 'trusted' 데이터 소스가 필요합니다.그런 다음 새 광고를 수신하면 라우터는 이제 BGP 피어에서 수신한 접두사의 AS 출처 정보를 검증기에서 로컬 데이터베이스 정보와 교차 확인할 수 있게 됩니다.
따라서 라우터는 올바른 광고를 불량(불법) 광고와 구별할 수 있으며 위에서 설명한 모든 공격을 방지하는 기능을 라우터에 기본적으로 추가합니다. BGP RPKI는 필요한 신뢰할 수 있는 정보 소스를 제공합니다.
RPKI는 ROA가 포함된 저장소를 사용합니다.ROA에는 접두사 및 관련 BGP AS 번호에 대한 정보가 포함됩니다.경로 원본 권한 부여는 암호화된 서명된 명령문입니다.
5 RIR(Regional Internet Registry)은 RPKI의 신뢰 앵커입니다.IANA(Internet Assigned Numbers Authority)는 IP 접두사를 전달하는 트리의 맨 위에 있습니다.RIR은 계층 구조에서 그 옆에 있습니다.로컬 인터넷 레지스트리(LIR) 및 대규모 인터넷 서비스 공급자(ISP)에 하위 접두사를 할당합니다. 이러한 접두사에 대한 인증서를 서명합니다.다음 레벨은 해당 접두사의 하위 접두사를 할당하고 위의 인증서를 사용하여 자체 인증서에 서명하여 자체 할당을 인증합니다.일반적으로 자체 게시 지점을 사용하여 인증서 및 ROA를 호스팅합니다.각 인증서는 서명하는 자식 인증서의 게시 지점을 나열합니다.따라서 RPKI는 IP 주소 할당 트리를 미러링하는 인증서 트리를 형성합니다.신뢰 당사자가 소유한 RPKI 검사기는 모든 게시 지점을 폴링하여 업데이트된 인증서 및 ROA(및 CRL 및 매니페스트)를 찾습니다. 신뢰 앵커에서 시작하여 자식 인증서의 게시 지점에 대한 링크를 따릅니다.
ROA는 RIR을 통해 저장소에 입력되지만 다른 레지스트리(국가 또는 로컬)를 통해서도 동일한 작업을 수행할 수 있습니다. 또한 RIR을 통해 적절한 감독 및 확인을 통해 ISP에 이러한 책임을 위임할 수 있습니다.
현재 5개의 ROA 저장소가 RIVE NCE, ARIN, APNIC, LACNIC 및 AFRINIC에 의해 유지 관리됩니다.
네트워크에 있는 유효성 검사기는 이러한 리포지토리와 통신하고 신뢰할 수 있는 ROA 데이터베이스를 다운로드하여 캐시를 작성합니다.이것은 RPKI의 병합된 사본이며, 글로벌 RPKI에서 직접 또는 간접적으로 정기적으로 가져오거나 새로 고칩니다.그런 다음 Validator는 이 정보를 라우터에 제공하여 들어오는 BGP 공지를 RPKI 테이블과 비교하여 안전한 결정을 내릴 수 있도록 합니다.
RPKI 인프라 연결
이 데모에서는 RIED 유효성 검사기를 사용합니다.유효성 검사기는 TCP 세션을 설정하여 라우터와 통신합니다.이 데모에서는 유효성 검사기가 IP 192.168.122.120 및 포트 3323을 수신 대기합니다.
routinator server --rtr 192.168.122.120:3323 --refresh=900
IANA에서 이 통신에 대해 포트 3323을 지정했습니다.새로 고침 타이머는 로컬 저장소를 동기화하고 업데이트하여 업데이트를 유지할 시간 간격을 정의합니다.
참고:이 데모에서는 BGP RPKI 메커니즘을 설명하기 위해 임의의 Public AS 번호와 접두사를 사용합니다.RPKI로 인해 공용 IP가 주로 공용 접두사 보호를 위해 사용되며 RIR에 생성된 모든 ROA는 공용 접두사입니다.마지막으로, 이 문서에 설명된 작업, 컨피그레이션 등은 어떤 식으로든 이러한 공용 IP 및 AS에 영향을 미치지 않습니다.
router bgp 100
bgp router-id 10.1.1.1
rpki server 192.168.122.120
transport tcp port 3323
refresh-time 900
address-family ipv4 unicast
!
neighbor 10.0.12.2
remote-as 8100
address-family ipv4 unicast
route-policy Pass in
route-policy Pass out
!
!
neighbor 10.0.13.3
remote-as 100
address-family ipv4 unicast
!
!
// ‘Pass’ is a permit all route-policy.
라우터는 유효성 검사기(IP:192.168.122.120, port 3323) - ROA 캐시를 라우터의 메모리에 다운로드합니다.
RP/0/RP0/CPU0:Cisco8000#show bgp rpki server 192.168.122.120
Wed Jan 20 22:54:15.763 UTC
RPKI Cache-Server 192.168.122.120
Transport: TCP port 3323
Bind source: (not configured)
Connect state: ESTAB
Conn attempts: 1
Total byte RX: 4428792
Total byte TX: 1400
Last reset
Timest: Jan 20 05:59:58 (16:54:17 ago)
Reason: protocol error
유효성 검사기는 ROA 정보를 라우터에 제공합니다.이 캐시는 라우터가 부실 정보를 보유할 가능성을 최소화하기 위해 정기적으로 업데이트됩니다.이 데모에서는 900초의 새로 고침 시간이 구성되었습니다. 여기에 표시된 것처럼 Cisco 8000 라우터는 검증기에서 172632 IPv4 및 28350 IPv6 ROA를 다운로드했습니다.
RP/0/RP0/CPU0:Cisco8000#show bgp rpki server summary
Wed Jan 20 23:01:59.432 UTC
Hostname/Address Transport State Time ROAs (IPv4/IPv6)
192.168.122.120 TCP:3323 ESTAB 17:00:21 172632/28350
RP/0/RP0/CPU0:Cisco8000#show bgp rpki table ipv4
Wed Jan 20 23:09:26.899 UTC
>>>Snipped output<<<
Network Maxlen Origin-AS Server
1.0.0.0/24 24 13335 192.168.122.120
1.0.4.0/22 22 38803 192.168.122.120
1.0.4.0/24 24 38803 192.168.122.120
1.0.5.0/24 24 38803 192.168.122.120
1.0.6.0/24 24 38803 192.168.122.120
1.0.7.0/24 24 38803 192.168.122.120
1.1.1.0/24 24 13335 192.168.122.120
1.1.4.0/22 22 4134 192.168.122.120
1.1.16.0/20 20 4134 192.168.122.120
1.2.9.0/24 24 4134 192.168.122.120
1.2.10.0/24 24 4134 192.168.122.120
1.2.11.0/24 24 4134 192.168.122.120
1.2.12.0/22 22 4134 192.168.122.120
1.3.0.0/16 16 4134 192.168.122.120
1.6.0.0/22 24 9583 192.168.122.120
이 섹션에서는 BGP RPKI의 작동 방식 및 라우터가 잘못된/불법 광고를 방지하는 방법을 설명합니다.
기본적으로 라우터는 유효성 검사기에서 ROA를 가져오지만 사용하도록 구성할 때까지 ROA를 사용하지 않습니다.따라서 이러한 접두사는 'D' 또는 비활성화로 표시됩니다.
RP/0/RP0/CPU0:Cisco8000#show bgp origin-as validity
Wed Jan 20 23:27:37.268 UTC
BGP router identifier 10.1.1.1, local AS number 100
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 30
BGP main routing table version 30
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Origin-AS validation codes: V valid, I invalid, N not-found, D disabled
Network Next Hop Metric LocPrf Weight Path
D*> 43.230.26.0/24 10.0.12.2 0 0 8100 ?
D*> 103.10.39.0/24 10.0.12.2 0 0 8100 ?
D*> 192.168.122.1/32 10.0.12.2 0 0 8100 ?
라우터를 오리진 유효성 검사에 사용하려면 해당 주소군에 대해 이 명령을 활성화합니다.
router bgp 100
address-family ipv4 unicast
bgp origin-as validation enable
!
이 명령을 활성화하면 라우터가 BGP 테이블에 있는 접두사를 검사하여 검증기에서 받은 ROA 정보와 비교하여 스캔하고 세 가지 상태 중 하나가 접두사에 할당됩니다.
RP/0/RP0/CPU0:Cisco8000#show bgp origin-as validity
Thu Jan 21 00:04:58.136 UTC
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Origin-AS validation codes: V valid, I invalid, N not-found, D disabled
Network Next Hop Metric LocPrf Weight Path
V*> 43.230.26.0/24 10.0.12.2 0 0 8100 ?
I* 103.10.39.0/24 10.0.12.2 0 0 8100 ?
N*> 192.168.122.1/32 10.0.12.2 0 0 8100 ?
라우터가 접두사 검증 상태 정보를 사용하면서 최상의 경로를 계산하도록 하려면 이 명령이 필요합니다.이 옵션은 최적 경로 계산을 위해 유효성 정보를 사용하지 않을 수 있지만 이 문서의 뒷부분에서 설명한 경로 정책에서 사용할 수 있도록 하기 때문에 기본적으로 활성화되지 않습니다.
router bgp 100
address-family ipv4 unicast
bgp bestpath origin-as use validity
!
에 접두사가 있을 수 있는 세 가지 상태가 있습니다.
RP/0/RP0/CPU0:Cisco8000#show bgp origin-as validity
Thu Jan 21 00:04:58.136 UTC
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Origin-AS validation codes: V valid, I invalid, N not-found, D disabled
Network Next Hop Metric LocPrf Weight Path
V*> 43.230.26.0/24 10.0.12.2 0 0 8100 ?
I* 103.10.39.0/24 10.0.12.2 0 0 8100 ?
N*> 192.168.122.1/32 10.0.12.2 0 0 8100 ?
Valid(유효) - RPKI 캐시 테이블에서 접두사 및 AS 쌍을 찾음을 나타냅니다.
Not Found(찾을 수 없음) - 접두사가 유효하거나 잘못된 접두사에 속하지 않음을 나타냅니다.
이 섹션에서는 각 접두사 및 해당 상태에 대해 자세히 설명합니다.
AS 8100의 eBGP 피어는 이 경로를 시작하였고 Cisco8000 노드에 광고되었습니다.원본 AS(8100)는 ROA의 원본 AS(유효성 검사기에서 수신됨)와 일치하므로 이 접두사는 유효한 것으로 표시되고 라우터의 라우팅 테이블에 설치됩니다.
RP/0/RP0/CPU0:Cisco8000#show bgp rpki table | in "43.230.26.0|Max"
Thu Jan 21 00:21:26.026 UTC
Network Maxlen Origin-AS Server
43.230.26.0/24 24 8100 192.168.122.120
경로가 BGP 테이블에 설치됩니다.
RP/0/RP0/CPU0:Cisco8000#show bgp 43.230.26.0/24
Thu Jan 21 05:30:13.858 UTC
BGP routing table entry for 43.230.26.0/24
Versions:
Process bRIB/RIB SendTblVer
Speaker 31 31
Last Modified: Jan 21 00:03:33.344 for 05:26:40
Paths: (1 available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
8100
10.0.12.2 from 10.0.12.2 (192.168.122.105)
Origin incomplete, metric 0, localpref 100, valid, external, best, group-best
Received Path ID 0, Local Path ID 1, version 31
Origin-AS validity: valid
이는 최상의 BGP 접두사이며 RPKI당 유효하기 때문에 라우팅 테이블에 성공적으로 설치됩니다.
RP/0/RP0/CPU0:Cisco8000#show route 43.230.26.0/24
Thu Jan 21 00:29:43.667 UTC
Routing entry for 43.230.26.0/24
Known via "bgp 100", distance 20, metric 0
Tag 8100, type external
Installed Jan 21 00:03:33.731 for 00:26:10
Routing Descriptor Blocks
10.0.12.2, from 10.0.12.2, BGP external
Route metric is 0
No advertising protos.
RP/0/RP0/CPU0:Cisco8000#show bgp origin-as validity invalid
Thu Jan 21 00:34:38.171 UTC
BGP router identifier 10.1.1.1, local AS number 100
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 33
BGP main routing table version 33
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* 103.10.39.0/24 10.0.12.2 0 0 8100 ?
그러나 유효성 검사기에서 받은 ROA는 이 접두사가 AS 10021에 속함을 나타냅니다.
RP/0/RP0/CPU0:Cisco8000#show bgp rpki table 103.10.39.0/24 max 24
Thu Jan 21 00:37:05.615 UTC
RPKI ROA entry for 103.10.39.0/24-24
Origin-AS: 10021 from 192.168.122.120
Version: 124211
수신된 BGP 알림의 AS 오리진 정보(AS 8100)가 ROA(AS 10021)에서 수신한 실제 AS 오리진과 일치하지 않으므로 접두어는 Invalid로 표시되고 라우팅 테이블에 설치되지 않습니다.
RP/0/RP0/CPU0:Cisco8000#show bgp 103.10.39.0/24
Thu Jan 21 05:37:26.714 UTC
BGP routing table entry for 103.10.39.0/24
Versions:
Process bRIB/RIB SendTblVer
Speaker 32 32
Last Modified: Jan 21 00:03:33.344 for 05:33:53
Paths: (1 available, no best path)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
8100
10.0.12.2 from 10.0.12.2 (192.168.122.105)
Origin incomplete, metric 0, localpref 100, valid, external
Received Path ID 0, Local Path ID 0, version 0
Origin-AS validity: invalid
전용 접두사이며 ROA 캐시에 없습니다.BGP에서 이 접두사를 'Not found'로 선언했습니다.
RP/0/RP0/CPU0:Cisco8000#show bgp 192.168.122.1/32
Thu Jan 21 05:44:39.861 UTC
BGP routing table entry for 192.168.122.1/32
Versions:
Process bRIB/RIB SendTblVer
Speaker 33 33
Last Modified: Jan 21 00:03:33.344 for 05:41:06
Paths: (1 available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
8100
10.0.12.2 from 10.0.12.2 (192.168.122.105)
Origin incomplete, metric 0, localpref 100, valid, external, best, group-best
Received Path ID 0, Local Path ID 1, version 33
Origin-AS validity: not-found
RPKI가 계속 채택되고 있으므로 'not-found' 접두사가 라우팅 테이블에 설치됩니다.그렇지 않으면 BGP가 RPKI 데이터베이스에 등록되지 않은 합법적인 접두사를 무시합니다.
권장되지는 않지만, 소프트웨어는 잘못된 접두사가 최상의 경로 계산 알고리즘에 참여할 수 있도록 노브를 제공합니다.
router bgp 100
address-family ipv4 unicast
bgp bestpath origin-as allow invalid
!
이 컨피그레이션에서는 라우터가 최적 경로 계산을 위해 잘못된 접두사를 고려하지만 여전히 '유효하지 않음'으로 표시합니다.이 출력은 '103.10.39.0/24'이 최상의 경로로 표시되어 있음을 보여줍니다.
RP/0/RP0/CPU0:Cisco8000#show bgp
Thu Jan 21 06:21:34.294 UTC
BGP router identifier 10.1.1.1, local AS number 100
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 34
BGP main routing table version 34
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 43.230.26.0/24 10.0.12.2 0 0 8100 ?
*> 103.10.39.0/24 10.0.12.2 0 0 8100 ?
*> 192.168.122.1/32 10.0.12.2 0 0 8100 ?
이 출력에 표시된 대로 접두사는 유효하지 않음에도 불구하고 최상으로 표시됩니다.
RP/0/RP0/CPU0:Cisco8000#show bgp 103.10.39.0/24
Thu Jan 21 06:23:26.994 UTC
BGP routing table entry for 103.10.39.0/24
Versions:
Process bRIB/RIB SendTblVer
Speaker 34 34
Last Modified: Jan 21 06:05:31.344 for 00:17:55
Paths: (1 available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
8100
10.0.12.2 from 10.0.12.2 (192.168.122.105)
Origin incomplete, metric 0, localpref 100, valid, external, best, group-best
Received Path ID 0, Local Path ID 1, version 34
Origin-AS validity: invalid
라우터는 여전히 유효하지 않은 접두사를 마지막 옵션으로 취급하며, 사용 가능한 경우 항상 유효하지 않은 접두사보다 유효한 접두사를 선호한다는 점에 유의해야 합니다.
어떤 이유로 특정 접두사에 대한 ROA가 아직 생성, 수신 또는 지연되지 않은 경우 라우터에 수동 ROA를 구성할 수 있습니다.예를 들어 접두사 '192.168.122.1/32''은 여기에 표시된 대로 'Not Found'로 표시됩니다.
RP/0/RP0/CPU0:Cisco8000#show bgp origin-as validity
Thu Jan 21 06:36:31.041 UTC
BGP router identifier 10.1.1.1, local AS number 100
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 34
BGP main routing table version 34
BGP NSR Initial initsync version 2 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Origin-AS validation codes: V valid, I invalid, N not-found, D disabled
Network Next Hop Metric LocPrf Weight Path
V*> 43.230.26.0/24 10.0.12.2 0 0 8100 ?
I*> 103.10.39.0/24 10.0.12.2 0 0 8100 ?
N*> 192.168.122.1/32 10.0.12.2 0 0 8100 ?
여기에 표시된 대로 수동 ROA를 구성할 수 있습니다.이 명령은 접두사 '192.168.122.1/32'을 AS 8100과 연결합니다.
router bgp 100
rpki route 192.168.122.1/32 max 32 origin 8100
이 컨피그레이션에서는 접두사 상태가 'N'에서 'V'로 변경됩니다.
RP/0/RP0/CPU0:Cisco8000#show bgp origin-as validity
Thu Jan 21 06:36:34.151 UTC
BGP router identifier 10.1.1.1, local AS number 100
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 35
BGP main routing table version 35
BGP NSR Initial initsync version 2 (Reached)
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Origin-AS validation codes: V valid, I invalid, N not-found, D disabled
Network Next Hop Metric LocPrf Weight Path
V*> 43.230.26.0/24 10.0.12.2 0 0 8100 ?
I*> 103.10.39.0/24 10.0.12.2 0 0 8100 ?
V*> 192.168.122.1/32 10.0.12.2 0 0 8100 ?
접두사 상태 결과를 사용하여 경로 정책을 생성할 수 있습니다.이러한 상태는 match 문에서 사용할 수 있으며 관리자가 원하는 작업을 수행할 수 있습니다. 다음 예에서는 잘못된 상태의 모든 접두사와 일치하고 가중치 값 12345를 설정합니다.
route-policy Invalid
if validation-state is invalid then
set weight 12345
endif
end-policy
!
router bgp 100
remote-as 8100
address-family ipv4 unicast
route-policy Invalid in
!
!
!
이 출력은 잘못된 접두사 적용 가중치 12345를 표시합니다.
RP/0/RP0/CPU0:Cisco8000#show bgp 103.10.39.0/24
Thu Jan 21 06:57:33.816 UTC
BGP routing table entry for 103.10.39.0/24
Versions:
Process bRIB/RIB SendTblVer
Speaker 38 38
Last Modified: Jan 21 06:54:04.344 for 00:03:29
Paths: (1 available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
8100
10.0.12.2 from 10.0.12.2 (192.168.122.105)
Origin incomplete, metric 0, localpref 100, weight 12345, valid, external, best, group-best
Received Path ID 0, Local Path ID 1, version 38
Origin-AS validity: invalid
또한 BGP 라우터는 BGP 확장 커뮤니티를 통해 접두사 검증 상태를 다른 라우터(검증기의 로컬 캐시 없음)와 공유할 수 있습니다.이렇게 하면 네트워크에 있는 각 라우터의 오버헤드가 절약되어 검증기와 세션을 설정하고 모든 ROA를 다운로드합니다.
이는 BGP 확장 커뮤니티를 사용하여 가능합니다.
이 명령을 사용하면 라우터가 iBGP 피어와 'prefix-validation' 정보를 공유할 수 있습니다.
router bgp 100
address-family ipv4 unicast
bgp origin-as validation signal ibgp
Cisco 8000 라우터가 표시된 대로 구성되면 피어에 대한 BGP 업데이트는 접두사 검증 정보를 포함합니다.이 경우 네이버 iBGP 라우터는 IOS-XE 라우터입니다.
csr2#show ip bgp 103.10.39.0/24
BGP routing table entry for 103.10.39.0/24, version 14
Paths: (1 available, best #1, table default)
Not advertised to any peer
Refresh Epoch 1
8100
10.0.12.2 from 10.0.13.1 (10.1.1.1)
Origin IGP, metric 0, localpref 100, valid, internal, best
Extended Community: 0x4300:0:2
rx pathid: 0, tx pathid: 0x0
Updated on Jan 21 2021 18:16:56 UTC
이 확장 커뮤니티 매핑은 0x4300 0x0000(상태를 나타내는 4바이트)을 사용하여 이해할 수 있습니다.
상태를 나타내는 4바이트는 다음 값 중 하나를 갖는 32비트 부호 없는 정수로 처리됩니다.
접두사 103.10.39.0/24's 커뮤니티는 'Invalid' 접두사에 매핑되는 0x4300:0:2입니다.이렇게 하면 자체 로컬 캐시가 없더라도 csr2 라우터는 여전히 접두사 검증 상태를 기반으로 결정을 내릴 수 있습니다.
이제 접두사 검증 상태를 사용하여 경로 맵 또는 BGP 최적 경로 알고리즘에서 일치시킬 수 있습니다.
다음은 RPKI 전망대에서 관찰된 연결할 수 없는 네트워크를 기반으로 한 몇 가지 권장 사항입니다.RPKI Observatory는 구축된 RPKI 환경의 여러 측면을 분석합니다.
접두사에 대해 ROA가 생성된 경우 BGP에서 해당 접두사를 알리는 것이 좋습니다.이러한 기능이 없을 경우, 다른 누군가가 ROA에 포함된 ASN으로 위장하여 접두사를 사용하여 이를 발표할 수 있습니다.
ROA가 접두사 길이보다 큰 maxlen으로 생성된 경우 원래 접두사부터 maxlen까지 가능한 모든 접두사에 대해 ROA를 생성하는 것과 같습니다.BGP에서 모든 접두사를 알리는 것이 좋습니다.
접두사에 대해 ROA가 생성되고 접두사 소유자가 원래 접두사의 하위 접두사를 발표하면 ROA는 해당 하위 접두사를 무효화합니다.하위 접두사와 원래 ROA의 ROA는 하위 접두사를 포함하도록 확장되어야 합니다.
조직이 접두사를 소유하지만 BGP에서 이를 알리지 않을 경우 AS0의 접두사에 대한 ROA를 생성해야 합니다.AS0은 AS 경로에 표시할 수 없으므로 접두사 공지가 무효화됩니다.
동일한 접두사를 생성하는 여러 ASN이 있는 경우 각 ASN에 대해 해당 접두사에 대한 ROA를 생성해야 합니다.따라서 라우터에 동일한 접두사에 대해 여러 ROA가 있는 경우, 그 중 하나와 일치하는 BGP 광고가 유효합니다.동일한 접두사에 대한 여러 ROA가 서로 충돌하지 않습니다.
'A'가 고객 'B'에 대한 접두사를 생성하고 'B'를 대신하여 해당 접두사에 대한 ROA를 생성하는 경우 'A'는 'B's' ASN을 공지에 추가하거나 'B'가 접두사 자체를 시작하도록 해야 합니다.
ROA가 업데이트되고 라우터에 "validation-state is"가 포함된 인접 디바이스에 대한 로컬 인그레스 경로 정책이 있는 경우, 새로운 업데이트된 ROA를 기반으로 접두사의 상태를 재검증하는 것이 중요합니다.이는 라우터가 BGP REFRESH 요청을 피어로 전송함으로써 달성할 수 있습니다.
BGP 인접 디바이스가 표시된 대로 이 메시지를 수신하면 인접 디바이스가 접두사를 다시 전송하고 인바운드 route-policy는 수신 접두사를 다시 검증할 수 있습니다.
Jan 22 18:28:41.360: BGP: 10.0.12.1 rcv message type 5, length (excl. header) 4
Jan 22 18:28:41.360: BGP: 10.0.12.1 rcvd REFRESH_REQ for afi/safi: 1/1, refresh code is 0
ROA가 업데이트될 때마다 많은 인접 디바이스가 동시에 새로 고쳐질 때 문제가 증폭됩니다.인접 디바이스 인바운드 경로 정책이 복잡하며 많은 처리가 필요한 경우 ROA 업데이트 후 몇 분 동안 CPU 결과가 높습니다.이러한 REFRESH 메시지는 네이버 인바운드 경로 정책에 "validation-state is" 명령이 포함되어 있지 않은 경우 발생하지 않습니다.
네이버에 대해 "soft-reconfiguration inbound always"가 구성된 경우 BGP REFRESH 메시지가 전송되지 않지만 동일한 경로 정책이 동일한 속도로 실행되며 동일한 CPU 사용량이 예상될 수 있습니다.
아래6.2.2에서 설명한 이유로 경로 정책을 구성하는 대신 'bgp bestpath origin-as use validity' 방식을 사용하는 것이 좋습니다.
여기서 설명하는 문제를 방지하는 가장 좋은 방법은 검증 상태가 없는 사용 유효성으로 최상의 경로 원본을 사용하는 것입니다.
router bgp 100
address-family ipv4 unicast
bgp bestpath origin-as use validity
!
이 명령은 수신된 잘못된 경로를 라우터에 보관하지만 최적 경로가 되는 것을 방지합니다.설치되거나 더 이상 광고되지 않습니다.떨어뜨리는게 좋을 거야다음 ROA 업데이트가 유효하면 REFRESH가 필요하지 않으며 정책 실행이 필요하지 않은 최적의 경로를 자동으로 사용할 수 있게 됩니다.
사용자가 '유효하지 않은' 접두사를 허용하여 사용하지 않으려는 경우, 최상의 경로 원본 사용 유효성에 추가하여 컨피그레이션 최적 경로 오리진-as 허용을 사용합니다.
이 경우 ROA가 변경되면 REFRESH 메시지 없이 최적의 경로가 자동으로 업데이트됩니다.기본 설정을 해제하기 위해 경로는 BGP 경로를 선택하는 동안 RPKI 잘못된 경로가 동일한 대상에 대한 다른 경로보다 더 선호되지 않는 것으로 간주된다는 것을 의미합니다.가중치 또는 0보다 작은 로컬 기본 설정을 지정하는 것과 비슷합니다.
RPKI 무효화 수는 상대적으로 적으며, 이를 테이블에 보관한다고 리소스에 큰 영향을 미치지는 않습니다.
참고:"bestpath origin-as use validity"를 사용하려면 IBGP 경로를 포함한 경로의 모든 경로에 올바른 RPKI 유효성이 있어야 합니다.그렇지 않은 경우에도 route-policy에서 validation-state 테스트를 계속 사용할 수 있습니다.
IBGP 경로는 라우터에서 ROA 데이터베이스에 대해 검증되지 않습니다.IBGP 경로는 RPKI 확장 커뮤니티에서 RPKI 유효성을 얻습니다.이 확장 커뮤니티 없이 IBGP 경로를 수신하면 해당 validation-state가 not-found로 설정됩니다.
각 ROA는 인덱스 및 데이터에 대해 메모리를 사용합니다.두 ROA가 동일한 IP 접두사를 사용하지만 max_len이 다르거나 다른 RPKI 서버에서 수신되는 경우 동일한 인덱스를 공유하지만 별도의 데이터가 있습니다.메모리 오버헤드가 일정하지 않으므로 메모리 요구 사항이 달라질 수 있습니다.10%의 초과 예산을 사용하는 것이 좋습니다.64비트 플랫폼에는 32비트 플랫폼보다 각 메모리 개체에 더 많은 메모리가 필요합니다.인덱스 객체 및 데이터 객체에 대한 IOS-XR 메모리 사용량(바이트)은 다음 표에 나와 있습니다.대부분 일정한 오버헤드가 수치에 포함되어 있습니다.
32비트 플랫폼(바이트) |
64비트 플랫폼(바이트) |
|
IPv4 인덱스 |
74 |
111 |
IPv6 인덱스 |
86 | 125 |
데이터 |
34 | 53 |
이 섹션에서는 ROA가 메모리를 소비하는 방법을 설명하는 두 가지 시나리오를 제공합니다.
각각 200,000개의 IPv4 ROA를 제공하고 64비트 라우트 프로세서에서 20,000개의 IPv6 ROA를 제공하는 3개의 RPKI 서버를 사용하는 라우터에는 다음 메모리가 필요합니다.
20000 * (125 + 3*53) + 20000 * (11 + 3*53) 바이트 = 5,968만 바이트
메모리를 계산하는 동안 세 개의 서로 다른 유효성 검사기에서 동일한 접두사에 대한 ROA가 동일한 인덱스 값을 공유했습니다.
ROA가 없는 BGP 프로세스 메모리:
RP/0/RP0/CPU0:Cisco8000#show processes memory detail location 0/RP0/CPU0 | in $
Fri Jan 22 17:19:57.945 UTC
JID Text Data Stack Dynamic Dyn-Limit Shm-Tot Phy-Tot Process
1069 2M 71M 132K 25M 7447M 50M 74M bgp
RP/0/RP0/CPU0:Cisco8000#show bgp rpki server summary
Fri Jan 22 17:12:09.073 UTC
Hostname/Address Transport State Time ROAs (IPv4/IPv6)
192.168.122.120 TCP:3323 NONE 00:00:25 N/A
BGP 프로세스는 ROA 없이 25MB 메모리를 사용합니다.
ROA를 사용하는 BGP 프로세스 메모리:
RP/0/RP0/CPU0:Cisco8000#show bgp rpki server summary
Fri Jan 22 17:23:46.769 UTC
Hostname/Address Transport State Time ROAs (IPv4/IPv6)
192.168.122.120 TCP:3323 ESTAB 00:02:42 172796/28411
RP/0/RP0/CPU0:Cisco8000#show processes memory detail location 0/RP0/CPU0 | in $
Fri Jan 22 17:24:14.659 UTC
JID Text Data Stack Dynamic Dyn-Limit Shm-Tot Phy-Tot Process
1069 2M 99M 132K 53M 7447M 50M 102M bgp
BGP 프로세스는 ROA 없이 25MB 메모리를 사용합니다.
ROA를 사용하는 BGP 프로세스 메모리:
RP/0/RP0/CPU0:Cisco8000#show bgp rpki server summary
Fri Jan 22 17:23:46.769 UTC
Hostname/Address Transport State Time ROAs (IPv4/IPv6)
192.168.122.120 TCP:3323 ESTAB 00:02:42 172796/28411
RP/0/RP0/CPU0:Cisco8000#show processes memory detail location 0/RP0/CPU0 | in $
Fri Jan 22 17:24:14.659 UTC
JID Text Data Stack Dynamic Dyn-Limit Shm-Tot Phy-Tot Process
1069 2M 99M 132K 53M 7447M 50M 102M bgp
Cisco 8000 라우터는 64비트 OS를 실행합니다.172796 IPv4 ROA 및 28411 ROA를 받았습니다.
메모리(바이트) = 172,796 x [111(인덱스) + 53(데이터)] + 28411 x [125(인덱스) + 53(데이터)].
이러한 계산을 통해 약 27MB가 생성되며, 이는 위의 라우터의 메모리에서 발견된 증가 정도에 해당합니다.