역경로출고

Reverse-path forwarding

역경로 포워딩(RPF)멀티캐스트 라우팅에서 멀티캐스트 패킷의 루프프리 포워딩을 보장하고 유니캐스트 라우팅에서 IP 어드레스 스푸핑을 방지하기 위해 현대 라우터에서 사용되는 기술이다.[1]

표준 유니캐스트 IP 라우팅에서 라우터는 패킷을 소스로부터 멀리 포워드 하여 배포 트리를 따라 진행시키고 라우팅 루프를 방지한다.이와는 대조적으로, 라우터의 멀티캐스트 포워딩 상태는 수신기에서 멀티캐스트 소스의 분배 트리의 루트까지 역경로에 기초한 테이블을 구성함으로써 더 논리적으로 실행된다.이 접근방식은 역경로 포워딩이라고 알려져 있다.

멀티캐스트 RPF

일반적으로 단순히 RPF로 표기되는 멀티캐스트 RPF는 멀티캐스트 패킷의 루프 프리 포워딩을 보장하기 위해 멀티캐스트 소스 탐색 프로토콜 또는 프로토콜 독립 멀티캐스트와 같은 멀티캐스트 라우팅 프로토콜과 함께 사용된다.멀티캐스트 라우팅에서, 트래픽을 포워드 하는 결정은 유니캐스트 라우팅에서처럼 목적지 주소가 아닌 소스 주소에 기초한다.그것은 전용 멀티캐스트 라우팅 테이블 또는 라우터의 유니캐스트 라우팅 테이블을 이용하여 이것을 한다.

멀티캐스트 패킷이 라우터의 인터페이스에 들어갈 때, 라우터는 그 인터페이스를 통해 도달할 수 있는 네트워크 목록을 찾는다(즉, 그것은 패킷이 도착할 수 있었던 경로를 점검한다).라우터가 멀티캐스트 패킷의 소스 IP 주소에 일치하는 라우팅 항목을 찾으면, RPF 체크는 통과하고 패킷은 그 멀티캐스트 그룹에 참여하고 있는 모든 다른 인터페이스로 포워드 된다.RPF 검사가 실패하면 패킷이 삭제된다.그 결과, 패킷의 포워딩은 포워드 경로가 아닌 패킷의 역경로를 기준으로 결정된다.패킷의 소스에 대한 라우팅 항목도 포함하는 인터페이스로 들어오는 패킷만 전달하면 루프가 방지된다.

이것은 중복 멀티캐스트 토폴로지에서 매우 중요하다.동일한 멀티캐스트 패킷이 여러 인터페이스를 통해 동일한 라우터에 도달할 수 있기 때문에, RPF 확인은 패킷 포워드 결정에서 필수적이다.라우터가 인터페이스 A에서 인터페이스 B로 들어오는 모든 패킷을 포워드 하고 인터페이스 B에서 인터페이스 A로 들어오는 모든 패킷도 포워드 되고 두 인터페이스가 동일한 패킷을 받는다면, 이는 IP TTL이 만료될 때까지 패킷이 양방향으로 포워드 되는 라우팅 루프를 만들 것이다.라우팅 루프는 불필요하게 네트워크 자원을 소비하므로 피하는 것이 좋다.

RPF 검사의 기본 가정은 다음과 같다.

  1. 유니캐스트 라우팅 테이블은 정확하고 안정적이며,
  2. 송신자에서 라우터로 사용되는 경로와 라우터에서 송신기로의 역방향 경로는 대칭이다.

첫 번째 가정이 거짓일 경우, RPF 점검은 예비로서 라우터의 유니캐스트 라우팅 테이블에 의존하기 때문에 실패할 것이다.두 번째 가정이 거짓인 경우, RPF 검사는 송신자에서 라우터까지의 최단 경로를 제외한 모든 경로에서 멀티캐스트 트래픽을 거부하여 최적화되지 않은 멀티캐스트 트리로 이어질 것이다.링크가 단방향인 경우, 역방향 경로 접근은 완전히 실패할 수 있다.

유니캐스트 RPF

RFC 3704에서 정의한 유니캐스트 RPF(uRPF)는 알려진 유효하지 않은 네트워크의 트래픽이 결코 발생해서는 안 되는 인터페이스에서 받아들여져서는 안 된다는 개념의 진화다.RFC 2827에서 보이는 원래 아이디어는 인터페이스의 트래픽이 위조된 IP 주소에서 소싱되는 경우 트래픽을 차단하는 것이었다.많은 조직들이 그들의 네트워크에 있는 개인 주소의 전파를 명시적으로 사용하지 않는 한 단순히 허용하지 않는 것은 합리적인 가정이다.이것은 명백히 가짜 소스 주소로부터 패킷을 차단하는 것이 DoS, DDoS, 그리고 스캔 소스를 난독하게 하기 위해 일반적으로 사용되는 IP 주소 스푸핑을 줄이는 데 도움이 되기 때문에 인터넷 백본에 큰 이점이 된다.[2]

