NetworkManager-1.44.2
Introdução ao NetworkManager
"NetworkManager" é um conjunto de
ferramentas cooperativas que tornam a operação interativa de
dispositivos via rede de intercomunicação simples e direta. Quer
você use "WiFi", com fio, "3G" ou "Bluetooth", o "NetworkManager"
te permite mudar rapidamente de uma rede de intercomunicação para
outra: depois que uma rede de intercomunicação tiver sido
configurada e conectada uma vez, ela poderá ser detectada e
conectada novamente automaticamente na próxima vez que estiver
disponível.
Esse pacote é conhecido por construir e funcionar corretamente
usando uma plataforma LFS 12.1.
Nota
Certifique-se de desabilitar o serviço "systemd-networkd" ou
configurá-lo para não gerenciar as interfaces que você quiser
gerenciar com o "NetworkManager".
Informação do Pacote
Dependências do NetworkManager
Exigidas
libndp-1.8
Recomendadas
cURL-8.6.0,
dhcpcd-10.0.6, gobject-introspection-1.78.1,
iptables-1.8.10, libpsl-0.21.5, newt-0.52.24 (para nmtui), nss-3.98, Polkit-124 (tempo de execução), PyGObject-3.46.0, Systemd-255, Vala-0.56.14 e
wpa_supplicant-2.10 (tempo de execução,
construído com suporte D-Bus)
Opcionais
BlueZ-5.72, D-Bus Python-1.3.2 (para a suíte de
teste), GnuTLS-3.8.3 (pode ser usado em vez de nss-3.98),
GTK-Doc-1.33.2, jansson-2.14,
ModemManager-1.18.12, (Qt-5.15.12 ou componentes-qt-5.15.12 com qtdoc)
(para exemplos), UPower-1.90.2, Valgrind-3.22.0, dnsmasq, firewalld, libaudit,
libteam,
mobile-broadband-provider-info, PPP e RP-PPPoE
Configuração do Núcleo
Se desejar executar os testes, [então] verifique se pelo menos as
seguintes opções estão habilitadas na configuração do núcleo. Essas
opções foram consideradas necessárias, mas podem não ser
suficientes. Recompile o núcleo se necessário:
[*] Networking support ---> [NET]
Networking options --->
[*] TCP/IP networking [INET]
<*/M> IP: tunneling [NET_IPIP]
<*/M> IP: GRE demultiplexer [NET_IPGRE_DEMUX]
<*/M> IP: GRE tunnels over IP [NET_IPGRE]
<*> The IPv6 protocol ---> [IPV6]
<*/M> IPv6: IPv6-in-IPv4 tunnel (SIT driver) [IPV6_SIT]
<*/M> IPv6: GRE tunnel [IPV6_GRE]
[*] IPv6: Multiple Routing Tables [IPV6_MULTIPLE_TABLES]
[*] MPTCP: Multipath TCP [MPTCP]
[*] MPTCP: IPv6 support for Multipath TCP [MPTCP_IPV6]
<*/M> 802.1Q/802.1ad VLAN Support [VLAN_8021Q]
[*] QoS and/or fair queueing ---> [NET_SCHED]
<*> Stochastic Fairness Queueing (SFQ) [NET_SCH_SFQ]
<*> Token Bucket Filter (TBF) [NET_SCH_TBF]
<*> Fair Queue Controlled Delay AQM (FQ_CODEL) [NET_SCH_FQ_CODEL]
<*> Ingress/classifier-action Qdisc [NET_SCH_INGRESS]
Device Drivers --->
[*] Network device support ---> [NETDEVICES]
[*] Network core driver support [NET_CORE]
<*/M> Bonding driver support [BONDING]
<*/M> Dummy net driver support [DUMMY]
<*/M> Ethernet team driver support ---> [NET_TEAM]
<*/M> MAC-VLAN support [MACVLAN]
<*/M> MAC-VLAN based tap driver [MACVTAP]
<*/M> IP-VLAN support [IPVLAN]
<*/M> Virtual eXtensible Local Area Network (VXLAN) [VXLAN]
<*/M> Virtual ethernet pair device [VETH]
<*/M> Virtual Routing and Forwarding (Lite) [NET_VRF]
Instalação do NetworkManager
Se "Qt-5.15.12" estiver instalado e os exemplos
baseados em "Qt" forem desejados, [então] corrija dois arquivos
"meson.build":
sed -e 's/-qt4/-qt5/' \
-e 's/moc_location/host_bins/' \
-i examples/C/qt/meson.build &&
sed -e 's/Qt/&5/' \
-i meson.build
Corrija os conjuntos sequenciais de comandos "Python", de forma que
eles usem "Python 3":
grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/'
Instale o NetworkManager
executando os seguintes comandos:
mkdir build &&
cd build &&
CXXFLAGS+="-O2 -fPIC" \
meson setup .. \
--prefix=/usr \
--buildtype=release \
-Dlibaudit=no \
-Dnmtui=true \
-Dovs=false \
-Dppp=false \
-Dselinux=false \
-Dqt=false \
-Dsession_tracking=systemd \
-Dmodem_manager=false &&
ninja
Uma sessão gráfica já ativa com endereço de barramento é necessária
para executar os testes. Para testar os resultados, emita
"ninja test".
Uns poucos testes possivelmente falhem, dependendo das opções de
núcleo habilitadas.
Agora, como o(a) usuário(a) "root
":
ninja install &&
mv -v /usr/share/doc/NetworkManager{,-1.44.2}
Se você não passou a opção "-Ddocs=true
" para "meson", [então] você consegue
instalar as páginas de manual pré geradas com (como o(a) usuário(a)
"root
"):
for file in $(echo ../man/*.[1578]); do
section=${file##*.} &&
install -vdm 755 /usr/share/man/man$section
install -vm 644 $file /usr/share/man/man$section/
done
Se você não tiver usado -Ddocs=true
, a
documentação HTML pré gerada também pode ser instalada com (como
o(a) usuário(a) root
):
cp -Rv ../docs/{api,libnm} /usr/share/doc/NetworkManager-1.44.2
Explicações do Comando
CXXFLAGS="-O2 -fPIC"
: Essas opções do
compilador são necessárias para construir exemplos baseados em
"Qt5".
--buildtype=release
:
Especifique um tipo de construção adequado para lançamentos
estáveis do pacote, pois o padrão possivelmente produza binários
não otimizados.
-Ddocs=true
: Use essa chave para
habilitar a construção de páginas de manual e documentação se
"GTK-Doc-1.33.2" estiver instalado.
-Dnmtui=true
: Essa chave
habilita construir nmtui.
-Dovs=false
: Essa chave
desabilita a integração do Open vSwitch porque ela precisa de
jansson-2.14. Remova-a se você tiver jansson-2.14 instalado em teu sistema.
-Dmodem_manager=false
: Essa
chave é exigida se o ModemManager
não estiver instalado. Omita essa chave se você tiver construído
ModemManager e mobile-broadband-provider-info.
-Dsession_tracking=systemd
:
Essa chave é usada para configurar o "systemd-logind" como o aplicativo
padrão para rastreamento de sessão.
-Dppp=false
: Essa chave
desabilita o suporte a PPP no
NetworkManager, já que os
aplicativos necessários para isso não estão instalados. Remova essa
chave se você precisar de suporte a PPP e tiver o PPP instalado.
-Dlibaudit=no
e -Dselinux=false
: Essa chave
desabilita o suporte para libaudit e SELinux, vez que ele(a) não é
usado(a) no BLFS.
-Dqt=false
: Essa chave
desabilita os exemplos QT. Omita
se você tiver o Qt disponível e
desejar instalar os exemplos.
-Dcrypto=gnutls
: Use essa chave se você
tiver o GnuTLS instalado e quiser usá-lo para operações de
certificados e chaves no NetworkManager, em vez de usar o NSS (o
padrão).
-Dcrypto=null
: Use essa chave se nem o
NSS nem o GnuTLS estiverem instalados, mas você quiser construir o
NetworkManager de qualquer maneira. Essa chave fará com que o
NetworkManager careça de alguns recursos (por exemplo, 802.1X).
-Dsuspend_resume=upower
: Use essa chave
se você tiver UPower-1.90.2 instalado e quiser usá-lo (em vez
de Systemd-255) para suspender e retomar o
suporte.
Configurando o NetworkManager
Arquivos de Configuração
/etc/NetworkManager/NetworkManager.conf
Informação de Configuração
Para o "NetworkManager"
funcionar, pelo menos um arquivo de configuração mínima precisa
estar presente. Tal arquivo não é instalado com "make install". Emita o seguinte
comando como o(a) usuário(a) "root
" para criar um arquivo "NetworkManager.conf
" mínimo:
cat >> /etc/NetworkManager/NetworkManager.conf << "EOF"
[main]
plugins=keyfile
EOF
Esse arquivo não deveria ser modificado diretamente pelos(as)
usuários(as) do sistema. Em vez disso, mudanças específicas do
sistema deveriam ser feitas usando arquivos de configuração no
diretório "/etc/NetworkManager/conf.d
".
Para permitir que o "Polkit" gerencie autorizações, adicione o
seguinte arquivo de configuração:
cat > /etc/NetworkManager/conf.d/polkit.conf << "EOF"
[main]
auth-polkit=true
EOF
Para usar algo diferente do cliente DHCP integrado (recomendado
se usar somente o nmcli), use a seguinte
configuração (os valores válidos incluem ou dhcpcd ou internal):
cat > /etc/NetworkManager/conf.d/dhcp.conf << "EOF"
[main]
dhcp=
dhcpcd
EOF
Para evitar que o "NetworkManager" atualize o arquivo
"/etc/resolv.conf
", adicione o
seguinte arquivo de configuração:
cat > /etc/NetworkManager/conf.d/no-dns-update.conf << "EOF"
[main]
dns=none
EOF
Para opções adicionais de configuração, veja-se "man 5 NetworkManager.conf".
Para permitir que usuários(as) regulares configurem conexões de
rede de intercomunicação, você deveria adicioná-los(as) ao grupo
"netdev
" e criar uma regra do
"polkit" que conceda acesso.
Execute os seguintes comandos como o(a) usuário(a) "root
":
groupadd -fg 86 netdev &&
/usr/sbin/usermod -a -G netdev <nome_usuário(a)>
cat > /usr/share/polkit-1/rules.d/org.freedesktop.NetworkManager.rules << "EOF"
polkit.addRule(function(action, subject) {
if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("netdev")) {
return polkit.Result.YES;
}
});
EOF
Unidade do systemd
Para iniciar o processo de segundo plano NetworkManager na
inicialização, habilite a unidade do systemd instalada
anteriormente executando o seguinte comando como o(a) usuário(a)
root
:
Nota
Se usar o "Network Manager"
para gerenciar uma interface, [então] qualquer configuração
anterior para essa interface deveria ser removida e a interface
ser desativada antes de iniciar o "Network Manager".
systemctl enable NetworkManager
Começando na versão 1.11.2 do "NetworkManager", uma unidade do "systemd"
chamada "NetworkManager-wait-online.service
" está
habilitada, a qual é usada para evitar que serviços que exigem
conectividade de rede de intercomunicação iniciem até que o
"NetworkManager" estabeleça uma
conexão. Para desabilitar esse comportamento, execute o seguinte
comando como o(a) usuário(a)" root
":
systemctl disable NetworkManager-wait-online
Conteúdo
Aplicativos Instalados:
NetworkManager, nmcli, nm-online, nmtui e
simbolicamente vinculado ao nmtui: nmtui-connect, nmtui-edit e
nmtui-hostname
Bibliotecas Instaladas:
libnm.so e vários módulos sob
/usr/lib/NetworkManager
Diretórios Instalados:
/etc/NetworkManager, /usr/include/libnm,
/usr/lib/NetworkManager, /usr/share/doc/NetworkManager-1.44.2,
/usr/share/gtk-doc/html/{libnm,NetworkManager} (se a
documentação for construída) e /var/lib/NetworkManager
Descrições Curtas
nmcli
|
é uma ferramenta de linha de comando para controlar o
"NetworkManager" e obter
a situação dele
|
nm-online
|
é um utilitário para determinar se você está online
|
nmtui
|
é uma interface interativa de usuário(a) baseada em
"Ncurses" para o "nmcli"
|
nmtui-connect
|
é uma interface interativa de usuário(a) baseada em
"Ncurses" para ativar/desativar conexões
|
nmtui-edit
|
é uma interface interativa de usuário(a) baseada em
"Ncurses" para editar conexões
|
nmtui-hostname
|
é uma interface interativa de usuário(a) baseada em
"Ncurses" para editar o nome do dispositivo
|
NetworkManager
|
é o processo de segundo plano de gerenciamento de rede de
intercomunicação
|
libnm.so
|
contém funções usadas pelo "NetworkManager"
|