isc-dhcp-server não está iniciando devido à falha na detecção de interface

2

Estou tentando configurar o modo AP no cartão sem fio BCM4313 .

Minha hostapd config muito básica tem esta aparência:

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

A rede é configurada com sucesso e eu posso conectar-me à minha rede. No entanto, o processo de conexão pára na obtenção do endereço IP.

Então, meu arquivo dhcpd.conf parece o mesmo que o padrão com as seguintes inserções:

# 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;
}

Minha interface wlan0 está configurada ( eu acho ) corretamente:

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)

Quando /etc/default/isc-dhcp-server tem as seguintes linhas:

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

Afinal, journalctl -xe me dá essa saída:

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.

Este é o meu /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

O comando sudo apt-get install -f já foi tentado sem efeito.

Já vi muitas perguntas semelhantes às minhas ( 1 , 2 , 3 ), mas eles não são adequados para o meu caso. Como faço para que o servidor dhcp funcione?

    
por im_infamous 10.07.2016 / 09:47

3 respostas

1

isc-dhcp-server e hostapd funcionam para mim (no sid debian) mas eu tenho minha interface wlan definida em dhcpd.conf dentro de um shared-network . Eu também tenho o option broadcast-address dentro da definição subnet {...} .

Tente algo assim:

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;
    }
}

Eu também tenho o seguinte no meu /etc/default/isc-dhcp-server :

INTERFACESv4="br0 br1 wlan0"

Isso diz ao dhcpd quais interfaces devem ser ouvidas e resulta na execução com esses argumentos (observe as interfaces no final da linha de comando).

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

NOTA: as versões anteriores do pacote isc-dhcp-server usavam uma variável INTERFACES em vez de INTERFACESv4 . Essa mudança aconteceu em fevereiro deste ano. De acordo com etckeeper , minha mais recente confirmação de /etc/default/isc-dhcp-server foi em 10 de fevereiro de 2016

Também recomendo a execução de um resolvedor de DNS de cache local (por exemplo, unbound ou dnsmasq ou um dos vários outros). Apontá-lo em servidores DNS do Google como encaminhador, mas um cache local é essencial IMO. Um servidor proxy, como squid , também vale a pena. Como é um servidor NTP local, todas as máquinas da sua rede podem ser sincronizadas ao mesmo tempo.

BTW, estou usando uma NIC wifi ath9k usb, com o dhcpd também atendendo duas outras redes, eth0 e eth1 (na verdade, conectadas para minhas VMs como br0 e br1), mas isso não deve fazer nenhuma diferença.

Eu tive grandes problemas ao tentar obter um NIC USB baseado em RTL 8192, acabei desistindo e comprando o AR9271:

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

Ambos os dispositivos Wi-Fi USB eram baratos, cerca de US $ 10-15 cada (mesma marca, mesmo fabricante (TP-Link), chipset diferente), então não valia a pena gastar muito tempo tentando fazer o 8192 funcionar (IMO A NIC baseada em 8192 é provavelmente apenas lixo, não funcionaria de forma confiável como um cliente, começaria a funcionar OK e depois soltar a conexão e travar ... precisava ser removida e reinserida antes de funcionar novamente).

    
por 10.07.2016 / 11:26
1

De acordo com a sua mensagem de erro "por favor, escreva uma declaração de sub-rede em seu arquivo dhcpd.conf para o segmento de rede ao qual a interface wlan0 está conectada."

Este é um recurso / limitação conhecido do isc-dhcpd; existe a necessidade de definir obrigatoriamente o bloco / sub-rede net da interface principal onde você está escutando as requisições DHCP.

Como sua interface tem como endereço 10.10.0.1 e máscara de rede 255.255.255.0, adicione como sua primeira sub-rede DHCP:

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

Reinicie o daemon do DHCP, ele deve funcionar agora.

    
por 10.07.2016 / 14:08
1

Finalmente, encontrei a solução. Talvez alguns desses passos sejam redudantes, mas eu não ligo porque tudo finalmente funciona.

  1. O Wi-Fi pode ser bloqueado por hardware. Verifique se não é;
  2. O Wi-Fi pode estar inativo. sudo ifconfig wlan0 up (ou wlan X em outro caso)
  3. Adicione ligação entre o mac e o host. Finalmente, parece assim:
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;
  }
}
    
por 10.07.2016 / 15:19