Pular para o conteúdo

 

Introdução

A cada dia que passa torna-se mais e mais comum termos uma rede de computadores presente em nosso ambiente, seja de trabalho, de laser, e mesmo doméstico.

Em qualquer dessas situações a acessibilidade com a Internet é mandatória, no entanto, por vezes certo nível de isolamento torna-se necessário pelos mais diversos motivos: segurança de dados; restrição de acesso a sites indesejados; isolamento de máquinas sensíveis a ataques de hackers; etc.

Para dar sustentação para soluções a essas necessidades algumas máquinas tem de ser equipadas com mais de uma interface de rede, que por sua vez exigirão configurações distintas.

É comum ser necessário uma máquina dessas necessitar de uma interface configurada para utilização de IP fixo e outra de IP dinâmico. Este artigo abordará a configuração de uma máquina com Arch Linux, que supra exatamente esta necessidade, sendo extensível a mesma solução para mais interface na mesma máquina quando necessário.

 

Configuração

Prévias da Instalação

O Arch Linux admite um utilitário de linha de comando para operações de inspeção e configuração de rede denominado netctl que trabalha conjuntamente ao systemd.

Inicialmente deve ser instalado o pacote do netctl, para tanto utiliza-se o comando mostrado a seguir:

Código  1: Instalação do pacote netctl

$ sudo pacman -S netctl

Listagem 1: Instalação do pacote netctl

$ sudo pacman -S netctl
[sudo] senha para administrator:
resolvendo dependências...
procurando por pacotes conflitantes...
Pacotes (1) netctl-1.18-1
Tamanho total instalado:  0,09 MiB

