Como exatamente estão NetworkManager, networkd, netplan, ifupdown2 e iproute2 interagindo?

2

Estou aprendendo sobre a rede Linux na minha estação de trabalho Kubuntu 18.04, e vejo que NetworkManager e networkd-dispatcher estão em execução:

oleg@eclectic:~$ sudo ps -ef | grep -i net
root        56     2  0 Oct11 ?        00:00:00 [netns]
root      1097     1  0 Oct11 ?        00:00:02 /usr/sbin/NetworkManager --no-daemon
root      1098     1  0 Oct11 ?        00:00:00 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
root      1250     1  0 Oct11 ?        00:00:02 /usr/sbin/inetd
root      1593  1097  0 Oct11 ?        00:00:00 /sbin/dhclient -d -q -sf /usr/lib/NetworkManager/nm-dhcp-helper...

NetworkManager parece estar configurado para lidar com "tudo" por netplan :

oleg@eclectic:~$ cat /etc/netplan/01-network-manager-all.yaml 
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

Acredito que netplan entregaria tudo para networkd se NetworkManager não estivesse instalado.

Também há vários arquivos em /etc/network/ e não sei ao certo o que está sendo manipulado. Muitos pacotes parecem usar este diretório:

oleg@eclectic:~$ dpkg -S /etc/network
avahi-daemon, ifupdown2, wpasupplicant, openvpn, postfix, netbase, avahi-autoipd, wireless-tools, clamav-freshclam: /etc/network

Minhas primeiras ideias depois de alguns Googling são que NetworkManager e networkd estão ambos em execução, mas netplan gera configuração tal que apenas um está realmente fazendo alguma coisa. Mas eu não sei como eu iria verificar isso, descobrir a cadeia de operações, ou configurá-lo para se adequar aos meus planos nefastos para dummy0.

Pergunta: Como exatamente o NetworkManager, o networkd e o netplan estão trabalhando juntos? Em outras palavras, à medida que o computador inicializa, quais processos entregam o que de quais outros processos? Como as ferramentas de pacotes como net-tools , ifupdown2 e iproute2 e diretórios como /etc/network/ se encaixam em tudo isso? E finalmente, como posso descobrir isso e aprender os detalhes usando a linha de comando?

Atualização: não estou procurando por uma visão geral de alto nível. Em vez disso, quero saber como esses componentes estão interagindo, conflitando ou evitando conflitos no nível do kernel ou semelhantes.

    
por Oleg 12.10.2018 / 20:02

1 resposta

3

systemd-networkd quando ativado, respeita as configurações em /etc/systemd/network

Considerando que NetworkManager seguirá algumas regras automáticas como se tentasse se conectar a uma conexão com fio se encontrar uma.

Ambos são habilitados e desabilitados como systemd services e systemd usando o udev cria os arquivos de dispositivo para os adaptadores de rede. Geralmente, você provavelmente não deveria ter ambos ativados ao mesmo tempo, mas se precisar, tenha cuidado para que suas configurações não entrem em conflito.

netplan antes de qualquer um dos gerenciadores de rede começar a criar configurações com base em sua própria configuração. Desta forma, o netplan é realmente uma abstração de configuração e quando usa o systemd-networkd ou o NetworkManager faz parte da configuração.

iproute2 é um pacote de ferramentas para configurar interfaces de rede na linha de comando. Inclui a configuração de links semelhante aos gerenciadores de rede e o ifconfig antigo. Enquanto net-tools , ipupdown e ifupdown2 usam configurações de rede em / etc / network / interfaces para configurar e desconfigurar interfaces.

ifupdown ou suas outras versões podem ser usadas para gerenciar redes, mas não é automático, mas um serviço systemd pode ser usado para iniciá-lo na inicialização.

ifupdown2 usa gráficos de dependência semelhantes ao que o systemd faz, mas com interfaces de rede. Além disso, ele age como uma abstração para outras ferramentas como iproute2

    
por 13.10.2018 / 01:49