목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

표기 규칙

배경 정보

BGP 라우터가 전체 BGP 라우팅 테이블을 수신함

인바운드 AS_PATH 필터 목록으로 구성된 BGP 라우터

메모리 관련 문제 해결

결론

관련 정보

소개

이 문서에서는 BGP(Border Gateway Protocol) 라우터에 대한 최소 메모리 요구 사항으로 최적의 성능을 달성하는 방법에 대해 설명합니다.

사전 요구 사항

요구 사항

이 문서에 대한 특정 요건이 없습니다.

사용되는 구성 요소

이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

표기 규칙

문서 표기 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참조하십시오.

배경 정보

이 문서에서는 여러 ISP(Internet Service Provider)에 연결된 엔터프라이즈 네트워크에서 최적의 라우팅을 구현하는 방법과 BGP(Border Gateway Protocol) 라우터의 메모리 요구 사항을 줄이는 방법을 설명합니다. ISP 및 직접 연결된 자동 시스템에서 시작된 경로만 허용하고 ISP에서 전체 BGP 라우팅 테이블을 수신하지 않는 AS_PATH 필터를 사용할 수 있습니다.

이 섹션에서는 예를 들어 네트워크 다이어그램을 제공합니다. 이 예에서는 라우터 1 및 라우터 2에서 수신 BGP 업데이트를 필터링하여 ISP의 경로와 직접 연결된 자동 시스템의 경로를 수락합니다. 라우터 1은 ISP-A 및 직접 연결된 자동 시스템 C1에 대한 경로를 수락합니다. 마찬가지로 라우터 2는 ISP-B 및 C2에 대한 경로를 수락합니다. ISP 및 해당 클라이언트 자동 시스템에 속하지 않는 나머지 네트워크는 엔터프라이즈 라우팅 정책에 따라 ISP-A 또는 ISP-B를 가리키는 기본 경로를 따릅니다.

라우터 1이 ISP에서 약 100,000개의 라우트로 구성된 전체 BGP 라우팅 테이블을 수락할 때 메모리 사용률이 어떻게 달라지는지 관찰할 수 있습니다. 이는 라우터 1에서 인바운드 AS_PATH 필터를 적용할 때와 비교됩니다.

참고: 전체 피드를 구성하는 접두사의 실제 수는 다를 수 있습니다. 이 문서의 값은 예시로만 사용됩니다. Route-server는 전체 BGP 테이블을 구성하는 접두사 수를 잘 이해할 수 있습니다.

참고: 모든 툴 및 내부 웹 사이트는 등록된 Cisco 클라이언트에만 적용됩니다.

BGP 라우터가 전체 BGP 라우팅 테이블을 수신함

다음은 라우터 1의 컨피그레이션입니다.

라우터 1

호스트 이름 R1

!

라우터 bgp XX

동기화 없음

인접 디바이스 157.x.x.x remote-as 701

인접 디바이스 157.x.x.x filter-list 80 out

!

ip as-path access-list 80 permit^$

!

끝

show ip bgp summary 명령 출력은 ISP-A(BGP 인접 디바이스 157.x.x.x)에서 98,410개의 접두사를 수신했음을 보여줍니다.

R1#show ip bgp summary

BGP router identifier 65.yy.yy.y, local AS number XX

BGP table version is 611571, main routing table version 611571

98769 network entries and 146299 paths using 14847357 bytes of memory

23658 BGP path attribute entries using 1419480 bytes of memory

20439 BGP AS-PATH entries using 516828 bytes of memory

0 BGP route-map cache entries using 0 bytes of memory

5843 BGP filter-list cache entries using 70116 bytes of memory

BGP activity 534001/1904280 prefixes, 2371419/2225120 paths, scan interval 15 secs

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

165.yy.yy.a     4  6xx9   32962  826287   611571    0    0 01:56:13        1

165.yy.yy.b     4  6xx9   32961  855737   611571    0    0 01:56:12        1

165.yy.yy.c     4  6xx9  569699  865164   611571    1    0 01:55:39    47885

157.x.x.x       4   701 3139774  262532   611571    0    0 00:07:24    98410

show ip route summary 명령 출력에서는 라우팅 테이블에 80,132개의 BGP 경로가 설치되었음을 보여줍니다.

R1#show ip route summary

IP routing table name is Default-IP-Routing-Table(0)

Route Source    Networks    Subnets     Overhead    Memory (bytes)

connected       0           4           256         576

static          0           1           64          144

eigrp 6         0           5           768         720

bgp  XX         80132       18622       6320256     14326656

External: 87616 Internal: 11138 Local: 0

internal        854                                 994056

Total           80986       18632       6321344     15322152

