Criando VLAN no Linux com o comando ip

Resumo

# Criar uma VLAN 10 na interface eth0
ip link add link eth0 name eth0.10 type vlan id 10

# Atribuir um IP à VLAN
ip addr add 192.168.10.1/24 dev eth0.10

# Ativar a interface VLAN
ip link set dev eth0.10 up

Com esses três comandos, criamos uma VLAN 10 na interface eth0, atribuímos um IP e ativamos a interface.

Explicação detalhada sobre VLAN e o comando ip.

Se tem um comando extremamente útil em Linux referente a networking, esse é o comando IP. Ele é tão útil, e possui tantas opções, que a parte difícil deste post será focar apenas na criação de VLANs. Mas vamos lá.
Vimos acima o comando para criar a VLAN, vamos avaliar cada parâmetro individualmente:

  • ip link - A palavra link informa ao comando ip que trabalharemos com link, que pode ser uma VLAN, um túnel.
  • add – Com add informamos ao comando ip que adicionaremos um link
  • link eth0 – Aqui especificamos em qual interface vamos adicionar o link que estamos criando
  • name eth0.10 – Aqui damos um nome ao link que estamos criando, no caso estamos criando um link chamado eth0.10. Poderia ser V10, vlan10, CAMERAS.
  • type vlan – O tipo de link que estamos criando. O post não é sobre VLAN?
  • id 10 – Seguindo a lógica, associamos o ID, ou tag, com a VLAN que estamos criando

Lendo o comando, estamos criando um novo link, associado ao link existente eth0, de nome eth0.10, do tipo VLAN e com ID 10, ou tag se preferir.
Os outros comandos são para atribuir um IP e subir a interface. Caso a sua interface não seja a eth0, altere de acordo ou, se estiver usando aquele padrão esquisito (ens33, enp4s3), siga as instruções deste post.
Para conferir se a VLAN foi criada corretamente, utilize um dos comandos abaixo:

# Exibir todas as interfaces VLAN criadas
ip link show

# Exibir detalhes sobre a VLAN criada
ip -d link show eth0.10

Se a VLAN foi criada corretamente, os comandos acima exibirão informações sobre a interface e seu estado atual.

Até agora vimos como criar uma interface VLAN, caso você queira removê-la, utilize os comandos abaixo:

# Desative a interface com:ip link set dev eth0.10 down
# Exclua a interface com:ip link delete eth0.10

⚠️ Importante

“As configurações feitas com o comando ip são temporárias e serão perdidas após o reinício do sistema. Para tornar as VLANs permanentes, podemos configurar os arquivos do sistema, utilizando o arquivos interfaces ou netplan, mas antes temos que instalar o pacote vlan.

### /etc/network/interfaces ###

# Instale o pacote vlan
apt-get install vlan

# Edite o arquivo interfacesvim /etc/network/interfaces
# Acrescente as informações relativas a VLAN
auto vlan10
allow-hotplug vlan10
iface vlan10 inet static
    vlan-raw-device eth1
    address 192.168.10.1
    netmask 255.255.255.0
### /etc/netplan/default.yaml

# Edite o arquivo correspondente do netplan
vim /etc/netplan/default.yaml

# Acrescente as informações abaixo, eth1 esta apenas como exemplo da identação
    eth1:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.1.2/24]
  vlans:
    vlan10:
      id: 10
      link: eth1
      addresses: [192.168.10.2/24]

# Reinicie o netplan com:
netplan generate
netplan apply

Para testar, rode um tcpdump com a opção -e na interface física onde a VLAN foi criada e confirme que o tráfego entra e sai com o ID de VLAN correto.

 tcpdump -i eth1 -ne
tcpdump: verbose output suppressed, use -v[v]… for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
23:31:42.646460 00:0c:29:44:d8:a2 > 00:0c:29:62:11:0a, ethertype 802.1Q (0x8100), length 102: vlan 10, p 0, ethertype IPv4 (0x0800), 192.168.10.2 > 192.168.10.1: ICMP echo request, id 760, seq 1, length 64
23:31:42.646485 00:0c:29:62:11:0a > 00:0c:29:44:d8:a2, ethertype 802.1Q (0x8100), length 102: vlan 10, p 0, ethertype IPv4 (0x0800), 192.168.10.1 > 192.168.10.2: ICMP echo reply, id 760, seq 1, length 64
23:31:46.116960 00:0c:29:44:d8:a2 > 00:0c:29:62:11:0a, ethertype IPv4 (0x0800), length 98: 192.168.1.2 > 192.168.1.1: ICMP echo request, id 761, seq 1, length 64
23:31:46.116981 00:0c:29:62:11:0a > 00:0c:29:44:d8:a2, ethertype IPv4 (0x0800), length 98: 192.168.1.1 > 192.168.1.2: ICMP echo reply, id 761, seq 1, length 64

O comando tcpdump -i eth1 -ne permite visualizar o tráfego VLAN diretamente na interface física. Se a VLAN estiver configurada corretamente, os pacotes capturados exibirão a tag VLAN correspondente.

Caso você não tenha uma máquina Linux para testar, pode montar um laboratório utilizando o PNETLAB para isso, como o exemplo abaixo:

PNETLAB - Dois servidores Linux

Finalizando

Existem outras formas de configurar VLAN, usando vconfig ou nmcli, por exemplo,e mesmo outras formas de persistência, no caso de sistemas baseados em Red Hat, mas este post é específico para o comando ip.

E aí? O que achou? Qual ferramenta você costuma usar para trabalhar com VLAN no Linux? Tem alguma dúvida ou sugestão? Deixe seu comentário!

Referências

Compartilhe!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima