Máquina única com cliente DHCP em uma interface de rede e servidor DHCP em outra?

0

Eu tenho um Raspberry Pi 3 rodando uma versão do Raspbian 7 (wheezy). Esses dispositivos possuem uma porta Ethernet RJ45 (eth0) e um módulo WiFi sem fio (wlan0). Eu gostaria de configurá-los como nesta imagem:

my-rpi3-network.png

Basicamente:

  • Eu conecto o Rpi3 via eth0 com fio a um switch, e recebo Internet de outro Ubuntu, que tem Internet "Shared to other computers" em eth0 , o que torna o Ubuntu PC um servidor DHCP com endereço 10.42.0.1, atribuindo endereços aos clientes no intervalo 10.42.0.X. É por isso que eu gostaria de manter a eth0 port no Rpi3 como um cliente DHCP.
  • Eu quero tornar o wlan0 no Rpi3 um ponto de acesso - o que significa que outras máquinas podem se conectar a ele; Estou assumindo que isso significa que o Rpi3 deve ser um servidor DHCP nessa interface, então (caso contrário, ele não seria capaz de alocar um IP local para uma máquina cliente que tenha se conectado a ele por meio de WiFi).

Então, encontrei este link: link - e eu estava tentando segui-lo; primeiro meu Raspbian não tinha dhcpcd , então eu instalei:

sudo apt-get install dhcpcd5

dhcpcd5 que tem /etc/dhcpcd.conf - caso contrário, o pacote dhcpcd é, na verdade, dhcpcd3 e tem /etc/dhcpcd.sh )

No meio do tutorial, tentei fazer isso de acordo com as instruções:

$ sudo service dhcpcd restart
[FAIL] Not running dhcpcd because /etc/network/interfaces ... failed!
[FAIL] defines some interfaces that will use a DHCP client ... failed!

Meu atual /etc/network/interfaces é assim:

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet static
    address 172.24.1.1
    netmask 255.255.255.0
    network 172.24.1.0
    broadcast 172.24.1.255
#    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Outros recursos como link mencionam que aparentemente o problema é que /etc/network/interfaces define eth0 para ser um cliente DHCP:

If you see this, then to correct, open a terminal:

$ sudo nano /etc/network/interfaces

and replace dhcp with manual. The two lines from your interfaces are:

iface eth0 inet manual
iface default inet manual

No entanto, eu não quero fazer isso - porque a menos que o eth0 no Rpi3 seja um cliente DHCP, então eu não consigo fazer o Compartilhamento de Internet do Ubuntu funcionar!

Então, o que eu entendo é que é impossível executar um servidor DHCP em uma máquina que tenha uma de suas interfaces de rede definida como um cliente DHCP ?! Isso é verdade? Ou formulá-lo como uma pergunta:

  • Posso ter uma interface de rede ( eth0 ) como um cliente DHCP e outra ( wlan0 ) como um servidor DHCP, na mesma máquina - e, em caso afirmativo, como?
por Community 20.01.2017 / 13:51

2 respostas

1

Se eu fosse você, em vez de criar outro servidor DHCP e sub-rede, criaria uma ponte no seu RPi, que faz a ponte entre as redes sem fio e com fio na mesma rede.

Desta forma, os clientes sem fio recebem endereços IP diretamente do seu servidor Ubuntu.

Você pode fazer isso com a seguinte configuração em /etc/network/interfaces :

auto br0
iface br0 inet dhcp
bridge_ports wlan0 eth0

auto wlan0
iface wlan0 inet manual

auto eth0
iface eth0 inet manual

br0 será o endereço da interface de ponte, que conecta as interfaces eth0 e wlan0 . Então nós configuramos a interface para obter o endereço IP para o RPi via DHCP.

Usar uma bridge aqui em vez de uma outra camada NAT evita alguns problemas causados pelo NAT duplo.

    
por 20.01.2017 / 16:14
0

OP aqui - bem no início eu pensei que a designação manual significa o mesmo que static , mas esse parece não ser o caso; Eu encontrei:

link

To create a network interface without an IP address at all use the manual method and use pre-up and post-down commands to bring the interface up and down.

iface eth0 inet manual
   pre-up ifconfig $IFACE up
   post-down ifconfig $IFACE down 

... e então eu copiei essas linhas exatas em /etc/network/interfaces (substituindo o iface eth0 inet dhcp ) - e acabou, funciona:

$ sudo service dhcpcd restart
dhcpcd[3253]: dhcpcd not running
dhcpcd[3254]: version 6.7.1 starting
dhcpcd[3254]: all: IPv6 kernel autoconf disabled
dhcpcd[3254]: eth0: adding address feXX::...
dhcpcd[3254]: if_addaddress6: Operation not supported
dhcpcd[3254]: DUID 00:XX:XX:...
dhcpcd[3254]: eth0: IAID eb:XX:....
dhcpcd[3254]: eth0: soliciting a DHCP lease
dhcpcd[3254]: eth0: offered 10.42.0.96 from 10.42.0.1
dhcpcd[3254]: eth0: leased 10.42.0.96 for 3600 seconds
dhcpcd[3254]: eth0: adding route to 10.42.0.0/24
dhcpcd[3254]: eth0: adding default route via 10.42.0.1
dhcpcd[3254]: forked to background, child pid 3307

Então, como as coisas funcionam como esperado (e eles fizeram isso mesmo depois de uma reinicialização do RPi3), eu acho que é isso, então ...

    
por 20.01.2017 / 14:52

Tags