Neighbor Discovery 캐시 보호
요약 NDP 캐시 보호를 사용하면 IPv6 구축 시나리오에서 특정 유형의 서비스 거부(DoS) 공격으로부터 라우팅 엔진을 보호할 수 있습니다.
Neighbor Discovery 캐시 보호 개요
라우팅 엔진은 IPv6 구축 시나리오에서 특정 서비스 거부(DoS) 공격에 취약할 수 있습니다. 일반적으로 IPv6 서브넷은 매우 큰 경향이 있습니다. 예를 들어 서브 /64
넷에는 할당되지 않은 주소가 많을 수 있습니다. 라우팅 엔진 컨트롤 플레인은 알 수 없는 주소에 대한 주소 해결을 수행합니다. 공격자는 할당되지 않은 주소 공간에 대한 확인 요청을 생성하여 라우팅 엔진 컨트롤 플레인을 빠르게 압도하여 캐시 오버플로우를 초래할 수 있습니다. 공격자는 생성된 요청 수와 요청이 대기 중인 속도 모두에 의존합니다. 이러한 시나리오는 라우터 리소스를 연결하고 라우팅 엔진 유효한 neighbor 유도에 응답하고 기존 neighbor 캐시 항목을 유지하는 것을 방지하여 합법적인 사용자에 대한 DoS 공격을 효과적으로 초래할 수 있습니다.
이러한 DoS 공격을 완화하기 위한 전략은 다음과 같습니다.
사용하지 않는 주소 공간을 필터링합니다.
서브넷 크기를 최소화합니다.
서브넷의 폐기 경로를 구성합니다.
neighbor Discovery 캐시의 항목에 대한 해상도의 크기와 속도에 대한 제한을 적용합니다.
인접 탐색 캐시 영향은 IPv6 인접 라우터의 수와 캐시에 추가할 수 있는 새로운 해결되지 않은 다음 홉 주소의 수를 제한하여 최소화할 수 있습니다. 및 nd6-new-hold-limit
구성 문을 사용하거나 구성 문을 사용하여 nd6-max-cache
nd-system-cache-limit
인터페이스당 제한을 설정할 수 있습니다.
ACX, EX22XX, EX3200, EX33XX 및 SRX와 같은 소형 플랫폼의 경우 기본값은 20,000입니다.
EX4200, EX45XX, EX4300, EX62XX, QFX 및 MX와 같은 중형 플랫폼의 경우 기본값은 75,000입니다.
나머지 플랫폼의 경우, 기본값은 100,000입니다.
Neighbor Discovery 캐시 보호 구성
라우팅 엔진은 IPv6 구축 시나리오에서 특정 유형의 서비스 거부(DoS) 공격에 취약할 수 있습니다. IPv6 서브넷은 일반적으로 매우 큰 경향이 있습니다. 예를 들어 서브넷에는 /64
할당되지 않은 주소가 많을 수 있습니다. 라우팅 엔진 컨트롤 플레인은 알 수 없는 주소에 대한 주소 해결을 수행합니다. 공격자는 할당되지 않은 주소 공간에 대한 확인 요청을 생성하여 라우팅 엔진 컨트롤 플레인을 빠르게 압도하여 캐시 오버플로우를 초래할 수 있습니다. 공격자는 생성된 요청 수와 요청이 대기 중인 속도 모두에 의존합니다.
인접 검색 프로세스는 인접 탐색 프로토콜을 구현하는 컨트롤 플레인의 일부입니다. 주소 해결을 수행하고 neighbor 캐시의 항목을 유지할 책임이 있습니다. DoS 공격을 완화하는 한 가지 방법은 neighbor discovery 캐시의 크기 및 새로운 다음 홉 항목의 해결 속도에 제한을 적용하고 특정 범주의 인접 검색 트래픽에 우선 순위를 지정하는 것입니다. 인터페이스 및 시스템 전체당 인접 검색 캐시에 대한 제한을 구성할 수 있습니다.
시작하기 전에 릴리스 15.1 이상에서 Junos OS 실행 중인지 확인합니다.
로컬 제한은 개별 인터페이스에 적용되며 이웃 탐색 대기열의 해결된 항목 및 미해결 항목에 대해 정의되고 전역 제한은 시스템 전체에 적용됩니다.
인터페이스에서 neighbor discovery 캐시 보호를 구성하려면,
구성을 확인하려면 작동 명령을 실행합니다 show interfaces interface-name
.
시스템 전반에 걸쳐 neighbor Discovery 캐시 보호 구성 방법:
neighbor discovery 캐시에 대한 시스템 전체 제한을 구성합니다.
[edit] user@host# set system nd-system-cache-limit limit
구성된 시스템 전체 제한을 확인하려면 운영 명령을 실행 show system statistics icmp6
합니다.
ACX, EX22XX, EX3200, EX33XX 및 SRX와 같은 소형 플랫폼의 경우 기본값은 20,000입니다.
EX4200, EX45XX, EX4300, EX62XX, QFX 및 MX와 같은 중형 플랫폼의 경우 기본값은 75,000입니다.
나머지 플랫폼의 경우, 기본값은 100,000입니다.
예: 서비스 거부 공격을 방지하기 위한 인접 탐색 캐시 보호 구성
이 예는 이웃 검색에 추가할 수 있는 IPv6 이웃 항목 수에 대한 제한을 구성하는 방법을 보여줍니다. 캐시의 항목 수에 제한을 두면 서비스 거부(DoS) 공격을 완화할 수 있습니다. 인접 디스커버리 캐시 기능은 두 가지 유형의 제한을 지원합니다.
Local - 로컬 제한은 인터페이스별로 구성되며 neighbor discovery 캐시의 해결된 항목 및 미해결 항목에 대해 정의됩니다.
전역 - 글로벌 한도가 시스템 전체에 적용됩니다. 전역 제한은 공용 인터페이스 및 관리 인터페이스(예: fxp0)에 대해 별도로 정의됩니다. 관리 인터페이스는 단일 전역 제한을 가지고 있으며 로컬 제한은 없습니다. 전역 제한은 내부 라우팅 인스턴스의 루프백 인터페이스와 관리 인터페이스 및 공용 인터페이스를 포함하여 인접 검색 캐시의 항목에 대한 시스템 전체의 상한선을 적용합니다.
요구 사항
이 예에서는 릴리스 15.1 이상에서 Junos OS MX 시리즈 라우터가 필요합니다.
개요
라우팅 엔진은 IPv6 구축 시나리오에서 특정 유형의 DoS 공격에 취약할 수 있습니다. IPv6 서브넷은 일반적으로 매우 큰 경향이 있습니다. 예를 들어 서브 /64
넷에는 할당되지 않은 주소가 많을 수 있으며 이는 DoS 공격을 수행하는 데 사용할 수 있습니다. 라우팅 엔진 컨트롤 플레인은 알 수 없는 주소에 대한 주소 해결을 수행합니다. 공격자는 할당되지 않은 주소 공간에 대한 확인 요청을 생성하고 대기열을 오버플로우하여 라우팅 엔진 컨트롤 플레인을 빠르게 압도할 수 있습니다. 공격자는 생성된 요청 수와 요청이 대기 중인 속도 모두에 의존합니다.
인접 검색 프로세스는 인접 탐색 프로토콜을 구현하는 컨트롤 플레인의 일부입니다. 주소 해결을 수행하고 neighbor 캐시를 유지할 책임이 있습니다. DoS 공격을 완화하기 위한 한 가지 방법은 대기열 크기와 해결 속도를 제한하고 특정 범주의 neighbor 디스커버리 트래픽에 우선 순위를 지정하여 수행할 수 있는 인접 검색 대기열 제한에 대한 제한을 적용하는 것입니다.
구성
neighbor Discovery 캐시 보호를 구성하려면 다음 작업을 수행하십시오.
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브러브를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 바꾸고 계층 수준에서 명령을 CLI [edit]
로 복사해 붙여 넣은 다음, 구성 모드에서 을(를) 입력합니다 commit
.
set interfaces ge-0/3/0 unit 5 family inet6 nd6-max-cache 100 set interfaces ge-0/3/0 unit 5 family inet6 nd6-new-hold-limit 100
또한 neighbor discovery 캐시의 IPv6 인접 항목 수에 대해 시스템 전체 제한을 구성할 수도 있습니다. 이 제한에는 루프백 인터페이스, 관리 인터페이스 및 공용 인터페이스도 포함됩니다.
set system nd-system-cache-limit 100
서로 다른 인터페이스 유형에 대한 문으로부터의 nd-system-cache-limit
제한 배포는 특정 고정 비율에 따라 수행됩니다. 으로 X 정의되고 내부 라우팅 인터페이스 인접 검색 캐시 제한이 Y (기본값은 200)인 경우nd-system-cache-limit
, 다음을 수행합니다.
공용 최대 캐시 한도, Z = 80%(X- Y)
관리 인터페이스 최대 캐시 제한(예: fxp0), M = 의 20%(X-Y)
Neighbor Discovery 캐시 보호 구성
단계별 절차
다음 예제에서는 구성 계층에서 다양한 수준의 탐색이 필요합니다. CLI 탐색에 대한 정보는 CLI 사용자 가이드의 구성 모드에서 CLI 편집기 사용을 참조하십시오.
인터페이스당 neighbor discovery 캐시 보호를 구성하려면 다음을 수행합니다.
및 을 구성합니다
nd6-max-cache
nd6-new-hold-limit
.[edit] user@host# set interfaces ge-0/3/0 unit 5 family inet6 nd6-max-cache 100 user@host# set interfaces ge-0/3/0 unit 5 family inet6 nd6-new-hold-limit 100
결과
로컬로 neighbor discovery 캐시 보호를 확인하려면 구성 모드에서 을(를) 입력합니다 show interfaces ge-0/3/0
. 출력에 의도한 구성이 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정합니다.
[edit] user@host# show interfaces ge-0/3/0 unit 5{ family inet6 { nd6-max-cache 100; nd6-new-hold-limit 100; } }
확인
구성이 제대로 작동하는지 확인합니다.
전역으로 인접 탐색 캐시 보호 확인
목적
출력이 neighbor discovery 캐시에 대한 시스템 전체 제한을 반영하는지 확인합니다.
작업
운영 모드에서 명령을 실행합니다 show system statistics icmp6
.
user@host> show system statistics icmp6 icmp6: 79 Calls to icmp_error 0 Errors not generated because old message was icmp error 0 Errors not generated because rate limitation Output histogram: 79 unreach 30 echo 163 multicast listener query 6 multicast listener report 940 neighbor solicitation 694184 neighbor advertisement 0 Messages with bad code fields 0 Messages < minimum length 0 Bad checksums 0 Messages with bad length Input histogram: 10 echo reply 6 multicast listener report 693975 neighbor solicitation Histogram of error messages to be generated: 0 No route 0 Administratively prohibited 0 Beyond scope 79 Address unreachable 0 Port unreachable 0 Time exceed transit 0 Time exceed reassembly 0 Erroneous header field 0 Unrecognized next header 0 Unrecognized option 0 Unknown 0 Message responses generated 0 Messages with too many ND options 100000 Max System ND nh cache limit 79840 Max Public ND nh cache limit 200 Max IRI ND nh cache limit 19960 Max Management intf ND nh cache limit 79840 Current Public ND nexthops present 4 Current IRI ND nexthops present 0 Current Management ND nexthops present 909266 Total ND nexthops creation failed as limit reached 909266 Public ND nexthops creation failed as public limit reached 0 IRI ND nexthops creation failed as iri limit reached 0 Management ND nexthops creation failed as mgt limit reached
의미
neighbor Discovery 캐시 항목에 적용되는 시스템 전체 캡은 입니다 100000.
Management ND nexthops creation failed as mgt limit reached 은(는) 시스템 전체 제한에 도달할 때 관리 인터페이스의 드롭 카운트를 나타냅니다. Total ND nexthops creation failed as limit reached 은(는) 관리, 퍼블릭 또는 내부 라우팅 인스턴스 인터페이스에 대한 실패를 나타내며 Public ND nexthops creation failed as public limit reached , 시스템 전반에서 항목 수에 대한 제한에 도달할 때 공용 인터페이스의 드롭 카운트를 나타냅니다.
로컬에서 인접 탐색 캐시 보호 확인
목적
출력이 구성된 인터페이스 제한을 반영하는지 확인합니다.
작업
운영 모드에서 명령을 실행합니다 show interfaces ge-0/3/0
.
user@host> show interfaces ge-0/3/0 Logical interface ge-0/2/0.8 (Index 348) (SNMP ifIndex 690) Flags: Up SNMP-Traps 0x4000 VLAN-Tag [ 0x8100.8 ] Encapsulation: ENET2 Input packets : 181628 Output packets: 79872 Protocol inet6, MTU: 1500 Max nh cache: 100000, New hold nh limit: 100000, Curr nh cnt: 79840, Curr new hold cnt: 0, NH drop cnt: 0 Flags: Is-Primary Addresses, Flags: Is-Preferred Is-Primary Destination: 8001:1::/64, Local: 8001:1::1:1 Addresses, Flags: Is-Preferred Destination: fe80::/64, Local: fe80::56e0:3200:8c6:e0a4 Protocol multiservice, MTU: Unlimited
의미
인터페이스 ge-0/3/0에 연결할 수 있는 새로운 해결되지 않은 다음 홉 주소에 대한 총 항목의 최대 항목 수 및 최대 항목 수는 입니다 100000.
NH drop cnt 은(는) 인터페이스 최대 대기열 크기 제한에 도달했기 때문에 서비스되지 않는 인접 검색 요청의 수를 나타냅니다.