Quando trabalhamos com vlans, podemos segmentar a rede para diminuir o tráfego broadcast compartilhado e segmentar de forma que por exemplo tenhamos uma vlan por serviço/aplicação. A vantagem de ter um Freebsd com interfaces vlans seria, utilizar a mesma interface física para transportar varios tags (vlan id), excluindo a necessidade de uma placa de rede para cada segmento.
Configurando FreeBSD
Primeiramente necessitamos levantar o módulo if_vlan ou para quem queira deixar este suporte nativamente no kernel.
Para habilitar o suporte a vlans sem ter q recompilar o kernel utilizaremos o comando abaixo:
# kldload if_vlan
Não podemos esquecer de adicionar a entrada if_vlan_load=”YES” no arquivo /boot/loader.conf
Caso você queira compilar o suporte nativamente, adicione a entrada abaixo no seu arquivo de configuração e recompile o seu kernel:
device vlan
Depois do suporte a int vlans estar habilitado, vamos começar a configuração no Freebsd.
Vamos utilizar 4 tags para a nossa configuração, 5, 10, 15 e 20, para facilitar vamos associar o tag ao nome da interface vlan, tag 5 (vlan5), tag 10 (vlan10), tag 15 (vlan15), tag 20 (vlan20).
Criando as interfaces:
# ifconfig vlan5 create
# ifconfig vlan10 create
# ifconfig vlan15 create
# ifconfig vlan20 create
Apenas para conferir se as interfaces foram criadas
# ifconfig
A saída deverá ser algo como mostrado abaixo:
vlan5: flags=8002 mtu 1500
ether 00:00:00:00:00:00
vlan: 0 parent interface:
vlan10: flags=8002 mtu 1500
ether 00:00:00:00:00:00
vlan: 0 parent interface:
vlan15: flags=8002 mtu 1500
ether 00:00:00:00:00:00
vlan: 0 parent interface:
vlan20: flags=8002 mtu 1500
ether 00:00:00:00:00:00
vlan: 0 parent interface:
Nossas interfaces ja estão criadas, agora vamos associa-las ao devido tag e a interface física.
OBS: não é necessario a nome da int vlan ter o mesmo tag, por exemplo, pode ser criado a interface vlan0 e associado qualquer tag, criamos a vlan5 associada ao tag 5 para ficar mais fácil de coomprender.
Associando os tags:
# ifconfig vlan5 vlan 5 vlandev em0
# ifconfig vlan10 vlan 10 vlandev em0
# ifconfig vlan15 vlan 15 vlandev em0
# ifconfig vlan20 vlan 20 vlandev em0
Pronto, os tags ja estao devidamente configurados e associados a interface física em0.
Agora, atribua os endereços ips nas interfaces vlans.
# ifconfig vlan5 192.168.5.1 netmask 255.255.255.0 up
# ifconfig vlan10 192.168.10.1 netmask 255.255.255.0 up
# ifconfig vlan15 192.168.15.1 netmask 255.255.255.0 up
# ifconfig vlan20 192.168.20.1 netmask 255.255.255.0 up
A saída do ifconfig ficará como mostrado abaixo:
vlan5: flags=8843 mtu 1500
inet 192.168.5.1 netmask 0xffffff00 broadcast 192.168.5.255
inet6 fe80::203:47ff:fe07:63ff%vlan20 prefixlen 64 scopeid 0xb
ether 00:0a:5e:53:f8:ec
media: Ethernet autoselect (100baseTX )
status: active
vlan: 5 parent interface: em0
vlan10: flags=8843 mtu 1500
inet 192.168.10.1 netmask 0xffffff00 broadcast 192.168.10.255
inet6 fe80::203:47ff:fe07:63ff%vlan20 prefixlen 64 scopeid 0xb
ether 00:0a:5e:53:f8:ec
media: Ethernet autoselect (100baseTX )
status: active
vlan: 10 parent interface: em0
vlan15: flags=8843 mtu 1500
inet 192.168.15.1 netmask 0xffffff00 broadcast 192.168.15.255
inet6 fe80::203:47ff:fe07:63ff%vlan20 prefixlen 64 scopeid 0xb
ether 00:0a:5e:53:f8:ec
media: Ethernet autoselect (100baseTX )
status: active
vlan: 15 parent interface: em0
vlan20: flags=8843 mtu 1500
inet 192.168.20.1 netmask 0xffffff00 broadcast 192.168.20.255
inet6 fe80::203:47ff:fe07:63ff%vlan20 prefixlen 64 scopeid 0xb
ether 00:0a:5e:53:f8:ec
media: Ethernet autoselect (100baseTX )
status: active
vlan: 20 parent interface: em0
Nossas configurações já estão prontas, todas as int vlans configuradas com as tags associadas e com a interface física fxp0 devinida.
Agora vamos colocar nossas configurações no rc.conf para nao perde-las quando o FreeBSD for rebootado.
Adicionar no arquivo /etc/rc.conf as entradas abaixo:
cloned_interfaces="vlan5 vlan10 vlan15 vlan20"
ifconfig_vlan5="inet 192.168.5.1 netmask 255.255.255.0 vlan 5 vlandev em0"
ifconfig_vlan10="inet 192.168.10.1 netmask 255.255.255.0 vlan 10 vlandev em0"
ifconfig_vlan15="inet 192.168.15.1 netmask 255.255.255.0 vlan 15 vlandev em0"
ifconfig_vlan20="inet 192.168.20.1 netmask 255.255.255.0 vlan 20 vlandev em0"
Nossa configuração está concluída no lado do FreeBSD, vou colocar a configuração que deve ser realizada switchs Cisco Catalyst 3750.
Logue no switch com seu usuário e senha, entre em modo enable:
Switch# enable
Defina uma porta onde será conectado o FreeBSD com as interfaces vlans, no nosso exemplo vamos escolher a porta Gi1/0/1.
Entre em como de configuração
Switch# configure terminal
Switch (config)# interface Gi1/0/1
Lembrando que a interface pode variar conforme o modelo do switch.
Switch (config-if)# switchport trunk encapsulation dot1q
Switch (config-if)# switchport mode trunk
Switch (config-if)# switchport trunk allowed vlan 5,10,15,20
Switch (config-if)# description “DESCRIÇÃO DA PORTA”
Com estas configurações na porta estamos deixando trafegar apenas as vlans 5, 10, 15 e 20, caso queira adicionar mais uma vlan no trunk do switch, utilize o comando abaixo:
Switch (config-if)# switchport trunk allowed vlan add 25
Adicionamos a vlan 25 na porta Gi1/0/1 do switch.
Configure o restante das portas do switch em mode access conforme mensionado abaixo:
Switch (config-if)# interface Gi1/0/2
Switch (config-if)# switchport mode access
Switch (config-if)# switchport access vlan 5
Com isso a porta dois consequirá conversar com a interface vlan 5 do FreeBSD através da porta 1 do switch que esta configurada em mode trunk. Faça o mesmo com as outras portas definindo a vlan que deve ser acessada pela porta.
Com isto finalizamos nosso how-to, este tipo de configuração normalmente é utilizado em firewalls, faça um cálculo de tráfego para não ter gargalo físico na placa de rede, se o tráfego for grande em cada vlan utilize uma placa Gigabit de boa qualidade.
Inteligência Artificial e Redes de Computadores
Há 3 semanas
Um comentário:
Você comentou em um ponto do seu artigo "e com a interface física fxp0 devinida". É fxp0 ou em0? Se for fxp0, onde está definido isso?
Obrigado.
Postar um comentário