Criar Interfaces VLAN no Linux usando o comando ip

CompTIABeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como configurar interfaces de Virtual LAN (VLAN) em um sistema Linux usando o comando ip do pacote iproute2. Você ganhará experiência prática na criação de redes logicamente separadas em uma única interface física, uma habilidade fundamental para administração e segmentação de rede. Este processo permite isolar o tráfego de rede e melhorar a segurança e o desempenho sem hardware físico adicional.

Você começará preparando o sistema, o que envolve a instalação das utilidades necessárias em user-space para vlan e o carregamento do módulo do kernel 802.1q para habilitar a marcação de VLAN. Após a configuração inicial, você identificará a interface de rede principal, criará duas novas interfaces virtuais para VLAN 10 e VLAN 20 e atribuirá um endereço IP estático a cada uma. Finalmente, você usará o comando ip a para verificar se as interfaces VLAN foram criadas com sucesso e estão ativas no sistema.

Instalar Utilitários VLAN e Carregar o Módulo do Kernel 802.1q

Nesta etapa, você preparará seu ambiente Linux para a configuração de VLAN. Isso envolve duas ações principais: instalar as ferramentas necessárias em user-space e carregar o módulo do kernel necessário.

Uma Virtual LAN (VLAN) permite que você crie redes logicamente separadas na mesma infraestrutura de rede física. Para gerenciar VLANs no Linux, você precisa do pacote vlan, que fornece ferramentas de linha de comando. Além disso, o kernel precisa entender o tráfego com marcação VLAN, o que é habilitado pelo módulo do kernel 8021q, nomeado em homenagem ao padrão de rede IEEE 802.1Q para VLANs.

Primeiro, vamos garantir que sua lista de pacotes esteja atualizada e, em seguida, instalar o pacote vlan. Todos os comandos serão executados no terminal.

  1. Atualize o índice de pacotes em seu sistema:

    sudo apt update
    
  2. Instale o pacote vlan. O sinalizador -y confirma automaticamente a instalação.

    sudo apt install -y vlan
    

    Você deverá ver uma saída indicando que o pacote está sendo instalado.

    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    The following NEW packages will be installed:
      vlan
    0 upgraded, 1 newly installed, 0 to remove and XX not upgraded.
    Need to get XX.X kB of archives.
    After this operation, XXX kB of additional disk space will be used.
    Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 vlan X.X-X [XX.X kB]
    Fetched XX.X kB in Xs (XX.X kB/s)
    Selecting previously unselected package vlan.
    (Reading database ... XXXXXX files and directories currently installed.)
    Preparing to unpack .../vlan_X.X-X_amd64.deb ...
    Unpacking vlan (X.X-X) ...
    Setting up vlan (X.X-X) ...
    

Agora que as ferramentas estão instaladas, você precisa carregar o módulo do kernel 8021q. Este módulo permite que o kernel Linux processe pacotes de rede com marcações VLAN.

  1. Carregue o módulo 8021q usando o comando modprobe:

    sudo modprobe 8021q
    

    Este comando normalmente não produz saída se for bem-sucedido.

  2. Para confirmar que o módulo foi carregado corretamente, você pode listar todos os módulos carregados com lsmod e filtrar a saída para 8021q usando grep.

    lsmod | grep 8021q
    

    A saída deve mostrar o módulo 8021q, confirmando que ele está ativo no kernel.

    8021q                  36864  0
    garp                   20480  1 8021q
    mrp                    20480  1 8021q
    

Seu sistema está agora pronto para a configuração de VLAN. Na próxima etapa, você identificará sua interface de rede e começará a criar VLANs.

Identificar a Interface de Rede Primária

Nesta etapa, você identificará o nome da interface de rede principal em seu sistema. As interfaces VLAN são interfaces virtuais que são logicamente anexadas a uma interface de rede física. Portanto, você deve primeiro conhecer o nome desta interface física "pai" antes de poder criar quaisquer VLANs nela.

Usaremos o comando ip, que é o padrão moderno para configuração de rede no Linux. Especificamente, o comando ip a (ou ip addr) exibe informações sobre todas as interfaces de rede.

  1. Abra um terminal. Seu diretório de trabalho atual é ~/project.

  2. Para listar todas as interfaces de rede e suas configurações, digite o seguinte comando e pressione Enter:

    ip a
    