이 명령은 BGP 프로세스가 RAM에서 차지하는 메모리의 양을 표시합니다.

R1#show processes memory | begin BGP

PID TTY  Allocated      Freed    Holding    Getbufs    Retbufs Process

73   0  678981156   89816736   70811036          0          0 BGP Router

74   0    2968320  419750112      61388    1327064        832 BGP I/O

75   0          0    8270540       9824          0          0 BGP Scanner

70882248 Total BGP

77465892 Total all processes

BGP 프로세스는 약 71MB의 메모리를 사용합니다.

인바운드 AS_PATH 필터 목록으로 구성된 BGP 라우터

이 예에서는 인바운드 필터 목록을 적용하여 ISP-A 및 직접 연결된 자동 시스템에서 시작된 경로를 수락합니다. 이 예에서 ISP-A는 eBGP(external BGP)를 통해 기본 경로(0.0.0.0)를 광고하므로 필터 목록을 전달하지 않는 경로는 ISP-A를 향하는 기본 경로를 따릅니다. 필터 목록의 컨피그레이션입니다.

라우터 1

호스트 이름 R1

!

라우터 bgp XX

동기화 없음

.

인접 디바이스 157.x.x.x remote-as 701

인접 디바이스 157.x.x.x filter-list 80 out

인접 디바이스 157.x.x.x filter-list 85인치

!— 이 행은 인바운드 BGP 업데이트를 필터링합니다.

!

ip as-path access-list 80 permit^$

ip as-path access-list 85 permit ^701_[0-9]*$

!— AS_PATH 필터 목록은 ISP 및 !— 직접 연결된 자동 시스템 경로를 필터링합니다.

!

끝

이 show ip bgp summarycommand 출력에서는 ISP-A(neighbor 157.xx.xx.x)에서 수신된 31,667개의 접두사를 보여줍니다.

R1#show ip bgp summary

BGP router identifier 165.yy.yy.y, local AS number XX

BGP table version is 92465, main routing table version 92465

36575 network entries and 49095 paths using 5315195 bytes of memory

4015 BGP path attribute entries using 241860 bytes of memory

3259 BGP AS-PATH entries using 78360 bytes of memory

0 BGP route-map cache entries using 0 bytes of memory

4028 BGP filter-list cache entries using 48336 bytes of memory

BGP activity 1735069/3741144 prefixes, 4596920/4547825 paths, scan interval 15 secs

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

165.yy.yy.a     4  6319  226694 1787061    92465    0    0 17:31:04        1

165.yy.yy.b     4  6319  226814 1806986    92465    0    0 19:51:53        1

165.yy.yy.c     4  6319 1041069 1822703    92465    0    0 19:44:52    17424

157.xx.xx.x     4   701 14452518  456341    92465    0    0 19:51:37    31667

show ip route summary 명령 출력은 라우팅 테이블에 27,129개의 BGP 경로를 표시합니다.

R1#show ip route summary

IP routing table name is Default-IP-Routing-Table(0)

Route Source    Networks    Subnets     Overhead    Memory (bytes)

connected       0           4           256         576

static          0           1           64          144

eigrp 6319      0           6           896         864

bgp 6319        27129       9424        2339392     5299332

External: 19134 Internal: 17419 Local: 0

internal        518                                 602952

Total           27647       9435        2340608     5903868

BGP 프로세스에서 사용하는 메모리는 다음과 같이 약 28MB입니다.

R1#show processes memory | include BGP

PID TTY  Allocated      Freed    Holding    Getbufs    Retbufs Process

73   0  900742224  186644540   28115880          0          0 BGP Router

74   0    5315232  556232160       6824    2478452        832 BGP I/O

75   0          0   39041008       9824          0          0 BGP Scanner

28132528 Total BGP

34665820 Total all memory

메모리 관련 문제 해결

BGP 프로세스에서 사용하는 메모리를 확인하려면 다음 방법으로 메모리를 처리합니다. | bgpcommand 포함 메모리 과다 사용과 관련된 가장 일반적인 문제는 다음과 같습니다.

- 메모리 할당 실패 "%SYS-2-MALLOCFAIL".

- 텔넷 세션을 거부했습니다.

- 일부 show 명령의 출력이 없습니다.

- "메모리 부족" 오류 메시지입니다.

- "EXEC를 만들 수 없습니다. 메모리가 없거나 프로세스가 너무 많습니다." 콘솔 메시지입니다.

- 라우터가 끊어지거나 콘솔 응답이 없습니다.

- BGP 관련 디버그를 실행하면 일반적으로 과도한 메모리 소비가 발생하며, 이로 인해 BGP로 인해 메모리 오류가 발생할 수 있습니다. BGP용 디버그는 신중하게 실행해야 하며 필요하지 않은 경우 피해야 합니다.

