인터페이스 감지 실패로 인해 isc-dhcp-server가 시작되지 않습니다.

인터페이스 감지 실패로 인해 isc-dhcp-server가 시작되지 않습니다.

BCM4313무선 카드에 AP 모드를 설정 하려고 합니다 .

내 기본 hostapd구성은 다음과 같습니다.

interface=wlan0
driver=nl80211
ssid=test
hw_mode=b
channel=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=3
wpa_passphrase=1234567890
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

네트워크가 성공적으로 설정되었으며 네트워크에 연결할 수 있습니다. 그러나 IP 주소를 가져오는 동안 연결 프로세스가 중지됩니다.

따라서 내 dhcpd.conf파일은 다음 삽입을 포함하여 기본 파일과 거의 동일해 보입니다.

# option definitions common to all supported networks...
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;

#default-lease-time 600;
#max-lease-time 7200;
...
option broadcast-address 10.10.0.255;

subnet 10.10.0.0 netmask 255.255.255.0 {
        interface wlan0;
        range 10.10.0.2 10.10.0.16;
        option domain-name-servers 8.8.8.8, 8.8.4.4;
        option routers 10.10.0.1;
}

wlan0인터페이스가 구성되었습니다(내 생각엔) 적절하게:

wlan0: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        inet 10.10.0.1  netmask 255.255.255.0  broadcast 10.10.0.255
        ether 55:28:cc:23:14:a6  txqueuelen 1000  (Ethernet)

/etc/default/isc-dhcp-server다음 줄이 있는 경우 :

DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
INTERFACESv4="wlan0"

결국, journalctl -xe나에게 다음과 같은 결과가 나왔습니다.

Jul 10 10:11:25 srv dhcpd[3296]: Wrote 0 leases to leases file.
Jul 10 10:11:25 srv dhcpd[3296]: 
Jul 10 10:11:25 srv dhcpd[3296]: No subnet declaration for wlan0 (no IPv4 addresses).
Jul 10 10:11:25 srv dhcpd[3296]: ** Ignoring requests on wlan0.  If this is not what
Jul 10 10:11:25 srv dhcpd[3296]:    you want, please write a subnet declaration
Jul 10 10:11:25 srv dhcpd[3296]:    in your dhcpd.conf file for the network segment
Jul 10 10:11:25 srv dhcpd[3296]:    to which interface wlan0 is attached. **
Jul 10 10:11:25 srv dhcpd[3296]: 
Jul 10 10:11:25 srv dhcpd[3296]: 
Jul 10 10:11:25 srv dhcpd[3296]: Not configured to listen on any interfaces!
Jul 10 10:11:25 srv dhcpd[3296]: 
Jul 10 10:11:25 srv dhcpd[3296]: If you think you have received this message due to a bug rather
Jul 10 10:11:25 srv dhcpd[3296]: than a configuration issue please read the section on submitting
Jul 10 10:11:25 srv dhcpd[3296]: bugs on either our web page at www.isc.org or in the README file
Jul 10 10:11:25 srv dhcpd[3296]: before submitting a bug.  These pages explain the proper
Jul 10 10:11:25 srv dhcpd[3296]: process and the information we find helpful for debugging..
Jul 10 10:11:25 srv dhcpd[3296]: 
Jul 10 10:11:25 srv dhcpd[3296]: exiting.
Jul 10 10:11:27 srv isc-dhcp-server[3283]: Starting ISC DHCPv4 server: dhcpdcheck syslog for diagnostics. ... failed!
Jul 10 10:11:27 srv isc-dhcp-server[3283]:  failed!
Jul 10 10:11:27 srv systemd[1]: isc-dhcp-server.service: Control process exited, code=exited status=1
Jul 10 10:11:27 srv systemd[1]: Failed to start LSB: DHCP server.

이 내 꺼야 /etc/network/interfaces:

auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
address 10.10.0.1
netmask 255.255.255.0

sudo apt-get install -f명령을 시도했지만 효과가 없습니다.

저와 비슷한 질문을 많이 봤어요(1,2,) 하지만 그 중 어느 것도 내 경우에 맞지 않았습니다. DHCP 서버를 올바르게 작동시키는 방법은 무엇입니까?

답변1

isc-dhcp-server그리고 hostapd(debian sid에서) 나를 위해 작동하지만 나는 dhcpd.conf또한 내부에 shared-network정의 option broadcast-address가 있습니다 subnet {...}.

다음과 같이 시도해 보세요.

