Usando um FreeBSD como Bridge

Para criarmos a bridge com o FreeBSD primeiramente precisaremos criar uma interface para a bridge.
ifconfig create bridge0
Depois precisamos informar quais placas de redes irão ser agrupadas na bridge
ifconfig bridge0 addm em0 addm vr0 up
Veja que adicionamos as interfaces duas interfaces (emo e vro) para formarem a bridge.
Agora vamos levantar as interfaces de rede e a bridge
ifconfig emo up
ifconfig vr0 up
ifconfig bridge0 up
pronto nossa bridge está pronta.
Se quisermos gerenciar essa bridge é só adicionarmos um endereço IP para ela.
ifconfig bridgeo 192.168.0.230 netmask 255.255.255.0
Caso haja necessidades de limitar o trafego de rede que passa através da bridge será necessário compilar o kernel do FreeBSD com as seguintes opções.
options IPFIREWALL
options IPFIREWALL_DEFAULT_ACCEPT
options DUMMYNET
options HZ=1000
Edite o arquivo rc.conf com as seguintes caracteristicas:
firewall_enable=yes
firewall_type=open
Com essas opções você garantirá que o firewall está ativado e “aberto” para qualquer pacote.
Para habilitarmos o controle de banda sobre a bridge vamos utilizar o sysctl.
sysctl net.link.bridge.ipfw=1
Para limitar a banda escreveremos um script para facilitar o processo, o script limita-banda.sh vai ter o seguinte conteúdo:
#!/bin/sh
BANDA=5Mbit/scase $1 in
start)
sysctl.net.link.ipfw=1
ipfw add 10 pipe 1 ip from any to any bridge0
ipfw pipe 1 config mask src-ip 0x000000ff bw $BANDA
ipfw pipe 1 config mask dst-ip 0x000000ff bw $BANDA
;;stop)
sysctl.net.link.ipfw=1
ipfw delete 10
;;*)
echo “Uso `basename $0` {start|stop}
;;esac
No script estamos informando que a quantidade de banda utilizada será de 5Mbit/s e criamos um “cano” para que o trafego seja passado através dele com a velocidade máxima de 5Mbit/s.
Para executar o script podemos utilizar:
chmod +x limita-banda.sh
./limita-banda.sh
Para que ao reiniciar a bridge não seja necessário refazer todos esses passos é só editarmos o arquivo /etc/rc.local e adicionar o seguinte:
# Cria a bridge e levanta as interfaces
ifconfig bridge0 addm em0 addm vro
ifconfig emo upifconfig vro upifconfig bridge0 up
ifconfig bridge0 129.168.0.230 netmask 255.255.255.0
# Ativa o limite de banda
/root/limita-banda.sh
Pronto, uma bridge FreeBSD pronta para uso!
Boa diversão!