NetworkManager 및 dnsmasq dhcp 주소 범위

NetworkManager 및 dnsmasq dhcp 주소 범위

여기에서 Xubuntu 16.04를 실행합니다. 내 문제는 dnsmasqNetworkManager가 시작될 때 dnsmasq.conf, 및 파일이 무시된다는 것입니다. 대신 NetworkManager는 다음과 같이 시작됩니다./etc/dnsmasq/etc/NetworkManager/dnsmasq.d/etc/NetworkManager/dnsmasq-shared.ddnsmasq

9949 ?        S      0:00 /usr/sbin/dnsmasq --conf-file --no-hosts --keep-in-foreground --bind-interfaces --except-interface=lo --clear-on-reload --strict-order --listen-address=10.42.0.1 --dhcp-range=10.42.0.10,10.42.0.254,60m --dhcp-option=option:router,10.42.0.1 --dhcp-lease-max=50 --pid-file=/var/run/nm-dnsmasq-wlan1.pid --conf-dir=/etc/NetworkManager/dnsmasq-shared.d

10.42.0.10,10.42.0.254,60m내 시스템에서 주소 범위를 지정하는 곳을 찾을 수 없습니다 .

이것은 어디에서 왔습니까? ? ?

답변1

알았어, 알아. 소스 코드에서 직접 파일: nm-dnsmasq-manager.c

/* dnsmasq는 기본 구성 파일 위치에서 읽을 수 있으며, 이는 여기 옵션과 결합되어 해당 위치가 유효한 구성 파일인 경우 바람직하지 않은 부작용을 일으킬 수 있습니다. 게이트웨이 등으로 가짜 IP 주소를 보내는 것과 같습니다. 따라서 dnsmasq에게 구성 파일을 사용하지 말라고 지시하세요. */

NetworkManager는 dnsmasq 구성 값을 질투하며 외부 간섭을 허용하지 않습니다. NetworkManager는 dnsmasq를 시작하는 명령줄을 내부적으로 구축하고 실행하며 프로세스에 --conf-file(공백) 지시문을 포함하여 사용자 또는 시스템 제공 dnsmasq 구성 파일의 사용을 방지합니다.

답변2

배경/이유:Lennard Poettering 프로젝트인 NetworkManager는 Unix의 모든 것에 공개적으로 적대적이며 GNU를 대체하려고 시도하며 스스로를 "이것Linux". 따라서 "모든 것이 파일이다"라는 검증된 원칙을 피합니다. 배후에서 일부 "자동" 상태 파일을 사용하여 구성을 위한 명령줄 인터페이스를 제공합니다(Linux는 여전히 Unixy이므로 상상하다).

예상되는 솔루션

그래서 그렇게 되는 거야고의로구성해야 할 것은

nmcli connection modify MyConnection ipv4.addresses 10.42.1.1/24 # Set the IP range here
nmcli connection up MyConnection # Restart the connection to apply it

Linux Mint에서는 연결을 편집하고 IPv4 및 IPv6 탭의 주소 아래 테이블에 행을 추가하여 GUI를 통해 이 작업을 수행할 수도 있습니다. (이것은 혼란스럽고 "자동" 주소를 제거하지 않고 보조 주소만 할당하게 될 수도 있습니다.)

전문적인 솔루션

또는 이러한 명령으로 수정된 파일을 변경하여 아무 것도 하고 싶지 않은 경우에도 이러한 변경 사항을 적용할 수 있습니다. (회사 네트워크에서 컴퓨터를 구성할 때와 같습니다.) Linux Mint에서는 다음과 같습니다.

vi /etc/NetworkManager/system-connections/MyConnection.nmconnection # Or in my case, is just copy the file over from my central storage.
nmcli connection reload # Only necessary when there is no boot following
nmcli connection up MyConnection # ditto

노트

어떤 경우든 파일 섹션의 필드를 MyConnection통해 찾을 수 있는 연결 이름으로 바꾸십시오 . (파일 이름은 일부 특수 문자를 벗어날 수 있으므로 정확히 동일하지 않습니다. 수동으로 수행하는 경우 동일할 필요는 없습니다.nmcli connectionid[connection].nmconnection별말씀을요.)

예를 들어 10.42.1.1/24서버의 자체 IP를 10.42.1.1로 설정하고 클라이언트에 10.42.1.2~10.42.1.254 범위의 IP를 제공하는 것으로 보입니다. 서버의 IP를 개별적으로 설정할 수 있으면 더 좋겠지만 적어도 그 작업은 수행합니다.

여기에 포함하지 않은 것은 두 네트워크를 연결하여 두 네트워크를 연결해야 하는 경우입니다.동일한IP 범위. (일반적으로 WIFI를 통해 연결된 노트북과 비슷하지만 이더넷 케이블을 통해 연결하면 더 빠른 속도를 위해 동일한 서버 IP 주소를 얻습니다.)

관련 정보