10.02.2015

Configurar IP fixo com a linha de comandos no CentOS 7.0

Para configurar a Rede no Cent0s 7.0 começamos por aceder à consola (como root) e verificar quais as interfaces de rede disponiveis no sistema e respetivo estado:

[root@localhost ~]# nmcli device 
DEVICE  TYPE      STATE                                  CONNECTION 
virbr0  bridge    connecting (getting IP configuration)  virbr0     
enp0s3  ethernet  disconnected                           --         
lo      loopback  unmanaged 

Utilizadores menos experientes na edição de ficheiros devem utilizar a ferramenta gráfica executando o comando nmtui

[root@localhost ~]# nmtui

Neste caso, vamos optar pela abordagem mais complexa, editando ficheiros de configuração. Esses ficheiros estão na diretoria /etc/sysconfig/network-scripts .

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
ifcfg-enp0s3  ifdown-ppp       ifup-eth     ifup-sit
ifcfg-lo      ifdown-routes    ifup-ippp    ifup-Team
ifdown        ifdown-sit       ifup-ipv6    ifup-TeamPort
ifdown-bnep   ifdown-Team      ifup-isdn    ifup-tunnel
ifdown-eth    ifdown-TeamPort  ifup-plip    ifup-wireless
ifdown-ippp   ifdown-tunnel    ifup-plusb   init.ipv6-global
ifdown-ipv6   ifup             ifup-post    network-functions
ifdown-isdn   ifup-aliases     ifup-ppp     network-functions-ipv6
ifdown-post   ifup-bnep        ifup-routes

Vamos editar o ficheiro de configuração do device enp0s3 do tipo Ethernet:

[root@localhost network-scripts]# vi ifcfg-enp0s3
HWADDR=08:00:27:F7:82:E0
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=8b0e2074-7a9e-4830-b3f5-232d5710fbe1
ONBOOT=no

Para configurar o sistema para utilizar o serviço de DHCP confirmar ou modificar os seguintes campos:

BOOTPROTO=dhcp
ONBOOT=yes

Gravar as alterações, e executar o comando que inicia o serviço de rede com as novas configurações:

[root@localhost network-scripts]# systemctl restart network

Podemos verificar o endereçamento obtido com o comando:

root@localhost network-scripts]# ip a
1: lo:  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: enp0s3:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:f7:82:e0 brd ff:ff:ff:ff:ff:ff
    inet 172.16.1.102/24 brd 172.16.1.255 scope global dynamic enp0s3
       valid_lft 5135sec preferred_lft 5135sec
    inet6 fe80::a00:27ff:fef7:82e0/64 scope link 
       valid_lft forever preferred_lft forever
3: virbr0:  mtu 1500 qdisc noqueue state DOWN 
    link/ether 9a:35:37:ef:7d:ca brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever

Nota: Apesar de considerado obsoleto, é possível recorrer ao comando ifconfig.

Para uma configuração estática, editar de novo o ficheiro ifcfg-enp0s3 e modificar os campos (se necessário) conforme descrito:

BOOTPROTO=static
ONBOOT=yes

E no fim do ficheiro, adicionar os campos:

IPADDR=172.16.1.200
NETMASK=255.255.255.0
GATEWAY=172.16.1.254
DNS1=172.16.1.254

Gravar o ficheiro e reeiniciar o serviço de rede:

[root@localhost network-scripts]# systemctl restart network

Verificar de novo a conectividade e a configuração da interface com os comandos supracitados. (ping, ip a, ifconfig...).

Pode existir a necessidade de configurar o ficheiro /etc/sysconfig/network onde é possível configurar o HOSTNAME e o DNS.

[root@localhost network-scripts]# vi /etc/sysconfig/network

# Created by anaconda

HOSTNAME=worstation01.xyz.com
DNS1=172.16.1.254
DNS2=208.67.220.220
SEARCH=xyz.com

Reiniciar o serviço.