하나의 인터페이스에서만 수신하도록 dnsmasq를 제한하는 방법은 무엇입니까?

하나의 인터페이스에서만 수신하도록 dnsmasq를 제한하는 방법은 무엇입니까?

루프백 인터페이스에서만 수신하도록 (버전 2.66) 시도 중이지만 dnsmasq수신에만 집착합니다.모두사용 가능한 주소, 즉0.0.0.0:53다음과 같은 주장에도 불구하고:

# dnsmasq -ilo --pid-file=/run/dnsmasq-lo.pid

dnsmasq: failed to create listening socket for port 53: Adress already in use

하나의 IP 주소만 수신하는 것처럼 보이는 다른 dnsmasq 프로세스가 실행 중입니다.

# netstat -ltaupn | sed -rne 2p -e '/:53\b/p'
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 192.168.125.1:53        0.0.0.0:*               LISTEN      4224/dnsmasq    
tcp        0      0 192.168.124.1:53        0.0.0.0:*               LISTEN      4221/dnsmasq    
udp        0      0 192.168.125.1:53        0.0.0.0:*                           4224/dnsmasq    
udp        0      0 192.168.124.1:53        0.0.0.0:*                           4221/dnsmasq    

모든 인스턴스를 종료 dnsmasq하고 명령을 다시 실행하면 다음과 같은 결과가 나타납니다.

# dnsmasq -ilo --pid-file=/run/dnsmasq-lo.pid
# netstat -ltaupn | sed -rne 2p -e '/:53\b/p'
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      4452/dnsmasq    
tcp6       0      0 :::53                   :::*                    LISTEN      4452/dnsmasq    
udp        0      0 0.0.0.0:53              0.0.0.0:*                           4452/dnsmasq    
udp6       0      0 :::53                   :::*                                4452/dnsmasq    

다음 인수는 단독으로 또는 결합하여 아무것도 변경하지 않습니다.

--local=//
-a127.0.0.1
-Ieth0 -Ieth1 -Ivirbr0 -Ivrbr1

어떻게 강제로 dnsmasq듣게 할 수 있나요?오직내가 원하는 하나의 인터페이스, 루프백 인터페이스?

답변1

감사해요스티븐 차제라스, 가능한 대답 중 하나는 추가하는 것입니다 --bind-interfaces. 저는 명령줄 도움말을 읽지 못하도록 제한했기 때문에 이 옵션을 무시했습니다.

# dnsmasq --help | grep bind-interfaces
-z, --bind-interfaces                   Bind only to interfaces in use.

나는 본능적으로 매뉴얼 페이지를 다시 확인하지 않았습니다. IMHO 이 도움말은 여전히 ​​혼란스럽습니다.

그러나 매뉴얼 페이지에는 다음과 같이 명시되어 있습니다.

   -z, --bind-interfaces
          On systems which support it, dnsmasq binds the wildcard address,
          even when it is listening on only some interfaces. It then  dis-
          cards  requests  that it shouldn't reply to. This has the advan-
          tage of working even when interfaces  come  and  go  and  change
          address.  This  option  forces  dnsmasq  to really bind only the
          interfaces it is listening on. About the only time when this  is
          useful  is  when running another nameserver (or another instance
          of dnsmasq) on  the  same  machine.  Setting  this  option  also
          enables multiple instances of dnsmasq which provide DHCP service
          to run in the same machine.

이것이 더 명확합니다.

관련 정보