:: Continuar a instalação? [S/n] s
(1/1) verificando chaves no chaveiro          [##################] 100%
(1/1) verificando integridade do pacote       [##################] 100%
(1/1) carregando arquivos do pacote           [##################] 100%
(1/1) verificando conflitos de arquivo        [##################] 100%
(1/1) verificando espaço em disco disponível  [##################] 100%

:: Processando alterações do pacote...
(1/1) instalando netctl                       [##################] 100%
Dependências opcionais para netctl
    dialog: for the menu based wifi assistant
    dhclient: for DHCP support (or dhcpcd)
    dhcpcd: for DHCP support (or dhclient) [instalado]
    wpa_supplicant: for wireless networking support [instalado]
    ifplugd: for automatic wired connections through netctl-ifplugd
    wpa_actiond: for automatic wireless connections through netctl-auto
    ppp: for PPP connections
    openvswitch: for Open vSwitch connections

:: Executando hooks pós-transação...
(1/2) Reloading system manager configuration...
(2/2) Arming ConditionNeedsUpdate...

 

Os arquivos de configuração de rede ficam na árvore /etc/netctl, e no subdiretório examples há algo entorno de 20 modelos de arquivos de configuração, cada um para uma categoria de situações possíveis como: conexão ethernet de IP dinâmico, ethernet de IP estático, conexão sem fio com segurança WPA de IP estático e etc. Verifique a variedade com o comando mostrado abaixo:

Código  2: Verificando modelo de configuração

$ ls /etc/netcl/examples/

Observe as possibilidades, neste artigo serão utilizados os modelos ethernet-dhcp e ethernet-static na configuração de duas interfaces de rede do sistema.

Listagem 2: Modelos disponíveis em netctl

$ ls /etc/netctl/examples/
bonding          macvlan-dhcp    tunnel         wireless-wep
bridge           macvlan-static  tuntap         wireless-wpa
ethernet-custom  mobile_ppp      vlan-dhcp      wireless-wpa-config
ethernet-dhcp    openvswitch     vlan-static    wireless-wpa-configsection
ethernet-static  pppoe           wireless-open  wireless-wpa-static

 

A seguir é mandatório determinar os nomes das interfaces de rede disponíveis no sistema. Com o comando a seguir obtém-se uma relação das interfaces reconhecidas presentes.

Código  3: Examinando interface de rede instaladas

$ ip link

E resposta recebe-se um relatório com esta aparência

Listagem 3: Relatório de interfaces de rede

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:e1:48:19 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:26:74:49 brd ff:ff:ff:ff:ff:ff


Observa-se que as interfaces recebem a nova nomenclatura de interfaces previsíveis[1] no plano de instalação pode/deve ser prevista a aplicação de cada uma das interfaces, conforme exemplificado a seguir

Tabela 1: Plano de instalação e configuração

Interface Denominação Tipo Aplicação
1 enp0s3 IP Fixo Rede local como servidor
2 enp0s8 IP Dinâmico Rede externa e/ou Internet

 

Desta forma a interface enp0s3 será configurada para operar em IP fixo e a interface enp0s8 para operar em IP dinâmico.

Configuração da Interface com IP Fixo

Tomando por base o modelo de arquivo de configuração para ethernet estático (/etc/netctl/examples/ethernet-static) cria-se em /etc/netctl/ um arquivo para a configuração da interface a ser ajustada, segundo o plano de instalação enp0s3. Constitui boa prática denominar o arquivo com o “nome” da interface. Conteúdo do arquivo enp0s3[2].

Listagem 4: Conteúdo do arquivo de configuração da interface enp0s3

Description='Conexao estatica basica de ethernet'
Interface=enp0s3
Connection=ethernet
IP=static
Address=('192.168.0.9/24')
Gateway=('192.168.0.1')
DNS=('8.8.8.8' '8.8.4.4' '192.168.0.1')
TimeoutUp=10
SkipNoCarrier=yes

Nota: A linha SkipNoCarrier consta para não sinalizar falha caso o cabo não esteja conectado.

O valor da cláusula Interface= é a designação da interface sendo configurada.

Para iniciar automaticamente a interface no momento de boot efetuar o primeiro comando da sequência abaixo, e para iniciar imediatamente a interface efetuar o segundo comando da sequência.

Código  4: Comandos de habilitação e iniciação da interface de rede enp0s3

$ sudo netctl enable enp0s3
$ sudo netctl start enp0s3

Desativação do serviço DHCP cliente

A parada e desabilitação do serviço DHCP se efetua com os comandos abaixo.

Código  5: Sequência de comandos de desativação do serviço cliente DHCP

$ sudo systemctl stop dhcpcd
$ sudo systemctl disable dhcpcd

Configuração da Interface com IP Dinâmico

Tomando por base o modelo de arquivo de configuração para ethernet dinâmico (/etc/netctl/examples/ethernet-dhcp) cria-se em /etc/netctl/ um arquivo para a configuração da interface a ser ajustada, segundo o plano de instalação enp0s8. Constitui boa prática denominar o arquivo com o “nome” da interface. Conteúdo do arquivo enp0s8.

Listagem 5: Conteúdo do arquivo de configuraçãoda interface enp0s8

Description='A basic dhcp ethernet connection'
Interface=enp0s8
Connection=ethernet
IP=dhcp
#DHCPClient=dhcpcd
#DHCPReleaseOnStop=no
## for DHCPv6
#IP6=dhcp
#DHCP6Client=dhclient
## for IPv6 autoconfiguration
#IP6=stateless
SkipNoCarrier=yes

Nota: A linha SkipNoCarrier consta para não sinalizar falha caso o cabo não esteja conectado.

O valor da cláusula Interface= é a designação da interface sendo configurada.

Para iniciar automaticamente a interface no momento de boot efetuar o primeiro comando da sequência abaixo, e para iniciar imediatamente a interface efetuar o segundo comando da sequência.

Código  6: Comandos de habilitação e iniciação da interface de rede enp0s8

$ sudo netctl enable enp0s8
$ sudo netctl start enp0s8

Reiniciar e confirmar configurações

Após cumpridas as etapas referidas acima, reinicie o sistema para comprovar com o comando ip addr que a configuração efetuada é ativada no boot do sistema.

Abaixo o aspecto esperado do relatório do comando.

Listagem 6: Relatório da configuração de interfaces de rede

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
 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: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
 link/ether 08:00:27:e1:48:19 brd ff:ff:ff:ff:ff:ff
 inet 192.168.0.9/24 brd 192.168.0.255 scope global enp0s3
 valid_lft forever preferred_lft forever
 inet6 2804:14c:113:8052:a00:27ff:fee1:4819/64 scope global dynamic mngtmpaddr
    valid_lft 3599sec preferred_lft 3599sec
 inet6 fe80::a00:27ff:fee1:4819/64 scope link
    valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
 link/ether 08:00:27:26:74:49 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.87/24 brd 192.168.0.255 scope global noprefixroute enp0s8
    valid_lft forever preferred_lft forever
 inet6 2804:14c:113:8052:a00:27ff:fe26:7449/64 scope global dynamic mngtmpaddr
    valid_lft 3599sec preferred_lft 3599sec
 inet6 fe80::a00:27ff:fe26:7449/64 scope link
    valid_lft forever preferred_lft forever

 

Conclusão

Com as configurações esplanadas é possível gerir sistemas com inúmeras interfaces de rede, viabilizando a constituição de diversas aplicações que necessitam mais de uma interface de rede na máquina, como firewalls, proxy-servers, gateways, entre tantas outras possibilidades.

 

Referências

Arch Linux. ArckWiki. Disponível em <https://wiki.archlinux.org/index.php/Main_page>, acesso em 10 de out. de 2018

BRITO, Samuel Henrique Bucke. Nova nomenclatura de Interfaces Previsíveis no Linux. BLOG LabCisco, 2015.  Disponível em <http://labcisco.blogspot.com/2015/11/nova-nomenclatura-de-interfaces.html>, acesso em 10 de out. de 2018

GKIOKA, Ioanna; JAHODA, Mirek; HERVES, Jana; et. al. 8.3. UNDERSTANDING THE PREDICTABLE NETWORK INTERFACE DEVICE NAMES. In: Networking Guide. Red Hat Customer Portal. Disponível em <https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-understanding_the_predictable_network_interface_device_names>, acesso em 11 de out. de 2018

KUMAR, Senthil. How To Configure Static And Dynamic IP Address In Arch Linux. OSTechNix, 2017. Disponível em <https://www.ostechnix.com/configure-static-dynamic-ip-address-arch-linux/>, acesso em 10 de out. de 2018


[1] Predictable Network Interfaces Names, vide mais informações em https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-understanding_the_predictable_network_interface_device_names

[2] enp0s3 – onde en corresponde a ethernet, p0 coresponde a pci bus 0, e s3 corresponde a  slot 3