[FUG-BR] FreeBSD + 2 Links redundantes HA

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Sexta Julho 27 13:01:29 BRT 2007


Alexandre Andrade wrote:
> Olá,
> 
> Ah isso realmente é verdade, mas o que na verdade eu queria saber é se
> existia algo nativo pra ele entendeu, sem a necessidade de scripts e
> tal.
> O Cliente quer passar pra Linux com IPROUTE e tals, mas eu estou
> lutando fortemente contra isso, mas preciso dar um jeito nessa
> necessidade do fulano.

Pessoa, esta havendo varios problemas de conceito ai na conversa. Como 
voce vai saber se o link esta indisponivel? Pra isso é necessario 
conhecer a outra ponta. E dada a caracteristica comercial e 
provavelmente motivo pelo link adsl ser a escolha, obviamente num link 
barato desse ninguem vai oferecer cooperacao/conhecimento do estado do 
link entre as pontas.

Entao eu pergunto, carp onde? Colocar carp na operadora e na ponta final 
do adsl vai funcionar, sem duvida, mas entao vai la na operador por.. 
hehe. Entao carp nao resolve nada nesse cenario.

pf route-to tbm n resolve nada. Route do que pro que? Se o link cair nao 
ha o retorno do pacote, se nao ha como voce retorna um pacote por um 
link sendo que a rota do caminho de volta é outro?

ipfw fwd, mesma coisa, fwd do pacote pra onde

trunk entao... pior ainda; vai fazer agregacao entre quem, e isso vai 
ajudar no que?

Quanto ao iproute2, do Linux, olha o nome... iproute2, pf route-to 
(rotear para). Parece coincidencia os nomes? Nao. Eles fazem a mesma 
coisa. Entao com Linux tbm fica no nivel da gambiarra. Entao seja com 
Linux ou FreeBSD as opcoes sao as mesmas. E cada qual gambiarra mais que 
o outro. No caso do FreeBSD as ferramentas sao intrisecas a ferramenta 
de firewall. No Linux é independnete e voce tem que ficar fazendo 
"mangle" e marcando pacotes pra saber "o que veio de onde vai por onde". 
  Bem "xunxo".

Com ipfw fwd é tambem possivel. Mas se for nateado envolve um pouco mais 
de conhecimento com ipfw divert. Nesse caso como o Mario (M3) indicou, 
pesquise na lista sobre  policy-routing, vao haver exemplos pronto, e 
use "prob" nas regras de divert de saida pra fazer o balanceamento. Com 
pf esse balanceamento voce faz com "round-robin" no route-to.

Seja la como for, ate ai voce so tem, no maximo, balanceamento. Nesse 
caso aceitavel se os 2 links tiver o mesmo peso (mesma velocidade). Mas 
voce nao vai poder detectar se um caiu ou se esta congestionado, com as 
ferramentas. Vai ter "customizar a gambiarra" e fazer scripts. Sugiro 
usar o "nc" pra isso. É a forma gambiarrenta mais levinha e funcional. 
Se (e pode nao ser o caso) snmp for uma opção (alguns ADSL da CTBC 
Telecom tem SNMP na borda do cliente, pq eles fazem modem-a-modem. Se 
for telefonica, esquece), a gambiarra pode ser bem mais funcional.

Portanto sjea com Linux ou FreeBSD, as possibilidades sao as mesmas e as 
limitações também. Nao ha justificativa tecnica entre escolher entre 1 e 
outro. No maximo ha justificativa operacional. Leia-se "simpatizar mais" 
ou achar um "mais facil" que outro, pra fazer a mesma coisa.

Ja com NAT de entrada o natd, usando redirect_* com "dynamic yes" é em 
modo LSNAT éc apaz de detectar se alguem do round-robin (LSNAT, RFC 
2391) ficar indisponivel e tirar ele do balanceamento. Pra isso o natd 
fica acompanhando se recebe codigos smp de "host/net unreach". Ou seja, 
so funciona localmente, e só pra entrada. Pra saida nao, que é o que 
voce quer.


-- 
Patrick Tracanelli

FreeBSD Brasil LTDA.
(31) 3281-9633 / 3281-3547
316601 em sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"



Mais detalhes sobre a lista de discussão freebsd