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.

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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.