Você verá uma lista de todas as interfaces de rede em seu sistema. Procure por uma interface que esteja ativa e tenha um endereço IP atribuído a ela. Você pode ignorar a interface lo, que é o dispositivo de loopback local. O nome da interface principal geralmente começa com en (para Ethernet) ou eth.

Aqui está um exemplo de como a saída pode parecer. Neste exemplo, eth0 é a interface física principal.

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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:16:3e:00:04:06 brd ff:ff:ff:ff:ff:ff
    altname enp0s5
    altname ens5
    inet 172.16.50.186/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
       valid_lft 1892159924sec preferred_lft 1892159924sec
    inet6 fe80::216:3eff:fe00:406/64 scope link
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:f2:70:14:b5 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

Da saída acima, observe o seguinte:

  • eth0: Este é o nome da interface. Anote este nome, pois você precisará dele nas próximas etapas. O nome da sua interface pode ser diferente (por exemplo, ens33).
  • state UP: Isso indica que a interface está ativa.
  • inet 172.16.50.186/24: Este é o endereço IPv4 atribuído à interface.

Agora que você identificou sua interface de rede principal, está pronto para criar interfaces VLAN nela.

Criar Interfaces Virtuais para VLAN 10 e VLAN 20

Nesta etapa, você usará o comando ip para criar duas novas interfaces de rede virtuais. Cada interface será associada a um ID de VLAN específico, conectando efetivamente seu host a duas redes lógicas diferentes, VLAN 10 e VLAN 20. Essas novas interfaces serão vinculadas à interface física principal que você identificou na etapa anterior.

O comando para criar uma interface VLAN é ip link add. Vamos detalhar sua estrutura:

  • sudo ip link add: O comando base para adicionar um novo link (interface) de rede.
  • link <physical_interface>: Especifica a interface física pai. Você substituirá <physical_interface> pelo nome que encontrou na Etapa 2 (por exemplo, eth0).
  • name <vlan_interface_name>: Define o nome para a nova interface virtual. Uma convenção comum é <physical_interface>.<vlan_id>, como eth0.10.
  • type vlan: Especifica que a nova interface é do tipo VLAN.
  • id <vlan_id>: Atribui o ID (ou tag) numérico da VLAN.

Agora, vamos criar as interfaces. Lembre-se de substituir eth0 pelo nome real da sua interface física, caso seja diferente.

  1. Primeiro, crie a interface virtual para a VLAN 10. Esta interface será nomeada eth0.10.

    sudo ip link add link eth0 name eth0.10 type vlan id 10
    
  2. Em seguida, crie a interface virtual para a VLAN 20, nomeando-a eth0.20.

    sudo ip link add link eth0 name eth0.20 type vlan id 20
    

Se esses comandos forem bem-sucedidos, eles não produzirão nenhuma saída. Você agora criou as interfaces lógicas, mas elas ainda não estão ativas ou configuradas com endereços IP. Você cuidará disso na próxima etapa.

Atribuir Endereços IP e Ativar as Interfaces VLAN

Nesta etapa, você ativará as interfaces VLAN recém-criadas e atribuirá endereços IP a elas. Após a criação, as interfaces de rede ficam em estado DOWN (desativado) por padrão, o que significa que estão desabilitadas e não podem enviar ou receber tráfego. Você precisa ativá-las e fornecer endereços de camada de rede para torná-las funcionais.

