RIPv2: 광고의 이상한 규칙

RIPv2: 광고의 이상한 규칙

Linux의 Quagga 최신 버전에는 RIPv2를 통해 이웃 라우터에 어떤 종류의 경로 정보가 광고되지 않도록 억제할 수 있는 규칙이 있다는 것을 발견했습니다.

천마디 말보다 한 장의 이미지가 말해준다

라우터 r1이 'nic0' 인터페이스를 통해 다른 라우터 r2에 연결되고 r1에 다른 인터페이스 'nic1'이 있는 경우 다른 네트워크 'net1'에 연결합니다. 그런 다음 r1은 'net1'에 대한 경로를 이웃 r2에 알리기를 희망합니다. net0이라는 네트워크는 r1과 r2를 연결하는 네트워크(예: 10.3.1.32/27)이고, 네트워크 'net1'은 10.3.1.0/24입니다.

이 경우 Quagga의 RIPv2 프로그램이 내부적으로 항목을 억제하고 삭제하기 때문에 10.3.1.0/24(nic1을 통해)의 경로 항목은 r2로 전송되지 않습니다.

Quagga의 RIPv2 소스 코드를 확인한 결과 규칙 때문이라는 것을 알았습니다. 10.3.1.0/24에는 네트워크 접두사 10.3.1.32/27, 즉 가장 왼쪽 24비트에 포함된 네트워크 접두사가 있습니다. 10.3.1.0은 10.3.1.32의 가장 왼쪽 27비트의 하위 문자열입니다.

그런데 왜 그런 규정이 있는지 이해가 안 되네요. RIPv2 표준에 의해 정의됩니까, 아니면 단지 Quagga의 특이한 점입니까? 제가 이해한 바에 따르면 net0과 net1 간의 겹침은 유효하며 라우팅의 '가장 긴 네트워크 접두사 일치 규칙'으로 인해 문제가 되지 않아야 하며, 라우터 r2에는 실제로 더 큰 네트워크 net1이 존재하는지 알아야 합니다(비교 net0)은 r1을 통해 도달할 수 있습니다. 이 경로 정보가 Quagga에 의해 억제된 경우 r2는 이를 알지 못하며 net1의 호스트는 r2 측에서 net0에서 액세스할 수 없습니다.

그거 아는 사람 있어?

고마워요, 우디

답변1

10.3.1.0/24 네트워크가 R1에 직접 연결되어 있으면 문제가 발생할 수 있습니다. 이 경우 R1의 두 인터페이스 모두에서 IP 주소가 중복됩니다. 저는 Linux 전문가는 아니지만 이것이 Cisco 라우터에서 지원되지 않는다는 것을 알고 있습니다(그리고 다른 라우터/방화벽에서도 지원되지 않는다고 확신합니다).

네트워크가 R1에 직접 연결되어 있지 않으면 네트워크에 세 번째 라우터가 있어야 하며 이를 R0이라고 부르겠습니다. R0은 10.3.1.0/24 네트워크에 직접 연결되고 다른 네트워크(예: 172.16.0.0/24)를 통해 R1에 연결됩니다. 이 경우 설정이 제대로 작동해야 합니다. Cisco 라우터에서 이것을 테스트했습니다.

      10.0.0.0/8 is variably subnetted, 4 subnets, 4 masks
R        10.3.1.0/24 [120/1] via 172.16.0.101, 00:00:13, Ethernet0/1 (nic1)
C        10.3.1.32/27 is directly connected, Ethernet0/0 (nic0)

아마도 Quagga는 불평하지는 않지만 두 인터페이스 모두에서 이러한 겹치는 IP 범위를 처리하지 못할 수도 있습니다.

관련 정보