Configure networking and hostname resolution statically or dynamically:
Placas de Rede e configurações de IP
No RHEL7 o serviço responsável pela gestão da rede é o NetworkManager, este responsabiliza-se pela deteção e configuração automática das redes a que o computador se conecta quer fisicamente ou sem-fios, inclusive suporta configurações de VPN. Contudo, e caso já se tenha algum conhecimento em configuração manual de ficheiros, existe ainda a possibilidade de se alterar manualmente as configurações das diferentes placas de rede através dos ficheiros no diretório /etc/sysconfig/network-scripts (mais informação sobre a sintaxe pode ser encontrada aqui), contudo é necessário informar o NetworkManager das alterações através do comando:
# nmcli con reload
Para o Administrador conseguir trabalhar com o NetworkManager, pode recorrer aos seguintes comandos:
nmtui
– Gestor de redes com Text User Interface.nmcli
-Gestor de redes com Command Line Interface.
Visto que o nmtui
é através de interface “gráfico” não necessita de explicação, contudo em contrapartida o nmcli
é um utilitário bastante versátil e extenso, sendo que neste tópico iremos abordar apenas os seus básicos de utilização e as tarefas mais recorrentes a serem executados com o mesmo.
Inicialmente podemos definir que a sintaxe deste comando é a seguinte:
# nmcli [Opções] [Objecto] [Comando] [Argumentos]
As [opções] são pequenas modificações que podem ser especificas como por exemplo alteração no aspeto do output final. Os [Objectos] são os “grupos” de tecnologias ou sub-conjunto de features que com o nmcli
podemos impactar, sendo que são:
g[eneral] NetworkManager's general status and operations
n[etworking] overall networking control
r[adio] NetworkManager radio switches
c[onnection] NetworkManager's connections
d[evice] devices managed by NetworkManager
a[gent] NetworkManager secret agent or polkit agent
m[onitor] monitor NetworkManager changes
E os últimos dois grupos, [Comando] e [Argumentos] são basicamente as ações que pretendemos executar no [Objecto] escolhido.
Podemos ver informações sobre a noção configuração atual do sistema com recurso aos seguintes comandos:
# nmcli con show
NAME UUID TYPE DEVICE
ethernet-eth0 8d83684f-cd22-42cc-9fff-7704945a5c36 802-3-ethernet eth0
# nmcli dev status
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected ethernet-eth0
lo loopback unmanaged --
Ambos os comandos indicados acima devolvem informações sobre as conexões e os Devices existentes no sistema, note-se na versatilidade de interpretação do comando visto que podem ser utilizados acrónimos para nos referirmos aos objetos, neste exemplo “connections” passa a “con” e “devices” a “dev”.
Note-se que também podemos ver simplesmente as informações sobre os IP’s locais da máquina com recurso ao comando ip:
# ip a
ou
# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::0000:00:0000:0000/64 scope link
valid_lft forever preferred_lft forever
Caso seja pretendido vermos as rotas de tráfego na rede podemos fazer o seguinte:
# ip r
ou
# ip route show
default via 192.168.1.1 dev eth0 proto static metric 1024
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10
Caso seja pretendido adicionar uma nova conexão de rede no sistema devemos respeitar a seguinte sintaxe:
# nmcli con add con-name [Nome] ifname [Nome_PlacaRede] type [Tipo] ip4 [ip] gw4 [Gateway]
con
Importante frisar que este é apenas o exemplo base sendo que podem ser efetuados inúmeros tipos de configurações adicionando todos os tipos de parâmetros possíveis existentes no protocolo TCP/IP e outros (Mais informação aqui). Podemos também ver as informações disponíveis para a nossa recém criada conexão recorrendo ao seguinte comando:
# nmcli con show [Nome]
Que basicamente vais nos devolver uma extensa lista com todas as configurações disponíveis e o seu estado (ativo ou não).
Igualmente caso seja pretendido Eliminar uma conexão podemos fazer o seguinte:
# nmcli con del [Nome]
ou # nmcli con del [ID]
Caso seja pretendido apenas desativar uma determinada conexão e não elimina-la completamente usamos:
# nmcli con down [Nome]
Para voltar a ativa-la:
# nmcli con up [Nome]
Caso queríamos apenas fazer alguma modificação a alguma conexão existente podemos usar o nmcli
com a seguinte sintaxe:
# nmcli con mod [Nome] [Opções_a_Alterar] [Alteração]
Atenção: O comando nmcli con mod net-eth0 ipv4.addresses “192.168.2.10/24 192.168.2.1”onde é colocado um espaço entre o IP local e o Gateway tudo dentro de aspas, funciona apenas até o RHEL 7.0, sendo que a partir do RHEL 7.1 temos de começar a adotar uma nomenclatura diferente nomeadamente o envio de dois comando diferentes“nmcli con mod ...” para alterar o Ip e o Gateway.
Hostname e DNS
Outra configuração de rede imprescindível de ser feita em qualquer máquina é a alteração do seu Hostname e configurações de DNS quer sejam locais ou Remotas. No RHEL7 existem 3 tipos de hostnames: static, pretty e transient.
O Static (estático) hostname é o mais tradicional sendo que é aquele escolhido pelo utilizador e normalmente encontra-se armazenado no ficheiro /etc/hostname (Note-se que este ficheiro não deve ser editado manualmente), este tipo de hostname usa por default o valor de localhost. O Transient (transitório) é um hostname dinâmico gerido pelo kernel, é inicializado baseado no hostname estático contudo, pode ser alterado por outros serviços como o DCHP ou mDNS, durante o runtime da máquina. O Pretty hostname é um nome livre de base UTF-8 que serve para apresentação ao utilizador.
Para obtermos os hostnames da máquina em que estamos a trabalhar usamos o utilitário hostnamectl
:
# hostnamectl
Static hostname: centos7.example.com
Icon name: computer
Chassis: n/a
Machine ID: 8f56e45764474b668b0db97b4127a01b
Boot ID: 2ae7e6c78331414b82aa89a0ffcfa9fa0
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-123.el7.x86_64
Architecture: x86_64
Contudo caso seja pretendido apenas obter o valor existente em /etc/hostname, podemos usar apenas:
# hostname
centos7.example.com
Caso o Administrador pretenda alterar o hostname da máquina deverá usar novamente o hostnamectl
, contudo definindo a opção “set-hostname”:
# hostnamectl set-hostname [Nome]
Usando o comando acima todos os 3 tipos de hostnames serão definidos para o [Nome], contudo podem ser especificados valores individualmente através das opções “-pretty”, “-static”, “-transient”.
Tendo um Hostname definido é essencial garantirmos que a nossa máquina é reconhecida numa rede pelo seu nome e que esta conhece também as outras máquinas na rede pelos seus respetivos nomes. Para conseguirmos isso temos de primeiro perceber como é que o nosso sistema está preparado para agir em conformidade, ou seja, que métodos utiliza para fazer a Resolução de Nomes, para validarmos isso mesmo devemos consultar o ficheiro /etc/nsswitch.conf que irá conter uma linha semelhante a esta:
hosts: files dns
Ou seja, para identificação de Hosts esta máquina primeiro vai recorrer aos seus ficheiros, (resolução estática, através do /etc/hosts) e depois irá recorrer ao serviço de DNS (resolução dinâmica).
Quando um sistema recorre ao /etc/hosts ele irá procurar por linhas que respeitem o seguinte sintaxe:
[IP_Local] [Hostname+Dominio] [Hostname]
Por exemplo:
192.168.1.100 centos7.example.com centos7
Quando um sistema recorre ao serviço de DNS este consulta o ficheiro /etc/resolv.conf para saber quais os servidores na rede é que estão responsáveis por fazer a resolução de domínios. Um exemplo deste mesmo ficheiro seria:
# Generated by NetworkManager
search example.com
nameserver 192.168.1.1
Podemos ter num sistema até 3 NameServer’s, diferentes. Sendo que estes funcionam em cadeia, caso o de cima não funcione ou não consiga identificar passará para o seguinte, e este processo repetir-se-à até que haja uma resposta ou nenhuma resposta por todos os NameServer’s.
Note-se ainda que tal como especificado no ficheiro este foi gerado automaticamente pelo NetworkManager, sendo que o ficheiro não deve ser editado manualmente. Deve-se antes tomar recurso do utilitário nmcli
de forma a especificar alterações nas configurações:
# nmcli con mod [Placa_Rede] +ipv4.dns [NameServer]
Pode-se especificar “-ipv4.dns”para remover ou “ipv4.dns”para substituir um valor existente.
Pode ser conssultada uma CheatSheet de configurações de Rede aqui.
Last updated
Was this helpful?