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

19

Estou aprendendo sobre redes Linux na minha estação de trabalho Kubuntu 18.04 e vejo lá as duas NetworkManagere networkd-dispatcherestão sendo executadas:

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...

NetworkManagerparece 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

Eu acredito que netplanentregaria tudo para networkdse NetworkManagernão estivesse instalado.

Há também um monte de arquivos /etc/network/, e não tenho certeza do que está lidando com eles. 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

Meu pensamento inicial, depois de pesquisar no Google, é isso NetworkManagere networkdambos estão em execução, mas netplangera uma configuração tal que apenas um está realmente fazendo alguma coisa. Mas não sei como verificar isso, descobrir a cadeia de operações ou configurá-lo para se adequar aos meus planos nefastos para o dummy0.

Pergunta: Como exatamente o NetworkManager, o networkd e o netplan estão trabalhando juntos? Em outras palavras, quando o computador é inicializado, quais processos passam e quais são os outros processos? Como ferramentas de pacotes de gosto net-tools, ifupdown2e iproute2e diretórios como /etc/network/se encaixam em tudo isso? E, finalmente, como posso descobrir isso sozinho e aprender os detalhes usando a linha de comando?

Atualização: não estou procurando 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 similar.

Oleg
fonte

Respostas:

14

systemd-networkd quando as configurações ativadas honram /etc/systemd/network

Considerando NetworkManagerque seguirá algumas regras automáticas como ele tentará se conectar a uma conexão com fio, se encontrar uma.

Ambos são ativados e desativados, pois systemdserviços e o systemd, usando o udev, cria os arquivos do dispositivo para os adaptadores de rede. Geralmente, você provavelmente não deve ter os dois ativados ao mesmo tempo, mas se o fizer, precisará tomar cuidado para que suas configurações não entrem em conflito.

netplanantes que o gerenciador de rede inicie, crie configurações baseadas em sua própria configuração. Dessa forma, o netplan é realmente uma abstração da configuração e quando usa 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 configuração de link semelhante aos gerenciadores de rede e ao antigo ifconfig. Enquanto isso net-tools, ipupdowne ifupdown2use as 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.

ifupdown2usa gráficos de dependência semelhantes ao que systemdfaz, mas com interfaces de rede. Além disso, atua como uma abstração para outras ferramentas comoiproute2

jdwolf
fonte
1
Obrigado pela comparação / contraste, mas eu estava procurando mais sobre como esses componentes interagem entre si, em um nível muito mais profundo. Por exemplo, o que exatamente acontece no kernel quando o systemd e o NetworkManager tentam controlar a mesma interface ao mesmo tempo? O que as ferramentas iproute2 / ifupdown fazem no kernel em conflito (ou evita conflitos) com o networkd / NetworkManager? Quais comandos posso usar para ver quais ferramentas fizeram o que e quais interfaces (no nível do udev / kernel)?
Oleg
A melhor explicação que vi até agora, pois há uma confusão geral com muitas explicações, alegando que o netplan é o NetworkManager ou o systemd-networkd, mas não os dois. Alguns links teriam sido úteis. Por exemplo manpages.ubuntu.com/manpages/cosmic/man5/netplan.5.html
Craig Hicks
Depois de ler isso, espero encontrar arquivos de configuração no /etc/systemd/networkUbuntu 19.10, mas com o systemd-networkd ativado e em execução, esse diretório está vazio. No entanto, encontro arquivos em /lib/systemd/network. Esta é uma nova configuração? Rogue ubuntu? Um erro?
Stephen Boston
1
@StephenBoston Isso é respondido em unix.stackexchange.com/questions/206315/…
Timothy Gu