shared-network net_wlan0 {
    subnet 10.10.0.0 netmask 255.255.255.0 {
        authoritative;
        range 10.10.0.2 10.10.0.16;
        option broadcast-address 10.10.0.255;
        option domain-name-servers 8.8.8.8, 8.8.4.4;
        option routers 10.10.0.1;
    }
}

내 안에도 다음이 있습니다 /etc/default/isc-dhcp-server.

INTERFACESv4="br0 br1 wlan0"

이는 dhcpd에게 어떤 인터페이스를 수신할지 알려주고 해당 매개변수를 사용하여 실행되도록 합니다(명령줄 끝에 있는 인터페이스에 유의하세요).

# ps h -o cmd -C dhcpd
/usr/sbin/dhcpd -4 -q -cf /etc/dhcp/dhcpd.conf br0 br1 wlan0

참고: isc-dhcp-server이전 버전의 패키지에서는 INTERFACES대신 변수를 사용했습니다 INTERFACESv4. 이 변경 사항은 올해 2월에 발생했습니다. 에 따르면 etckeeper나의 마지막 제출일은 /etc/default/isc-dhcp-server2016년 2월 10일이었습니다.


또한 로컬로 캐시된 DNS 확인자(예: unbound또는 dnsmasq다른 여러 가지 중 하나)를 실행하는 것이 좋습니다. Google의 DNS 서버를 전달자로 지정하지만 제 생각에는 로컬 캐싱이 필수적입니다. 이와 같은 프록시 서버 squid도 그만한 가치가 있습니다. 로컬 NTP 서버이므로 네트워크상의 모든 컴퓨터를 정확히 동일한 시간으로 동기화할 수 있습니다.


그런데 저는 ath9kUSB Wi-Fi 카드를 사용하고 있으며 dhcpd는 두 개의 다른 네트워크인 eth0과 eth1(실제로는 내 VM에 대해 br0과 br1로 브리지됨)도 제공하지만 이는 아무런 차이가 없습니다.

RTL 8192 기반 USB NIC를 작동시키려는 데 큰 문제가 있었고 결국 포기하고 AR9271을 구입했습니다.

0cf3:9271 Atheros Communications, Inc. AR9271 802.11n

두 USB Wi-Fi 장치 모두 각각 약 10-15달러(동일한 브랜드, 동일한 제조업체(TP-Link), 다른 칩셋)로 ​​매우 저렴하므로 8192를 작동시키려고 너무 많은 시간을 소비할 가치가 없습니다(IMO는 8192) 네트워크 카드는 정크일 수 있으며 클라이언트로서 안정적으로 작동하지도 않습니다. 제대로 작동하기 시작한 다음 연결을 끊고 중단됩니다. 다시 작동하려면 제거하고 다시 삽입해야 합니다.

답변2

마침내 해결책을 찾았습니다. 어쩌면 이 단계 중 일부는 중복될 수도 있지만 상관하지 않습니다.마침내일하다.

  1. Wi-Fi가 하드웨어로 잠겨 있을 수 있습니다. 그렇지 않은지 확인하십시오.
  2. 무선 네트워크가 다운되었을 수 있습니다. sudo ifconfig wlan0 up(또는 무선랜엑스다른 경우에는)
  3. Mac과 호스트 사이에 바인딩을 추가합니다. 결국 다음과 같습니다.

subnet 10.10.0.0 netmask 255.255.255.0 {
        interface wlan0;
        range 10.10.0.2 10.10.0.16;
        option domain-name-servers 8.8.8.8, 8.8.4.4;
        option routers 10.10.0.1;
  host wlan0 {
        hardware ethernet 40:2c:f4:36:d4:16;
        fixed-address 10.10.0.1;
  }
}

답변3

오류 메시지에 따르면 "인터페이스 wlan0이 연결된 네트워크 세그먼트에 대한 dhcpd.conf 파일에 서브넷 선언을 작성하십시오."

이는 isc-dhcpd의 알려진 기능/제한 사항입니다. DHCP 요청을 수신하는 기본 인터페이스의 네트워크 블록/서브넷을 강제로 정의해야 합니다.

인터페이스의 주소는 10.10.0.1이고 넷마스크는 255.255.255.0이므로 다음을 첫 번째 DHCP 서브넷으로 추가하세요.

subnet 10.10.0.0 netmask 255.255.255.0 {
  option routers 10.10.0.1
  option subnet-mask 255.255.255.0;
}

DHCP 데몬을 다시 시작하면 이제 작동합니다.

관련 정보