Curitiba/PR Contato
Administração e Suporte em Ti

O balanceamento de links por serviços seria mais uma “continuação” do balanceamento de carga em dois ou mais links.
No entanto neste caso vamos utilizar o iptables com o alvo MARK para marcar os pacotes que passam entre as interfaces de rede.
Usaremos as configurações de tabelas que inserimos no arquivo “/etc/iproute2/rt_tables”.

coloque os valores abaixo no arquivo rt_tables caso não os tenham.
echo 10 link1 >> /etc/iproute2/rt_tables
echo 20 link2 >> /etc/iproute2/rt_tables

verifique as regras de roteamento e das tabelas
[root@localhost ~]# ip route list
192.168.3.0/24 dev eth0 proto kernel scope link src 192.168.3.91
192.168.10.0/24 dev eth1 proto kernel scope link src 192.168.10.168
172.16.0.0/16 dev eth2 proto kernel scope link src 172.16.32.1
169.254.0.0/16 dev eth0 scope link metric 1002
169.254.0.0/16 dev eth1 scope link metric 1003
169.254.0.0/16 dev eth2 scope link metric 1004
default
nexthop via 192.168.3.2 dev eth0 weight 1
nexthop via 192.168.10.31 dev eth1 weight 1

[root@localhost ~]# ip rule list
0: from all lookup local
32764: from 192.168.10.168 lookup link2
32765: from 192.168.3.91 lookup link1
32766: from all lookup main
32767: from all lookup default

feito isto vamos inserir algumas regras simples para marcar os pacotes com o alvo MARK do iptables

iptables -t mangle -A PREROUTING -p tcp –dport 80 -j MARK –set-mark 2
iptables -t mangle -A PREROUTING -p tcp –dport 110 -j MARK –set-mark 1

Nas duas regras acima marcamos os pacotes de http e pop3 que trafegam entre as interfaces de rede mas não dissemos o que fazer com eles
Para isso precisamos utilizar o FWMARK

ip rule add fwmark 1 table link1
ip rule add fwmark 2 table link2

lembrando que as rotas entre as interfaces de rede já foram definidas anteriormente.
Os acesso via WEB, porta 80 ira utilizar o segundo link de acesso e o acesso de e-mail pop3 ira utilizar o primeiro link

[root@localhost ~]# ip route list
192.168.3.0/24 dev eth0 proto kernel scope link src 192.168.3.91
192.168.10.0/24 dev eth1 proto kernel scope link src 192.168.10.168
172.16.0.0/16 dev eth2 proto kernel scope link src 172.16.32.1
169.254.0.0/16 dev eth0 scope link metric 1002
169.254.0.0/16 dev eth1 scope link metric 1003
169.254.0.0/16 dev eth2 scope link metric 1004
default
nexthop via 192.168.3.2 dev eth0 weight 1
nexthop via 192.168.10.31 dev eth1 weight 1

[root@localhost ~]# ip rule list
0: from all lookup local
32762: from all fwmark 0x2 lookup link2
32763: from all fwmark 0x1 lookup link1

32764: from 192.168.10.168 lookup link2
32765: from 192.168.3.91 lookup link1
32766: from all lookup main
32767: from all lookup default