DHCP 게이트웨이를 사용한 추가 라우팅

DHCP 게이트웨이를 사용한 추가 라우팅

모두들 좋은 하루 보내세요!
이런 문제가 있습니다. Debian Buster 랩톱에서 NetworkManager를 사용하여 DHCP를 통해 구성된 비영구 네트워크를 통해 서브넷에 대한 액세스를 구성해야 합니다. 따라서 연결의 IPv4 설정->라우팅에 경로를 추가할 수 있습니다. 게이트웨이와 이로 인해 변경되는 연결에 대해 모르기 때문에 라이브 게이트웨이를 추가할 수 없습니다. 하지만 게이트웨이를 비워두면 게이트웨이 없이 링크 범위를 사용하여 디바이스에 대한 연결이 생성됩니다.

хх.хх.0.0/16 dev wwp0s20f0u5u6i3 proto static scope link metric 1

연결된 DHCP 할당 게이트웨이에 대한 경로를 얻으려면 게이트웨이 필드에 무엇을 붙여넣어야 합니까? 이와 같이

хх.хх.0.0/16 via yy.yy.yy.yy dev wwp0s20f0u5u6i3

탱크!

답변1

OpenVPN은 OpenVPN이 동적으로 대체하는 "net_gateway"와 같은 특수 게이트웨이를 지원합니다.

NetworkManager는 이를 지원하지 않습니다. 누락된 기능입니다.

연결이 지점 간 링크(예: VPN)인 경우 0.0.0.0이 적합할 수 있습니다(게이트웨이는 중요하지 않음).

해결 방법으로 스케줄러 스크립트를 에 배치할 수 있습니다 . amd의 "사전 실행" 이벤트를 /etc/NetworkManager/dispatcher.d참조하세요 . man NetworkManager스크립트는 경로를 추가하여 작동합니다 ip route add.

일반적으로 수동 라우팅을 구성하려면 연결된 네트워크의 매개변수를 알고 있어야 합니다. 따라서 NetworkManager에는 다양한 연결 프로필이 있으며 위치에 따라 올바른 연결 프로필이 활성화됩니다.

답변2

탱크는 Thaler로 이동했습니다. NetworkManager의 보물을 발견하게 해주세요. 귀하의 조언이 없었다면 저는 아마도 이 사람과 이 해결 방법을 읽는 데 시간을 들이지 않았을 것입니다. 따라서 이제 이 사람의 오래된 정보에 시간을 낭비하지 않으려면 이 사람에서 제기된 환경 변수 IP4_GATEWAY는 당신이 어디에 있든 결코 평가되지 않는다는 점에 유의하십시오./etc/NetworkManager/dispatcher.d/하위 디렉토리. 다행스럽게도 이러한 스크립트가 사전 실행 모드에서 실행되면 인터페이스가 이미 작동 중이고 DHCP 서버에서 제공하는 게이트웨이가 이미 있습니다. 따라서 구체적인 해결책은 다음과 같습니다.

1] 추가 경로를 다음과 같이 입력해 보겠습니다. /etc/NetworkManager/DHCP_additional_routes 예:

8.8.4.4 32  enp6s18
8.8.8.8 32  enp6s19  

(대상 마스크 인터페이스)

2] 대본에서 우리는 말한다 추가 경로 관리아래에/etc/NetworkManager/dispatcher.d/pre-up.d/ IP4_GATEWAY 값을 얻을 수 있습니다.

#!/bin/bash 
INTERFACE="$1"
ACTION="$2"
DEFROUTE=`ip route show | grep $INTERFACE | grep default`
IP4_GATEWAY=`echo $DEFROUTE | awk '{print $3}'`
grep "$INTERFACE" /etc/NetworkManager/DHCP_additional_routes| while read LINE0
do
    P1=`echo $LINE0| awk '{print $1}'`
    P2=`echo $LINE0| awk '{print $2}'`
    P3=`echo $LINE0| awk '{print $3}'`
    ip route add $P1/$P2 via $IP4_GATEWAY
done

DHCP 서버에서 주소를 가져오는 2개의 WAN 인터페이스 간의 장애 조치를 관리하려면 이 기능이 필요합니다. "카나리아" 방법을 사용하십시오. 위에 제공된 인터페이스에 의해서만 라우팅될 수 있는 DHCP_additionnal_route에 설명된 대상에서 ping을 테스트할 수 있으므로 인터페이스가 작동 중인지 작동 중지되었는지 알 수 있습니다.

관련 정보