하나의 BGP 피어에서 전체 글로벌 BGP 라우팅 테이블을 저장하려면 라우터에 최소 512MB 또는 1GB의 RAM을 저장하는 것이 좋습니다. 256MB의 RAM을 사용하는 경우 더 많은 경로 필터를 사용하는 것이 좋습니다. 512MB의 RAM을 사용하는 경우 더 적은 수의 경로 필터를 사용하여 라우팅 테이블에 더 많은 인터넷 경로를 배치할 수 있습니다. 전체 BGP 테이블을 수신하는 Catalyst 6500/6000에서는 'Cisco 버그 ID CSCdt13244'를 피하려면 256MB의 RAM이 있는 MSFC2(Multilayer Switch Feature Card 2)를 사용하는 것이 좋습니다.

BGP 경로에 의한 메모리 소비는 다중 경로 지원, 소프트 재구성, 피어 수 및 AS_PATH와 같은 특성 수에 따라 달라집니다. BGP 메모리 요구 사항에 대한 자세한 내용은 RFC 1774를 참조하십시오.

Cisco Express Forwarding/CEF(Distributed Cisco Express Forwarding) 스위칭은 라우팅 테이블 크기에 따라 메모리를 사용합니다. CEF의 주요 구성 요소는 두 가지입니다.

- FIB(Forwarding Information Base)

- 인접성 테이블

두 테이블 모두 DRAM 메모리에 저장됩니다. VIP(Versatile Interface Processor) 또는 라인 카드에도 사용 가능한 DRAM이 충분한지 확인합니다. "%FIB-3-FIBDISABLE: 심각한 오류, 슬롯 [#]: 메모리 없음" 및 "%FIB-3-NOMEM" 오류 메시지는 카드에 메모리가 부족함을 나타냅니다.

dCEF를 활성화하기 전에 VIP 또는 라인 카드 메모리를 확인하는 것이 좋습니다. 다음 단계를 완료하여 메모리를 확인합니다.

1. 중앙 CEF를 구성하려면 전역 컨피그레이션 모드에서 ip cef 명령을 실행합니다.

FIB 테이블을 빌드할 시간을 허용합니다.

1. show ip cef summary 명령을 사용하여 중앙 FIB 테이블의 크기를 검토합니다.

2. VIP 또는 라인 카드에 비슷한 크기의 FIB 테이블을 저장할 수 있는 DRAM이 충분한지 확인합니다.

show controller vip [slot#] techcommand를 실행하고 show memory summarycommand의 출력을 확인합니다.

전체 인터넷 BGP 경로를 실행할 때 VIP 또는 라인 카드에 최소 512MB 또는 1GB의 RAM을 사용하는 것이 좋습니다.

결론

이 차트에서는 필터 목록을 구현할 때 발생하는 메모리 절감 효과를 설명합니다.

접두사 수

사용된 메모리

필터링 안 함

98,410

70,882,248

자동 시스템 필터

31,667

28,132,528

BGP 라우터가 인접 디바이스의 전체 BGP 라우팅 테이블(98,410 경로)을 수신하면 라우터는 약 71MB를 소비합니다. AS_PATH 필터가 인바운드 업데이트에 적용되면 BGP 라우팅 테이블의 크기가 31,667 경로로 감소하며 메모리 소비량은 약 28MB입니다. 최적의 라우팅을 통해 메모리 사용률이 60% 이상 감소합니다.

CAIDA(Cooperative Association for Internet Data Analysis)에서 컴파일한 AS 인터넷 그래프를 검토할 경우 어떤 ISP가 가장 높은 수준의 상호 연결을 가지는지(차트의 중심에 가장 가까운 ISP)를 확인할 수 있습니다. 상호 연결이 줄어들어 AS_PATH 필터를 통과하는 경로가 줄어들고 BGP 메모리 소비도 적습니다. 그러나 AS_PATH 필터를 설정할 때마다 기본 경로(0/0)를 구성해야 한다는 점에 유의해야 합니다. AS_PATH 필터 목록을 전달하지 않는 경로는 기본 경로를 따릅니다.

관련 정보

- BGP에서 정규식 사용

- 단일 및 멀티 홈 환경에서 BGP를 사용하여 로드 공유: 샘플 구성

- HSRP를 사용하여 멀티홈 BGP 네트워크에서 이중화를 제공하는 방법

- 두 개의 서로 다른 통신 사업자를 사용하는 BGP 샘플 컨피그레이션(멀티홈)

- BGP 지원 페이지

- Technical Support - Cisco Systems