Usaremos o comando ip link set up para ativar as interfaces e ip addr add para atribuir endereços IP.

  1. Primeiro, você precisa ativar, ou "subir", as interfaces VLAN. Isso as habilita a participar da comunicação de rede. Execute os seguintes comandos em seu terminal. Lembre-se de usar o nome da sua interface se não for eth0.

    Ative a interface eth0.10:

    sudo ip link set dev eth0.10 up
    

    Ative a interface eth0.20:

    sudo ip link set dev eth0.20 up
    

    Esses comandos não produzirão nenhuma saída se forem bem-sucedidos.

  2. Agora que as interfaces estão ativas, você pode atribuir um endereço IP a cada uma delas. Atribuiremos um endereço da rede 192.168.10.0/24 à VLAN 10 e um endereço da rede 192.168.20.0/24 à VLAN 20. O /24 é a notação CIDR para uma máscara de sub-rede de 255.255.255.0.

    Atribua 192.168.10.10/24 à interface eth0.10:

    sudo ip addr add 192.168.10.10/24 dev eth0.10
    

    Atribua 192.168.20.10/24 à interface eth0.20:

    sudo ip addr add 192.168.20.10/24 dev eth0.20
    

Suas interfaces VLAN agora estão totalmente configuradas e ativas para a sessão atual. Na etapa final, você verificará a configuração completa.

Verificar a Configuração da Interface VLAN com ip a

Nesta etapa final, você verificará se suas interfaces VLAN foram criadas, ativadas e configuradas com os endereços IP corretos com sucesso. Executar o comando ip a novamente mostrará a configuração completa da rede do seu host, incluindo as novas interfaces virtuais.

  1. Em seu terminal, execute o comando ip a para exibir todas as informações das interfaces de rede.

    ip a
    
  2. Examine a saída cuidadosamente. Você deverá ver agora suas novas interfaces VLAN, eth0.10 e eth0.20, listadas juntamente com suas interfaces físicas e de loopback.

    A saída será semelhante a esta:

    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
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:00:04:06 brd ff:ff:ff:ff:ff:ff
        inet 172.16.50.186/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
           valid_lft 1892159924sec preferred_lft 1892159924sec
    3: eth0.10@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:16:3e:00:04:06 brd ff:ff:ff:ff:ff:ff
        inet 192.168.10.10/24 brd 192.168.10.255 scope global eth0.10
           valid_lft forever preferred_lft forever
    4: eth0.20@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:16:3e:00:04:06 brd ff:ff:ff:ff:ff:ff
        inet 192.168.20.10/24 brd 192.168.20.255 scope global eth0.20
           valid_lft forever preferred_lft forever
    

Observe os seguintes detalhes importantes para suas novas interfaces:

  • eth0.10@eth0 e eth0.20@eth0: Os nomes das interfaces VLAN. A parte @eth0 mostra explicitamente que elas estão vinculadas ao dispositivo físico eth0.
  • state UP: Confirma que ambas as interfaces estão ativas e prontas para transmitir dados.
  • inet 192.168.10.10/24 e inet 192.168.20.10/24: Os endereços IP que você atribuiu na etapa anterior estão configurados corretamente.

Parabéns! Você configurou com sucesso um único host Linux para participar de duas VLANs diferentes. Isso demonstra como um servidor pode se comunicar através de múltiplos segmentos de rede lógicos usando uma única conexão física.

Nota sobre Persistência: Os comandos ip que você usou criam uma configuração temporária que será perdida após a reinicialização. Em um ambiente de produção, você tornaria essas alterações permanentes editando arquivos de configuração de rede, como os usados pelo Netplan (/etc/netplan/*.yaml) ou pelo sistema mais antigo ifupdown (/etc/network/interfaces).

Resumo

Neste laboratório, você aprendeu o processo completo de criação e configuração de interfaces VLAN em um sistema Linux usando o comando ip. Você começou preparando o ambiente, que envolveu a instalação do pacote vlan para utilitários em user-space e o carregamento do módulo do kernel 8021q para habilitar o processamento de tags VLAN. Esta etapa fundamental garante que o sistema possa entender e gerenciar o tráfego VLAN.

Após a configuração inicial, você identificou a interface de rede física principal que atuaria como pai para as VLANs. Em seguida, você usou o comando ip link para criar duas interfaces virtuais separadas, uma para a VLAN 10 e outra para a VLAN 20, vinculando-as à interface pai. Para tornar essas interfaces funcionais, você atribuiu um endereço IP exclusivo a cada uma e as ativou. O processo foi concluído com o uso do comando ip a para verificar se as novas interfaces VLAN foram criadas com sucesso, configuradas com os endereços IP corretos e ativas na rede.