CentOS 7 DHCP 클라이언트 - "클래스 없는 고정 경로"("코드 121")를 사용하는 방법은 무엇입니까?

CentOS 7 DHCP 클라이언트 - "클래스 없는 고정 경로"("코드 121")를 사용하는 방법은 무엇입니까?

이 답변에 따르면 ...

https://unix.stackexchange.com/a/457577/61742

/etc/dhclient.conf... 다음 구성을 넣거나 보관하여 DHCP 클라이언트의 DHCP 서버에서 푸시 라우팅을 사용할 수 있습니다 .../etc/dhcp3/dhclient.conf

option classless-static-routes code 121 = array of { ip-address, ip-address };

그런데 CentOS 7에는 이 파일이 존재하지 않는데, 다음 파일들이...

[root@localhost ~]# ps -eaf | grep dhcli
root       780   650  0 15:02 ?        00:00:00 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-enp0s8.pid -lf /var/lib/NetworkManager/dhclient-00cb8299-feb9-55b6-a378-3fdc720e0bc6-enp0s8.lease -cf /var/lib/NetworkManager/dhclient-enp0s8.conf enp0s8
root       783   650  0 15:02 ?        00:00:00 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-enp0s17.pid -lf /var/lib/NetworkManager/dhclient-8512e951-6012-c639-73b1-5b4d7b469f7f-enp0s17.lease -cf /var/lib/NetworkManager/dhclient-enp0s17.conf enp0s17
root      2218  1152  0 15:36 pts/0    00:00:00 grep --color=auto dhcli

/var/lib/NetworkManager/dhclient-enp0s8.conf참고: "-cf" 매개변수(파일: 및 ) 의 값을 참고하세요 /var/lib/NetworkManager/dhclient-enp0s17.conf.

내 질문은 다음과 같습니다CentOS 7 DHCP 클라이언트에서 "Classless Static Route"(코드 121)를 사용하는 올바른 방법은 무엇입니까?

감사해요!


추가하다:

이것은 내 ISC KEA DHCP(DHCPv4) 구성입니다...

cat /usr/local/etc/kea/kea-dhcp4.conf

[...]
"option-def": [{
        "name": "rfc3442-classless-static-routes",
        "code": 121,
        "space": "dhcp4",
        "type": "record",
        "record-types": "uint8,uint8,uint8,ipv4-address"
    }
],
"option-data": [{
        "name": "rfc3442-classless-static-routes",
        "data": "10,1,4, 10.1.6.4"
}]
[...]

목표는 DHCP 클라이언트에서 10.1.4.0/24에 대한 요청을 IP 10.1.6.4/32로 라우팅하는 것입니다.

ip route add 10.1.4.0/24 dev enp0s8 via 10.1.6.4참고: 모든 DHCP 클라이언트에서 이 명령을 사용하면 동일한 결과를 얻습니다.

답변1

뻔뻔한 표절이 답변에서:

DHCP를 통해 이 작업을 수행하려면 RedHat 기술 자료 문서에 따라 DHCP 클라이언트를 올바르게 구성했는지 확인하세요.여기 있어요

NetworkManager를 사용할 때 DHCP 서버에서 제공하는 RFC3442 표준 클래스 없는 정적 경로를 올바르게 처리하려면 다음 줄을 /etc/dhclient.conf또는(인터페이스별 DHCP 옵션을 사용하는 경우) 에 배치해야 합니다 /etc/dhclient-<ifname>.conf.

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8; 
option ms-classless-static-routes code 249 = array of unsigned integer 8; 
also request rfc3442-classless-static-routes;
also request ms-classless-static-routes;

이 줄은 RFC3442 클래스 없는 정적 경로가 DHCP 서버에서 요청되고 NetworkManager가 이를 올바르게 처리하는지 확인합니다.

답변2

실제로 이 답변은 @Isaac의 답변에 추가되었으며 질문에 대한 몇 가지 문제가 있습니다. 이는 약간 명백해 보일 수 있지만 나에게는 그렇지 않습니다.

첫째, 제시된 우주에는 몇 가지 패턴이 있지만 DHCP 서버에 구성된 것과 DHCP 클라이언트에서 예상되는 것 간의 상관 관계를 이해하는 것이 필요합니다. 실제로 "option-def"->"name"과 같은 매개변수는 "rfc3442-classless-static-routes"와 "classless-static-routes", "option-def"->"record-types" 사이에서 변경될 수 있습니다. "rfc3442-classless-static-routes" 사이. uint8, uint8, uint8, ipv4-address" 및 "uint8, uint8, uint8, uint8, uint8, uint8, uint8, uint8" 등... 즉, DHCP 클라이언트가 "상대방"에서 무엇을 기대하는지에 따라 달라집니다. "기본적으로 우월해요.

CentOS 7의 경우 스레드에서 지적한 내용https://unix.stackexchange.com/a/459963/61742기본적으로 이미 구성되어 있으면 CentOS 7이 ISC KEA DHCP(DHCPv4)(필자의 경우)의 "다른 쪽 끝"에서 기다리고 있는 것을 구성하면 됩니다.

마지막으로 구성은 이렇습니다..

cat /usr/local/etc/kea/kea-dhcp4.conf

[...]
"option-def": [{
        "name": "rfc3442-classless-static-routes",
        "code": 121,
        "space": "dhcp4",
        "type": "record",
        "array": true,
        "record-types": "uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8"
    }
],
"option-data": [{
        "name": "rfc3442-classless-static-routes",
        "data": "24,10,1,4,10,1,6,4"
}]
[...]

...CentOS 7이 다음과 같이 구성되었으므로...

cat /var/lib/NetworkManager/dhclient-enp0s8.conf

[...]
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8; 
also request rfc3442-classless-static-routes;
[...]

몇 가지 설명:

"record-types"는 마스크입니다. 즉, CentOS 7에서 예상한 대로 "부호 없는 정수 8의 배열"(uint8)인 "date"에 알림된 배열의 각 위치에 있는 내용입니다.

"data"는 다음 예에 따라 작동합니다. 다음 경로를 원하면 10.1.4.0/24 via 10.1.6.4에 알립니다 . 3옥텟(/24) 마스크이므로 "24,10,1,4,10,1,6,4"0은 생략해야 합니다 .10.1.4.0/24

힌트:"option-data" 매개변수는 라우팅 구성을 배포하려는 방법에 따라 "subnet4"(파일 "/usr/local/etc/kea/kea-dhcp4.conf")의 여러 위치에 배치될 수 있습니다.

@Isaac, @Rui F Ribeiro 및 @AB에게 특별히 감사드립니다!

관련 정보