Differences

This shows you the differences between two versions of the page.

Link to this comparison view

instalando_e_configurando_vlan_no_debian_squeeze_pt_br [2017/09/05 12:18] (current)
Line 1: Line 1:
 +====== Instalando e Configurando o VLAN no Debian Squeeze ======
 +
 +O objetivo deste artigo é mostrar como o Linux pode ser usado em uma configuração com VLANs, assumindo o papel de roteador e permitindo um melhor controle das redes locais. O uso de VLANs é algo relativamente comum hoje em dia, sendo esta característica suportada por vários switches existentes no mercado. Entretanto, o seu uso associado a máquinas Linux ainda não é muito difundido e merece ser explicado em detalhes. ​
 +
 +**Porque usar VLANs**
 +
 +Existem várias boas razões para se usar VLANs:
 +
 +  * Ganho em performance. Com o emprego de VLANs, o domínio de broadcast fica reduzido, sendo repassado somente dentro da VLAN onde foi gerado e evitando tráfego desnecessário.
 +  * Aumento na segurança. Através das VLANs pode-se fazer uma separação já no nível de enlace, dificultando o acesso para possíveis invasores que não fazem parte da LAN virtual. Além disso, somente o tráfego que se deseja rotear é repassado entre VLANs. Mas fique alerta: os equipamentos utilizados podem conter falhas na implementação de VLANs e permitir algum tipo de repasse de dados.
 +  * Geração de grupos virtuais de trabalho. Grupos afins podem estar virtualmente interligados através de VLANs, mesmo quando não estão fisicamente interconectados na mesma sub-rede física, comunicando-se mais rapidamente e com mais segurança, sem gerar tráfego desnecessário para outros grupos.
 +  * Administração facilitada. O processo de reconfiguração com VLANs é bastante facilitado, isto é, a adição de máquinas ou sub-redes a uma VLAN e feito de forma lógica, sem que sejam necessárias mudanças físicas. Os switches em geral possuem interfaces de configuração baseadas em web, simples e intuitivas.
 +  * Redução de custos. Além da redução do custo de administração,​ o emprego de VLANs pode evitar a aquisição de roteadores, caso seja usado um switch com suporte a roteamento entre VLANs (comumente conhecido como switch camada 3). Uma outra opção é empregar uma máquina máquina Linux com suporte a VLANs, agindo como roteador da rede. 
 +
 +Prepare o seu sistema com o seguinte script http://​wiki.douglasqsantos.com.br/​doku.php/​confinicialsqueeze_en para que não falte nenhum pacote ou configuração.
 +
 +Agora vamos instalar o pacote necessário no Debian.
 +<sxh bash>
 +
 +apt-get install vlan -y
 +</​sxh>​
 +
 +Agora vamos carregar o módulo
 +<sxh bash>
 +modprobe 8021q
 +</​sxh>​
 +
 +Agora vamos inserir ele na inicialização do sistema
 +<sxh bash>
 +echo 8021q >> /​etc/​modules
 +</​sxh>​
 +
 +**Criando VLANs**
 +
 +A criação de VLANs em Linux passa pelo comando vconfig. Basicamente ele irá criar novas interfaces de redes virtuais à partir de uma interface de rede real, atribuindo números de VLANs diferentes para cada rede criada. A sintaxe básica do comando para adicionar e remover interfaces de redes virtuais associadas a VLANs está a seguir: ​
 +
 +Vamos levar em consideração que a interface que vamos utilizar é a eth0
 +
 +Para adicionar somente uma vlan a uma interface podemos fazer da seguinte forma
 +<sxh bash>
 +
 +vconfig add eth0 10
 +Added VLAN with VID == 10 to IF -:eth0:-
 +</​sxh>​
 +
 +Agora para remover uma vlan de uma interface podemos fazer da seguinte forma
 +<sxh bash>
 +
 +vconfig rem eth0.10
 +Removed VLAN -:eth0.10:-
 +</​sxh>​
 +
 +Note que para remover precisamos informar eth0.10 aonde o .10 é da VLAN.
 +
 +Agora vamos criar as VLANs para teste
 +<sxh bash>
 +
 +vconfig add eth0 2
 +</​sxh>​
 +
 +<sxh bash>
 +
 +vconfig add eth0 3
 +</​sxh>​
 +
 +Agora precisamos tirar todo o tráfego da eth0
 +<sxh bash>
 +
 +ifconfig eth0 0.0.0.0 up
 +</​sxh>​
 +
 +Agora vamos setar o ips para as VLANs
 +
 +Vamos configurar a VLAN 2 primeiro
 +<sxh bash>
 +ifconfig eth0.2 10.1.1.1 broadcast 10.1.1.255 netmask 255.255.255.0 up
 +</​sxh>​
 +
 +Agora vamos configurar a VLAN 3
 +<sxh bash>
 +ifconfig eth0.3 10.1.2.1 broadcast 10.1.2.255 netmask 255.255.255.0 up
 +</​sxh>​
 +
 +Agora se precisarmos do tráfego entre essas VLANs precisamos habilitar o roteamento
 +<sxh bash>
 +echo 1 > /​proc/​sys/​net/​ipv4/​ip_forward
 +</​sxh>​
 +
 +Agora você precisa configurar a suas porta do switch para pertencer a VLAN 2 e 3 ao mesmo tempo, e conectar seu servidor nesta porta para que funcione.
 +
 +Agora vamos acertar o roteamento da vlan 2
 +<sxh bash>
 +
 +route add -net 10.1.1.0 netmask 255.255.255.0 dev eth0.2
 +</​sxh>​
 +
 +Agora vamos acertar o roteamento da vlan 3
 +<sxh bash>
 +
 +route add -net 10.1.2.0 netmask 255.255.255.0 gw eth0.3
 +</​sxh>​
 +
 +Agora vamos configurar as VLANs é como se fossemos configurar uma interface de rede comum
 +<sxh bash>
 +
 +vim /​etc/​network/​interfaces
 +#Loopback
 +auto lo
 +iface lo inet loopback
 +
 +auto vlan10
 +iface vlan10 inet static
 +address 10.101.0.25
 +netmask 255.255.255.0
 +network 10.101.0.0
 +broadcast 10.101.0.255
 +mtu 1500
 +
 +#VLAN LAN
 +auto vlan10
 +iface vlan10 inet static
 +address 10.101.0.23
 +netmask 255.255.255.0
 +network 10.101.0.0
 +broadcast 10.101.0.255
 +gateway 10.101.0.254
 +mtu 1500
 +vlan_raw_device eth0
 +
 +#VLAN DMZ
 +auto vlan172
 +iface vlan_172 inet static
 +address 172.12.101.8
 +netmask 255.255.255.0
 +network 172.12.101.0
 +broadcast 172.12.101.255
 +mtu 1500
 +vlan_raw_device eth0
 +
 +#VLAN BKP
 +auto vlan192
 +iface vlan192 inet static
 +address 192.168.0.23
 +netmask 255.255.255.0
 +network 192.168.0.0
 +broadcast 192.168.0.255
 +mtu 1500
 +vlan_raw_device eth0
 +</​sxh>​
 +
 +Agora vamos reiniciar a interface de rede para que seja carregada a nossa vlan
 +<sxh bash>
 +
 +/​etc/​init.d/​networking restart
 +Running /​etc/​init.d/​networking restart is deprecated because it may not enable again some interfaces ... (warning).
 +Reconfiguring network interfaces...Set name-type for VLAN subsystem. Should be visible in /​proc/​net/​vlan/​config
 +Added VLAN with VID == 10 to IF -:eth0:-
 +Set name-type for VLAN subsystem. Should be visible in /​proc/​net/​vlan/​config
 +Added VLAN with VID == 172 to IF -:eth0:-
 +Set name-type for VLAN subsystem. Should be visible in /​proc/​net/​vlan/​config
 +Added VLAN with VID == 192 to IF -:eth0:-
 +done.
 +</​sxh>​
 +
 +Agora vamos visualizar as nossas VLAN
 +<sxh bash>
 +
 +ifconfig
 +eth0      Link encap:​Ethernet ​ Endereço de HW 08:​00:​27:​3f:​b0:​b8  ​
 +          inet end.: 10.101.0.25 ​ Bcast:​10.101.0.255 ​ Masc:​255.255.255.0
 +          endereço inet6: fe80::​a00:​27ff:​fe3f:​b0b8/​64 Escopo:Link
 +          UP BROADCASTRUNNING MULTICAST ​ MTU:​1500 ​ Métrica:1
 +          RX packets:​6389 errors:0 dropped:0 overruns:0 frame:0
 +          TX packets:928 errors:0 dropped:0 overruns:0 carrier:0
 +          colisões:0 txqueuelen:​1000 ​
 +          RX bytes:​546769 (533.9 KiB)  TX bytes:​115906 (113.1 KiB)
 +
 +lo        Link encap:​Loopback Local  ​
 +          inet end.: 127.0.0.1 ​ Masc:​255.0.0.0
 +          endereço inet6: ::1/128 Escopo:​Máquina
 +          UP LOOPBACKRUNNING ​ MTU:​16436 ​ Métrica:1
 +          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 +          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 +          colisões:0 txqueuelen:​0 ​
 +          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
 +
 +vlan10 ​   Link encap:​Ethernet ​ Endereço de HW 08:​00:​27:​3f:​b0:​b8  ​
 +          inet end.: 10.101.0.25 ​ Bcast:​10.101.0.255 ​ Masc:​255.255.255.0
 +          endereço inet6: fe80::​a00:​27ff:​fe3f:​b0b8/​64 Escopo:Link
 +          UP BROADCASTRUNNING MULTICAST ​ MTU:​1500 ​ Métrica:1
 +          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 +          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
 +          colisões:0 txqueuelen:​0 ​
 +          RX bytes:0 (0.0 B)  TX bytes:468 (468.0 B)
 +
 +vlan172 ​  Link encap:​Ethernet ​ Endereço de HW 08:​00:​27:​3f:​b0:​b8  ​
 +          inet end.: 172.12.101.8 ​ Bcast:​172.12.101.255 ​ Masc:​255.255.255.0
 +          endereço inet6: fe80::​a00:​27ff:​fe3f:​b0b8/​64 Escopo:Link
 +          UP BROADCASTRUNNING MULTICAST ​ MTU:​1500 ​ Métrica:1
 +          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 +          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
 +          colisões:0 txqueuelen:​0 ​
 +          RX bytes:0 (0.0 B)  TX bytes:468 (468.0 B)
 +
 +vlan192 ​  Link encap:​Ethernet ​ Endereço de HW 08:​00:​27:​3f:​b0:​b8  ​
 +          inet end.: 192.168.0.23 ​ Bcast:​192.168.0.255 ​ Masc:​255.255.255.0
 +          endereço inet6: fe80::​a00:​27ff:​fe3f:​b0b8/​64 Escopo:Link
 +          UP BROADCASTRUNNING MULTICAST ​ MTU:​1500 ​ Métrica:1
 +          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 +          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
 +          colisões:0 txqueuelen:​0 ​
 +          RX bytes:0 (0.0 B)  TX bytes:468 (468.0 B)
 +</​sxh>​
 +
 +
 +Vamos visualizar elas com o comando ip
 +<sxh bash>
 +
 +ip link show
 +1: lo: <​LOOPBACK,​UP,​LOWER_UP>​ mtu 16436 qdisc noqueue state UNKNOWN ​
 +    link/​loopback 00:​00:​00:​00:​00:​00 brd 00:​00:​00:​00:​00:​00
 +2: eth0: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc pfifo_fast state UP qlen 1000
 +    link/ether 08:​00:​27:​3f:​b0:​b8 brd ff:​ff:​ff:​ff:​ff:​ff
 +3: vlan0@eth0: <​BROADCAST,​MULTICAST>​ mtu 1500 qdisc noop state DOWN 
 +    link/ether 08:​00:​27:​3f:​b0:​b8 brd ff:​ff:​ff:​ff:​ff:​ff
 +4: vlan10@eth0:​ <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc noqueue state UP 
 +    link/ether 08:​00:​27:​3f:​b0:​b8 brd ff:​ff:​ff:​ff:​ff:​ff
 +7: vlan172@eth0:​ <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc noqueue state UP 
 +    link/ether 08:​00:​27:​3f:​b0:​b8 brd ff:​ff:​ff:​ff:​ff:​ff
 +8: vlan192@eth0:​ <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc noqueue state UP 
 +    link/ether 08:​00:​27:​3f:​b0:​b8 brd ff:​ff:​ff:​ff:​ff:​ff
 +</​sxh>​
 +
 +Agora vamos reiniciar a maquina para que não aparece mais a interface eth0 e somente as vlans
 +<sxh bash>
 +
 +reboot
 +</​sxh>​
 +
 +Não esqueça de ajustar o seu switch para identificar as VLANs que foram configuradas na porta que o servidor Linux estiver conectado.