라우터(Unicast RPF) 이해
IPv4 또는 IPv6 트래픽을 전송하는 인터페이스의 경우, 유니캐스트 RPF(Reverse Path Forwarding)를 구성하여 DoS(Denial of Service) 공격의 영향을 줄일 수 있습니다. 유니캐스트 RPF는 공격의 근원을 파악하고 유니캐스트 RPF가 활성화된 인터페이스의 예기치 않은 소스 주소에서 패킷을 거부합니다.
네트워크의 에지(고객 대면 인터페이스)에 유니캐스트 RPF 검사 기능을 적용하여 네트워크를 보호할 수 있습니다. ISP 환경에서는 확장된 설정에 부과할 수 있는 네트워크에 영향을 미칠 수 있습니다. 이미 네트워크 에지를 보호한 경우 스푸핑된 IP 소스 주소가 있는 패킷이 코어 대면 인터페이스에도 나타나지 않습니다. 이 경우 유니캐스트 RPF 검사가 필요하지 않습니다. 유니캐스트 RPF 기능을 활성화하면 컨트롤 플레인 성능에 영향을 미칠 수 있으므로 필요한 곳에 사용하십시오. 따라서 네트워크 코어(내부) 인터페이스에서 이 기능을 활성화하지 않는 것이 좋습니다.
유니캐스트 RPF 및 기본 경로
라우팅 테이블의 경로에서 활성 경로를 선택할 수 없는 경우 라우터는 기본 경로를 선택합니다. 기본 경로는 0.0.0.0/0의 IP 주소와 동일합니다. 기본 경로를 구성하고 기본 경로가 사용하는 인터페이스에서 유니캐스트 RPF를 구성하면 유니캐스트 RPF는 그렇지 않은 경우와 다르게 동작합니다.
기본 경로가 인터페이스를 사용하는지 여부를 확인하려면 다음 명령을 입력합니다 show route
.
user@host> show route address
address
는 구성된 기본 경로의 넥트 홉 주소입니다. 기본 경로는 명령의 출력에 표시된 인터페이스를 show route
사용합니다.
다음 섹션에서는 기본 경로가 인터페이스를 사용하고 기본 경로가 인터페이스를 사용하지 않을 때 유니캐스트 RPF가 어떻게 작동하는지 설명합니다.
기본 경로가 있는 유니캐스트 RPF 동작
MPC 및 MX80 라우터를 사용하는 라우터를 제외한 모든 라우터에서 유니캐스트 RPF는 유니캐스트 RPF로 구성된 인터페이스를 사용하는 기본 경로를 구성하는 경우 다음과 같이 동작합니다.
Loose 모드—모든 패킷이 자동으로 허용됩니다. 이러한 이유로 기본 경로가 사용하는 인터페이스에서 유니캐스트 RPF Loose 모드를 구성하지 않는 것이 좋습니다.
Strict 모드—패킷의 소스 주소가 인터페이스를 통해 연결할 수 있는 경로(기본값 또는 학습된 경로)와 일치할 때 패킷이 허용됩니다. 경로에 연결된 여러 목적지가 있을 수 있다는 점을 유의하십시오. 따라서 대상 중 하나가 패킷의 수신 인터페이스와 일치하면 패킷이 수락됩니다.
MPC와 MX80 라우터를 사용하는 모든 라우터에서 유니캐스트 RPF는 유니캐스트 RPF로 구성된 인터페이스를 사용하는 기본 경로를 구성하는 경우 다음과 같이 동작합니다.
Loose 모드—소스가 기본 경로에서 학습되는 패킷을 제외한 모든 패킷이 허용됩니다. 기본 경로에서 소스가 학습되는 모든 패킷은 패킷 전달 엔진에 드롭됩니다. 기본 경로는 루트가 없는 것처럼 취급됩니다.
Strict 모드—패킷의 소스 주소가 인터페이스를 통해 연결할 수 있는 경로(기본값 또는 학습된 경로)와 일치할 때 패킷이 허용됩니다. 경로에 연결된 여러 목적지가 있을 수 있다는 점을 유의하십시오. 따라서 대상 중 하나가 패킷의 수신 인터페이스와 일치하면 패킷이 수락됩니다.
모든 라우터에서 패킷은 다음 중 하나가 사실이면 허용되지 않습니다.
패킷의 소스 주소는 라우팅 테이블의 접두사에 일치하지 않습니다.
인터페이스는 이 소스 주소 접두사로 패킷을 수신할 것으로 기대하지 않습니다.
기본 경로가 없는 유니캐스트 RPF 동작
기본 경로를 구성하지 않거나 기본 경로가 유니캐스트 RPF로 구성된 인터페이스를 사용하지 않는 경우 유니캐스트 RPF는 유니캐스트 RPF Strict 모드 구성 및 유니캐스트 RPF Loose 모드 구성에 설명된 대로 동작합니다. 요약하면 기본 경로가 없는 유니캐스트 RPF는 다음과 같이 동작합니다.
Strict 모드—다음 중 하나가 true인 경우 패킷이 허용되지 않습니다.
패킷에는 라우팅 테이블의 접두사에 일치하지 않는 소스 주소가 있습니다.
인터페이스는 이 소스 주소 접두사로 패킷을 수신할 것으로 기대하지 않습니다.
Loose 모드—패킷에 라우팅 테이블의 prefix와 일치하지 않는 소스 주소가 있는 경우 패킷이 허용되지 않습니다.
라우팅 비대칭이 포함된 유니캐스트 RPF
일반적으로, 내부 인터페이스가 라우팅 비대칭을 가질 가능성이 높기 때문에 네트워크 내부 인터페이스에서 유니캐스트 RPF를 활성화하지 않는 것이 좋습니다. 비대칭 라우팅은 패킷의 나가는 경로와 반환 경로가 다르다는 것을 의미합니다. 네트워크 코어의 라우터는 고객 또는 프로바이더 에지의 라우터보다 비대칭 리버스 경로를 가질 가능성이 높습니다. 그림 1 은 라우팅 비대칭 환경의 유니캐스트 RPF를 보여줍니다.

