/etc/dhcp/dhclient.conf의 "rfc3442-classless-static-routes"는 무엇입니까

/etc/dhcp/dhclient.conf의 "rfc3442-classless-static-routes"는 무엇입니까

내 노트북에서 DHCP를 디버깅하려고 합니다( DHCP 서버가 보내는 내용을 사용 dhcping하고 확인 중입니다). dhcdump다음은 내 것입니다 /etc/dhcp/dhclient.conf.

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

send host-name = gethostname();

request subnet-mask, broadcast-address, time-offset, routers,
domain-name-servers, interface-mtu,
rfc3442-classless-static-routes;

나는 이 모든 옵션이 무엇을 의미하는지 알고 있다고 생각합니다. 하지만 rfc3442-classless-static-routes... 또한 rfc3442-classless-static-routesDHCP 응답에는 이에 대한 아무것도 표시되지 않습니다.

무슨 뜻이에요 rfc3442-classless-static-routes? 어떤 상황에서 사용할까요?

(이것문서무의미한)

답변1

원래 DHCP 사양(RFC2131그리고2132)은 DHCP 서비스 관리자가 필요할 때 클라이언트에 고정 경로를 게시할 수 있도록 하는 옵션(33)을 정의합니다.

불행하게도 원래 디자인은 이제 가정했기 때문에 결함이 있습니다.클래스풀 네트워크 주소,거의 사용하지 않습니다.

rfc3442-classless-static-routes옵션을 사용하면 다음을 사용할 수 있습니다.클래스 없는 네트워크 주소(또는 CIDR).

CIDR에서는 서브넷 마스크를 명시적으로 지정해야 하지만 원시 DHCP 옵션 33에는 이를 위한 공간이 없습니다. 따라서 이 옵션(RFC 3442에 정의됨)은 CIDR 표기법을 사용하여 정적 경로를 정의하는 최신 대체 DHCP 옵션(옵션 121)만 활성화합니다.

기본적으로 DHCP를 사용하여 장치에 고정 경로를 광고해야 하는 경우그리고이러한 정적 경로는 CIDR을 사용하므로 이 옵션을 활성화해야 합니다.

네트워크를 여러 개의 작은 네트워크로 분할하고 사용 가능한 많은 동적 라우팅 프로토콜 중 하나를 사용하지 않고 트래픽이 한 네트워크에서 다른 네트워크로 이동하는 방법을 각 라우터에 알려야 하는 경우 정적 라우팅을 사용할 수 있습니다. 기본적으로 단일 명령문을 사용하여 각 라우터를 설정하면 다음과 같은 효과가 있습니다."네트워크 abcd에 액세스하려면 fghi를 통해 트래픽을 보내십시오.".

라우터에 설정한 라우팅이 클래스형인 경우 이 옵션을 활성화할 필요가 없습니다. 그러나 경로가 CIDR인 경우 이 옵션을 활성화해야 합니다. 다행히도 많은 홈/카페 네트워크는 진정한 클래스 C 네트워크인 192.168.0.0서브넷 255.255.255.0(또는 서브넷)을 사용하므로 이 옵션을 피할 수 있습니다./24

반면 일부 홈/카페 네트워크는 10.0.0.0이 네트워크에서 실행됩니다. 기본적으로 이는 클래스 A 네트워크입니다. 예를 들어 여러 서브넷으로 분할하려는 경우 10.0.x.0해당 서브넷은 모두 CIDR 네트워크가 됩니다. 즉, 이 옵션을 활성화해야 합니다.

이 라우팅 정보를 다음에 게시해야 하는 경우에만너의 주인DHCP를 통해. 이 정적 라우팅 정보를 호스트에 알려야 하는지 여부는 네트워크 설계에 따라 결정됩니다. 고정 경로는 일반적으로 라우터에 정의되어 있으므로 기본적인 홈/카페 네트워크에는 이 경로가 필요하지 않을 것이라고 추측할 수 있습니다.

위의 구성은 단순히 새 옵션(이미 이해된 사전 정의된 옵션이 많이 있음 dhclient)을 옵션 121로 정의합니다. 이 옵션은 8비트 부호 없는 정수 배열로 구성됩니다. 그런 다음 DHCP 서버에 옵션이 설정되어 있으면 해당 옵션을 요청하도록 클라이언트를 구성합니다.

DHCP 서버가 이 옵션에 대한 값을 반환하면 dhclient종료 후크 스크립트( /etc/dhclient/dhclient-exit-hooks.d/rfc3442-classless-routes)는 값을 읽고 이에 따라 라우팅 테이블을 구성합니다.

답변2

다음과 같이 사용할 dhclient.conf수 있습니다.

supersede rfc3442-classless-static-routes 25,1,2,3,0,192,168,240,1;

192.168.240.1을 통해 경로 1.2.3.0/25를 추가하는 데 사용됩니다.

rfc3442-classless-static-routes재정의 routers하므로 기본 경로가 있는 경우 넷마스크로 0부터 시작하는 기본 경로를 추가해야 합니다.

후크 스크립트에서는 다음과 같이 사용할 수 있습니다.

if [ "$reason" = 'BOUND' ]; then
        new_routers_rfc=$( echo "$new_routers" | tr '.' ' ' )
#       new_rfc3442_classless_static_routes="16 192 168 192 168 240 1 8 10 192 168 240 1 0 192 168 241 120"
        new_rfc3442_classless_static_routes="16 192 168 $new_routers_rfc 8 10 $new_routers_rfc 0 192 168 241 120"
fi

경로 추가용

default via 192.168.241.120
10.0.0.0/8 via 192.168.240.1
192.168.0.0/16 via 192.168.240.1

이 스크립트는 기본 경로를 대체하고 dhcp의 기본 경로를 사용하여 로컬 네트워크에 액세스합니다.

관련 정보