uRPF는 인터페이스에서 보여져야 하는 가능한 소스 주소를 더욱 제한하기 위해 모든 라우터가 그들의 주요 업무를 수행하기 위해 그들의 라우팅 정보 베이스(RIB) 또는 포워딩 정보 베이스(FIB)에 가지고 있어야 하는 지식을 활용하여 이 아이디어를 확장한다.패킷은 라우터의 가장 좋은 경로에서 패킷의 소스로 오는 경우에만 포워드 된다.인터페이스로 들어오는 패킷은 라우팅 테이블의 해당 항목으로 표시된 대로 유효한 하위 네트워크로부터 전달된다.입력 인터페이스를 통해 도달할 수 없는 소스 주소를 가진 패킷은 잘못 구성되었거나 악의적인 소스일 가능성이 있으므로 정상적인 사용으로 중단 없이 삭제될 수 있다.

패킷이 동일한 경로를 통해 양방향으로 흐르는 대칭 라우팅과 단일 링크를 통해 연결된 단말 네트워크의 경우 이는 안전한 가정이며 많은 예상 문제 없이 uRPF를 구현할 수 있다.트래픽의 실제 소스에 가능한 가깝게 uRPF를 사용하는 것 또한 대역폭을 사용하거나 RPF에 대해 구성되지 않은 라우터에 도달하여 부적절하게 전달되기 전에 스푸핑된 트래픽을 중지한다.

불행하게도, 라우팅이 비대칭이고 라우팅 테이블이 소스가 라우터에 도달하기 위한 최적의 경로를 가리키도록 신뢰할 수 없는 경우가 더 큰 인터넷 백본에서 종종 있다.라우팅 테이블은 최상의 전진 경로를 지정하며 대칭 케이스에서만 최상의 후진 경로와 동일하다.uRPF를 구현할 때 합법적인 트래픽의 우발적인 필터링을 방지하기 위한 비대칭의 가능성을 인지하는 것이 중요하다.

RFC 3704는 최소한 일부 비대칭성을 허용하면서 여전히 유익할 수 있는 좀 더 완화된 사례를 포함하기 위해 엄격한 역경로 포워딩을 확장하는 방법에 대해 자세히 설명한다.

엄격한 모드

엄격한 모드에서는 각 수신 패킷을 FIB에 대해 테스트하고, 수신 인터페이스가 최선의 역경로가 아닌 경우 패킷 검사에 실패한다.기본적으로 실패한 패킷은 폐기된다.[a]

실현 가능한 모드

실현 가능한 모드에서 FIB는 주어진 IP 주소에 대한 대체 경로를 유지한다.수신 인터페이스가 IP 주소와 관련된 경로와 일치하면 패킷이 전달된다.그렇지 않으면 패킷이 삭제된다.

느슨한 모드

느슨한 모드에서 각 수신 패킷의 소스 주소는 FIB에 대해 테스트된다.패킷은 라우터의 인터페이스를 통해 소스 주소에 연결할 수 없는 경우에만 삭제된다.[a]

필터링 대 전달

RPF는 특히 유니캐스트 라우팅의 경우 역경로 필터링으로 해석되는 경우가 많다.이는 RPF가 RFC 3704에서와 같이 유니캐스트 라우팅과 함께 사용될 때 RPF 검사 통과 또는 실패에 기초하여 트래픽이 허용되거나 거부된다는 점에서 약어에 대한 이해할 수 있는 대체 해석이다.트래픽이 RPF 검사에 실패하여 필터링되면 트래픽이 거부된다는 생각.uRPF는 수신 필터링 메커니즘으로 사용되지만 역경로 포워딩의 영향을 받는다.

역방향 경로 필터는 일반적으로 IP 응용프로그램이 다른 수신 및 송신 라우팅 경로를 갖는 비대칭 라우팅을 비활성화하는 데 사용된다.그것의 의도는 한 인터페이스로 들어가는 패킷이 다른 인터페이스를 통해 나가는 것을 방지하는 것이다.역경로 필터링은 리눅스 커널의 기능이다.[3]

참고 항목

메모들

  1. ^ a b Cisco 디바이스의 예 명령: {rx}을(를) 통해 유니캐스트 소스에 연결할 수 있는지 IP 확인 - 엄격한 모드, {any} - 느슨한 모드

참조

  1. ^ "Reverse Path Forwarding". Juniper Networks. 2010. Retrieved 2021-05-12.
  2. ^ "Understanding Unicast Reverse Path Forwarding". Cisco Systems. Retrieved 2021-05-12.
  3. ^ "rp_filter and LPIC-3 Linux Security". theurbanpenguin.com. 2020-08-27. Retrieved 2021-05-12.

외부 링크

  • Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing. RFC 2827.
  • Ingress Filtering for Multihomed Networks. RFC 3704.