그림 1에서 인터페이스so-0/0/0
에서 유니캐스트 RPF를 활성화하면 라우터 A로 향하는 트래픽은 거부되지 않습니다. 인터페이스so-1/0/1
에서 유니캐스트 RPF를 활성화하면 라우터 A의 트래픽이 거부됩니다.
비대칭 라우팅 환경에서 유니캐스트 RPF를 활성화해야 하는 경우 페일 필터를 사용하여 라우터가 특정 경로로 도착하는 것으로 알려진 수신 패킷을 수신하도록 허용할 수 있습니다. 특정 소스 및 대상 주소로 패킷을 수용하는 페일 필터의 예는 유니캐스트 RPF 구성을 참조하십시오.
유니캐스트 RPF Strict 모드 구성
엄격한 모드에서 유니캐스트 RPF는 수신 패킷에 라우팅 테이블의 접두사와 일치하는 소스 주소가 있는지 여부와 인터페이스가 이 소스 주소 Prefix로 패킷을 수신할 것으로 예상하는지 여부를 확인합니다.
수신 패킷이 유니캐스트 RPF 검사에 실패하면 인터페이스에서 패킷이 허용되지 않습니다. 인터페이스에서 패킷이 허용되지 않을 경우 유니캐스트 RPF는 패킷을 계산하여 장애 필터 옵션으로 보냅니다. 페일 필터가 구성되지 않으면 기본 조치는 패킷을 자동으로 폐기하는 것입니다.
옵션 페일 필터를 사용하면 유니캐스트 RPF 검사에 실패한 패킷에 필터를 적용할 수 있습니다. 허용, 거부, 로깅, 샘플링 또는 폴리싱을 비롯한 모든 필터 작업을 수행하도록 페일 필터를 정의할 수 있습니다.
인터페이스에서 유니캐스트 RPF가 활성화되면 부트스트랩 프로토콜(BOOTP) 패킷과 DHCP(Dynamic Host Configuration Protocol) 패킷은 인터페이스에서 허용되지 않습니다. 인터페이스가 BOOTP 패킷 및 DHCP 패킷을 수락하도록 허용하려면 구성 예의 소스 주소와 대상 주소를 0.0.0.0
255.255.255.255.
가진 모든 패킷을 수용하는 페일 필터를 적용해야 합니다. 구성 예에서는 Configuring Unicast RPF를 참조하십시오.
페일 필터 정의에 대한 자세한 내용은 라우팅 정책, 방화벽 필터 및 Traffic Policers 사용자 가이드를 참조하십시오.
유니캐스트 RPF를 구성하려면 다음과 같은 명령문을 rpf-check
포함합니다.
rpf-check <fail-filter filter-name>;
다음 계층 수준에서 이 명령문을 포함할 수 있습니다.
[edit interfaces interface-name unit logical-unit-number family (inet | inet6)]
[edit logical-systems logical-system-name interfaces interface-name unit logical-unit-number family (inet | inet6)]
유니캐스트 RPF를 사용하면 트래픽 필터와 함께 구현할 때 다음과 같은 몇 가지 결과가 발생할 수 있습니다.
RPF 페일 필터는 입력 필터 후와 출력 필터 앞에서 평가됩니다.
입력 필터에 의해 드롭된 패킷에 대한 필터 카운터를 구성하고 삭제된 총 패킷 수를 알고자 하는 경우 RPF 검사에 의해 드롭된 패킷에 대한 필터 카운터를 구성해야 합니다.
RPF 검사에 실패하고 RPF 페일 필터에 의해 허용되는 패킷을 계산하려면 필터 카운터를 구성해야 합니다.
입력 필터가 inet.0 또는 inet6.0 라우팅 테이블 이외의 다른 곳에서도 패킷을 전달하면 유니캐스트 RPF 검사가 수행되지 않습니다.
입력 필터가 입력 인터페이스를 구성한 라우팅 인스턴스 이외의 다른 곳에서는 패킷을 전달하면 유니캐스트 RPF 검사가 수행되지 않습니다.
ACX 및 MX 시리즈 라우터에서 다음을 수행합니다.
- uRPF 페일 필터는 수신 포트 검사(strict 모드)에서 장애가 발생한 패킷을 일치시킬 수 없습니다.
- uRPF 페일 필터는 패킷에 장애가 있는 소스 IP 조회를 일치시킬 수 있지만, 입력 인터페이스 검사에 실패하는 패킷(strict 모드)을 일치시킬 수는 없습니다.
- uRPF 페일 필터는 방화벽 필터의 인터페이스별 인스턴스에만 적용됩니다.
- uRPF 페일 필터는 거부 및 라우팅 인스턴스 작업을 지원하지 않습니다.
유니캐스트 RPF strict 모드를 구성하고 인터페이스가 BOOTP 패킷 및 DHCP 패킷을 수락하도록 허용하는 페일 필터를 적용합니다. 필터는 소스 주소와 대상 주소 0.0.0.0
255.255.255.255
가 있는 모든 패킷을 허용합니다.
엄격한 모드에서 유니캐스트 RPF를 구성하려면 다음을 수행합니다.
유니캐스트 RPF Loose 모드 구성
기본적으로 유니캐스트 RPF는 strict 모드를 사용합니다. 유니캐스트 RPF Loose 모드는 유니캐스트 RPF Strict 모드와 유사하며 동일한 구성 제한을 가합니다. Loose 모드의 유일한 체크 인은 패킷이 라우팅 테이블의 해당 접두사에 소스 주소를 가지고 있는지 여부입니다. loose 모드는 인터페이스가 특정 소스 주소 접두사로 패킷을 수신할 것으로 예상하는지 여부를 검사하지 않습니다. 해당 접두사(prefix)를 찾지 못한 경우 유니캐스트 RPF Loose 모드는 패킷을 허용하지 않습니다. 엄격한 모드에서와 같이 Loose 모드는 장애가 발생한 패킷을 계산하고 옵션으로 패킷을 허용, 거부, 로그, 샘플 또는 정책 적용하는 페일 필터로 전달합니다.
유니캐스트 RPF Loose 모드를 구성하려면 다음을 mode
포함합니다.
패킷을 폐기할 수 있는 유니캐스트 RPF Loose 모드 구성
유니캐스트 RPF Loose 모드는 폐기 인터페이스를 가리키는 소스 주소로 패킷을 폐기하는 기능을 가지고 있습니다. 유니캐스트 RPF Loose 모드와 Remote Triggered Null Route 필터링을 사용하면 알려진 공격 소스에서 들어오는 패킷을 효율적으로 폐기할 수 있습니다. 에지 라우터의 BGP 정책은 신뢰할 수 없는 소스 주소가 있는 패킷이 다음 홉을 폐기 경로로 설정하도록 보장합니다. 신뢰할 수 없는 소스 주소를 가진 패킷이 라우터에 도착하면 유니캐스트 RPF는 소스 주소의 루트 조회를 수행합니다. 소스 주소 경로가 다음 홉 폐기를 가리키기 때문에 패킷은 삭제되고 카운터는 증분됩니다. 이 기능은 IPv4(inet)와 IPv6(inet6) 주소 제품군 모두에서 지원됩니다.
패킷을 폐기할 수 있는 기능을 갖춘 유니캐스트 RPF Loose 모드를 구성하려면 계층 레벨의 [edit forwarding-options]
명령문을 포함합니다rpf-loose-mode-discard family (inet | inet6)
.
rpf-loose-mode-discard { family { inet; } }
이 예에서는 디바이스 초기화 이외에는 특별한 구성이 필요하지 않습니다.
유니캐스트 RPF Loose 모드를 구성하고 인터페이스가 BOOTP 패킷 및 DHCP 패킷을 수락하도록 지원하는 페일 필터를 적용합니다. 필터는 소스 주소와 대상 주소 0.0.0.0
255.255.255.255
가 있는 모든 패킷을 허용합니다.
패킷을 폐기할 수 있는 기능을 갖춘 유니캐스트 RPF Loose 모드를 구성하려면 다음을 수행합니다.
VPN에서 유니캐스트 RPF 구성
인터페이스에서 유니캐스트 RPF를 활성화하고 계층 레벨의 명령문을 포함 interface
함으로써 VPN 인터페이스에서 유니캐스트 RPF를 [edit routing-instances routing-instance-name]
구성할 수 있습니다.
라우팅 인스턴스에서 사용자가 지정한 인터페이스에서만 유니캐스트 RPF를 구성할 수 있습니다. 즉, 다음을 의미합니다.
-
Layer 3 VPN의 경우, 유니캐스트 RPF는 CE 라우터 인터페이스에서 지원됩니다.
-
유니캐스트 RPF는 코어 대면 인터페이스에서 지원되지 않습니다.
-
가상 라우터 라우팅 인스턴스의 경우, 라우팅 인스턴스에서 사용자가 지정한 모든 인터페이스에서 유니캐스트 RPF가 지원됩니다.
-
입력 필터가 입력 인터페이스를 구성한 라우팅 인스턴스 이외의 다른 곳에서는 패킷을 전달하면 유니캐스트 RPF 검사가 수행되지 않습니다.
레이어 3 VPN 인터페이스에서 유니캐스트 RPF 구성:
[edit interfaces] so-0/0/0 { unit 0 { family inet { rpf-check; } } } [edit routing-instance] VPN-A { interface so-0/0/0.0; }
유니캐스트 RPF 구성
유니캐스트 RPF strict 모드를 구성하고 인터페이스가 BOOTP 패킷 및 DHCP 패킷을 수락하도록 허용하는 페일 필터를 적용합니다. 필터는 소스 주소와 대상 주소 0.0.0.0
255.255.255.255
가 있는 모든 패킷을 허용합니다.
[edit firewall] filter rpf-special-case-dhcp-bootp { term allow-dhcp-bootp { from { source-address { 0.0.0.0/32; } address { 255.255.255.255/32; } } then { count rpf-dhcp-bootp-traffic; accept; } } term default { then { log; reject; } } } [edit] interfaces { so-0/0/0 { unit 0 { family inet { rpf-check fail-filter rpf-special-case-dhcp-bootp; } } } }