dhcpcd e / etc / network / interfaces

2

Eu tenho essa configuração em / etc / network / interfaces :

auto lo
iface lo inet loopback

allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan0
#iface wlan0 inet dhcp
        iface wlan0 inet static
        address 192.168.0.110
        netmask 255.255.255.0
        network 192.168.0.1
        gateway 192.168.0.1
        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp


iface eth0 inet static
    address 192.168.0.115
    netmask 255.255.255.0
    network 192.168.0.1
    gateway 192.168.0.1

O IP estático sem fio funcionou, mas o eth0 não funcionou.

Então eu tentei fazer a configuração em /etc/dhcpcd.conf :

interface eth0
static ip_address=192.168.0.115/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

E funcionou. Estou confuso e aqui estão várias perguntas:

  1. Quando usar qual arquivo?

  2. Por que o wifi funcionou com / etc / network / interfaces mas a eth0 não?

  3. O dhcpcd tem alguma prioridade sobre / etc / network / interface ?

  4. Como verificar qual serviço tem prioridade ou algo? E qual serviço usa / etc / network / interface ?

por CuriousGuy 20.12.2015 / 15:15

2 respostas

1

Why the wifi worked with /etc/network/interfaces but the eth0 didn't?

Pelos nomes das interfaces de rede, eu suponho que você esteja falando de Raspbian Jessie ou mais velho; estes serão diferentes no Stretch e mais recentes.

Você não disse para iniciar no momento da inicialização (com auto eth0 ) ou para iniciar sempre que o hardware de rede é detectado (com allow-hotplug eth0 ).

Se nenhuma dessas linhas estiver presente em /etc/network/interfaces , a interface eth0 só será iniciada quando um comando manual ifup eth0 explícito for usado.

Does dhcpcd has somehow priority over /etc/network/interface?

No Debian e nas distribuições relacionadas, /etc/network/interfaces é geralmente destinado a ser o local principal para a configuração manual de interfaces de rede; interfaces não listadas serão controladas por NetworkManager , se estiver instalado.

No entanto, a inicialização padrão para dhcpcd5 aparentemente não inclui uma lista firme de interfaces nas quais ele pode trabalhar (para permitir hot-plugging, eu acho), e aparentemente ele pode ser usado para contornar o topo controle de nível de /etc/network/interfaces fornecendo a configuração em /etc/dhcpcd.conf .

O Stretch Raspbian está usando isso como prática padrão.

Não sou muito versado em Raspbian especificamente, mas acho que a solução deles pode fazer sentido: em um sistema com recursos mínimos, eles podem querer minimizar o número de diferentes sintaxes que suas ferramentas de configuração GUI / TUI precisarão ser. capaz de analisar. Se a sintaxe dhcpd.conf -like já estiver sendo usada em algum outro arquivo de configuração, a decisão de padronizar o uso pode permitir uma reutilização mais eficiente dos componentes do analisador de configuração.

When to use which file?

Em um sistema Debian normal, eu recomendaria principalmente usar /etc/network/interfaces e usar /etc/dhcpcd.conf apenas para itens que você não pode alcançar em /etc/network/interfaces , por exemplo, adicionando ou manipulando as opções de DHCP solicitadas / recebidas.

Mas parece que para o Raspbian Stretch e mais recente, o /etc/dhcpcd.conf é o arquivo recomendado.

    
por 19.10.2018 / 10:12
0

1) Com base na resposta à pergunta "Como configuro a rede / WiFi / IP estático" : se você estiver executando o dhcpcd e, em seguida, editar o dhcpcd.conf. Veja link para a configuração apropriada de / etc / network / interfaces quando o dhcpcd é usado.

2) Não está claro porque mudanças em / etc / network / interfaces afetaram a interface wifi e não eth0. Existem vários subsistemas envolvidos, então pode ser um urso depurar.

3) Tão perto quanto eu posso dizer que o dhcpcd efetivamente ignora / etc / network / interfaces.

4) Eu não acho que o dhcpcd ou o / etc / network / interfaces tenham prioridade, mas há um conflito resultando em comportamento imprevisível. ifupdown usa / etc / network / interfaces, e (IIRC) NetworkManager respeitará entradas 'manuais' e 'estáticas'. Uma varredura rápida de / lib / udev mostra que o udev chama ifup diretamente ou systemd ifup @ .interfaces que chama o ifup.

Na minha opinião: não está claro quais vantagens o dhcpcd tem sobre o antigo método ifupdown se estiver usando um endereço estático em qualquer interface. Eu resolvi o comportamento imprevisível com o comando sudo apt-get remove dhcpcd5

Com relação a @ Rui F Riberiro comenta que os endereços de eth0 e wlan0 estão em a mesma sub-rede: o Linux não se importa se duas interfaces estão na mesma sub-rede. A maioria dos roteadores / pontos de acesso domésticos faz a ponte entre os laptops com e sem fio, portanto, sua configuração provavelmente funcionará. Note que o linux usará a primeira rota padrão na tabela de roteamento, portanto o seu computador pode usar as interfaces wi-fi mesmo quando a ethernet estiver conectada.

    
por 02.01.2016 / 06:01