Este artigo é referente a um projeto que eu desenvolvi para um condominio, para compartilhar a internet pra todos os assinantes, mas é claro, limitar o usuário a velocidade que ele contratou.
O q estrutura esta mais ou menos assim
LINK- | FreeBSD + IPFW |---- TRUNK --- |CISCO |------ CLIENTE 1 192.168.30.X
|------- CLIENTE 2 192.168.31.X
|-------- CLIENTE 3 192.168.32.X
Para limitarmos a banda, vamos usar o ipfw com suporte à DUMMYNET
options DUMMYNET
Feito isto, agora podemos começar a criar as regras:
Criei 2 scripts..para automatizar..a tarefa...vou explicar cada um deles
---------------------------------------------------------------------------
# Configuracao VLANS IPS c/ NAT
############# Parte Inferior ##############
# cliente 1
ifconfig vlan0 vlan 1 vlandev fxp0
ifconfig vlan0 inet 192.168.30.1 netmask 255.255.255.0
# cliente 2
ifconfig vlan1 vlan 2 vlandev fxp0
ifconfig vlan1 inet 192.168.31.1 netmask 255.255.255.0
# cliente 2
ifconfig vlan2 vlan 3 vlandev fxp0
ifconfig vlan2 inet 192.168.32.1 netmask 255.255.255.0
-------------------------------------------------------------------------
Este primeiro script configura as vlans automaticamente para cada cliente
Agora o segundo script que é responsável pelo limite de banda de cada cliente
-----------------------------------------------------------------------------
#! /bin/sh
sh /etc/vlans.sh
ipfw pipe 3 config bw 1740Kbit/s
ipfw pipe 4 config bw 1740Kbit/s
ipfw add 55 pipe 3 ip from any to 200.170.210.99/32
ipfw add 55 pipe 4 ip from 200.170.210.99/32 to any
# Conj:Terreo Cliente:Cliente 1
#ipfw pipe 10254 config bw 256Kbit/s
#ipfw pipe 11254 config bw 256Kbit/s
#ipfw add 10254 pipe 10254 ip from any to 192.168.30.0/24
#ipfw add 11254 pipe 11254 ip from 192.168.30.0/24 to any
#ipfw add 254 count ip from 192.168.30.0/24 to any
#ipfw add 254 count ip from any to 192.168.30.0/24
## Conj:13 Cliente: Cliente 2
ipfw pipe 1013 config bw 64Kbit/s
ipfw pipe 1113 config bw 64Kbit/s
ipfw add 1113 pipe 1113 ip from 192.168.31.0/24 to any
ipfw add 1013 pipe 1013 ip from any to 192.168.31.0/24
ipfw add 13 count ip from 192.168.31.0/24 to any
ipfw add 13 count ip from any to 192.168.31.0/24
## Conj:21/28 Cliente: Cliente 3
ipfw pipe 1022 config bw 512Kbit/s
ipfw pipe 1122 config bw 512Kbit/s
ipfw add 1122 pipe 1122 ip from 192.168.32.0/24 to any
ipfw add 1022 pipe 1022 ip from any to 192.168.32.0/24
ipfw add 22 count ip from 192.168.32.0/24 to any
ipfw add 22 count ip from any to 192.168.32.0/24
-----------------------------------------------------------------------------------
Como podemos ver..o segundo script chama o primeiro...daeo primeiro levanta as interfaces..e logo depois o segundo cria as regras para limitar a banda.
Eu não entrei aqui na parte do roteador..pq eu não sou especialista..mas no caso de configurar a vlan no FreeBSD ..com porta trunk como é o caso deste artigo..
Vou colocar aqui um trecho do artigo da FUG que fala sobre vlans, e que eu tambem tomei como base.
Nossa configuração está concluída no lado do FreeBSD, vou colocar a configuração que deve ser realizada switchs cisco catalyst com o IOS mensionado abaixo:
Cisco Catalyst – IOS 12.2(25)SEE2
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 nossas interfaces vlans, no nosso exemplo vamos escolher a porta FastEthernet 1.
Entre em como de configuração
Switch# configure terminal
Switch (config)# interface FastEthernet 1/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 1,2,3
Switch (config-if)# description “DESCRIÇÃO DA PORTA”
Com estas configurações na porta estamos deixando apenas trafegar as vlans 1, 2, 3, caso queira adicionar mais uma vlan no trunk do switch, utilize o comando abaixo:
Switch (config-if)# switchport trunk allowed vlan add 4
Adicionamos a vlan 4 na porta do switch.
Configure o restante das portas do switch em mode access conforme mensionado abaixo:
Switch (config-if)# interface FastEthernet 1/0/2
Switch (config-if)# switchport mode access
Switch (config-if)# switchport access vlan 1
Com isso a porta dois consequirá conversar com a interface vlan 1 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, espero ter ajudado, este tipo de configuração normalmente é utilizado em firewalls e roteadores, faça um calculo de tráfego para nao ter gargalo físico na placa de rede, se o tráfego for grande em cada vlan utilize uma placa gigabit de boa qualidade.
Bom é isso ae..espero ter ajudado
Referências
Bruno Moreira Zanelato
0 comentários:
Postar um comentário