isc-dhcp-server em conflito com / etc / network / interfaces - Várias instâncias correspondem à mesma sub-rede

0

Estou executando o Raspbian e tentando executar o cmd serviço isc-dhcp-server start . Isso retorna a msg

[FAIL] Starting ISC DHCP server: dhcpd[....] check syslog for diagnostics. ... failed!

meu arquivo / var / sys / log contém

dhcpd: Wrote 0 leases to leases file.
dhcpd: Multiple interfaces match the same subnet: wlan0 eth0
dhcpd: Multiple interfaces match the same shared network: wlan0 eth0
dhcpd:
dhcpd: No subnet declaration for wlan1 (no IPv4 addresses).
dhcpd: ** Ignoring requests on wlan1.  If this is not what
dhcpd:    you want, please write a subnet declaration
dhcpd:    in your dhcpd.conf file for the network segment
dhcpd:    to which interface wlan1 is attached. **
dhcpd:
dhcpd:
dhcpd: Not configured to listen on any interfaces!

Meu / etc / network / interfaces contém

auto lo
iface lo inet loopback


iface wlan1 inet static
        address 192.168.42.1
        netmask 255.255.255.0


iface eth0 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        gateway 192.168.1.1

allow-hotplug wlan0

iface wlan0 inet static
        address 192.168.1.200
        netmask 255.255.255.0
        gateway 192.168.1.1

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

up iptables-restore < /etc/iptables.ipv4.nat

Quebrando o log de erros

Várias interfaces correspondem à mesma sub-rede: wlan0 eth0

A sub-rede é rotulada como endereço dentro do arquivo / etc / network / interfaces ? Em caso afirmativo, eth0 tem endereço 192.168.1.100 e wlan0 tem endereço 192.168.1.200 . Estes são diferentes.

Além disso. Quando eu reorganizo meu arquivo / etc / network / interfaces e ordeno os blocos da seguinte forma

auto lo
iface lo inet loopback

iface eth0 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        gateway 192.168.1.1

allow-hotplug wlan0

iface wlan0 inet static
        address 192.168.1.200
        netmask 255.255.255.0
        gateway 192.168.1.1

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

iface default inet dhcp

iface wlan1 inet static
        address 192.168.42.1
        netmask 255.255.255.0

up iptables-restore < /etc/iptables.ipv4.nat

O erro no meu arquivo var / sys / log muda para apenas

dhcpd: Wrote 0 leases to leases file.
dhcpd: No subnet declaration for wlan1 (no IPv4 addresses).
dhcpd: ** Ignoring requests on wlan1.  If this is not what
...

Por que as interfaces anteriores ** dhcpd: Multiple correspondem à mesma sub-rede: wlan0 eth0 ** desaparece apenas por causa da ordem deste arquivo? se eles corresponderem à mesma sub-rede, eles devem sempre corresponder independentemente da declaração correta?

    
por JohhnyBaggins 02.09.2015 / 15:46

1 resposta

1

As sub-redes para eth0 e wlan0 têm o mesmo endereço de rede / sub-rede.

O endereço de sub-rede (como o endereço de rede) para eth0 nas interfaces é 192.168.1 (a.k.a 192.168.1.0 ). É determinado tomando o "lógico e" do "endereço" e a "máscara de rede". O "endereço" é 192.168.1.100 e a "netmask" é 255.255.255.0 .

Em notação decimal, o valor das localizações dos dígitos é ... 10000,1000,100,10,1.

Na notação binária, os valores são ... 128, 64, 32, 16, 8, 4, 2, 1.

                           128 64 32 16 8 4 2 1 
 Since 192=128+64  it is     1  1  0  0 0 0 0 0  or 11000000  in binary.
 Since 168=128+32+8 it is    1  0  1  0 1 0 0 0  or 10101000  in binary.
 Since 1=1  it is            0  0  0  0 0 0 0 1  or 00000001  in binary.
 Since 100=64+32+4  it is    0  1  1  0 0 1 0 0  or 01100100  in binary.
 Since 200=128+64+8 it is    1  1  0  0 1 0 0 0  or 11001000  in binary.
 255=128+64+32+16+8+4+2+1 or 1  1  1  1 1 1 1 1  or 11111111  in binary.

Para encontrar a sub-rede ou endereço de rede, devemos fazer um "lógico e" do "endereço" e "netmask". O "lógico e" de 0 e 0 = 0, 1 e 0 = 0, 0 e 1 = 0 e, finalmente, 1 e 1 = 1. Portanto, 192.168.1.100 logical e 255.255.255.0 é

                  11000000.10101000.00000001.01100100
 "logical and"    11111111.11111111.11111111.00000000  gives
                  11000000.10101000.00000001.00000000 which equals
                       192.     168.       1.       0  or 192.168.1.0 

Da mesma forma, 192.168.1.200 logical e 255.255.255.0 é

                  11000000.10101000.00000001.11001000
 "logical and"    11111111.11111111.11111111.00000000  gives
                  11000000.10101000.00000001.00000000 which equals
                       192.     168.       1.       0  or 192.168.1.0 

Assim, as duas sub-redes têm o mesmo endereço e, portanto, são a mesma sub-rede.

A correção é alterar 192.168.1.200 para 192.168.2.200 ou para alterar 192.168.1.100 para 192.168.2.100 .

Para um exemplo relacionado, consulte Servidor DHCP: oferece diferentes endereços de sub-rede para diferentes interfaces

    
por 29.09.2015 / 02:06