[FUG-BR] CARP - (longo)
Sérgio José Ferreira
sergio em wgo.com.br
Ter Ago 16 19:58:29 BRT 2005
Boa Noite,
Coloquei o CARP pra funcionar no seguinte ambiente :
(internet)
|
----switch wan---
| |
| |
DMZ<--[HOST_A]..sync..[HOST_B]-->DMZ
| |
| |
====switch lan===
| | | | |
----clientes-----
Neste caso, preciso de redundância em 3 interfaces WAN, DMZ e
LAN.
sysctl :
sysctl -w net.inet.carp.allow=1
sysctl -w net.inet.carp.preempt=1
sysctl -w net.inet.carp.log=1
sysctl -w net.inet.carp.arpbalance=0
o rc.conf do host "A" :
cloned_interfaces="carp0 carp1 carp2"
network_interfaces="lo0 xl0 re0 bge0 bge1 carp0 carp1 carp2 pfsync0"
# Controle do Cluster - CARP
ifconfig_xl0="inet 10.10.10.1 netmask 255.255.255.252"
ifconfig_pfsync0="up syncif xl0"
# Acesso a rede interna ( carp0 )
ifconfig_re0="inet 172.30.30.59 netmask 255.255.255.192"
# Acesso a DMZ ( carp1)
ifconfig_bge1="inet 200.200.200.61 netmask 255.255.255.192"
# Acesso a Internet ( carp2 )
ifconfig_bge0="inet 200.200.200.125 netmask 255.255.255.192"
#
ifconfig_carp0="vhid 1 pass lan 172.30.30.10/26"
ifconfig_carp0_alias0="172.30.30.29/32"
ifconfig_carp1="vhid 2 pass dmz 200.200.200.1/26"
ifconfig_carp2="vhid 3 pass wan 200.200.200.67/26"
Já os Ips do CARP são idênticos nos dois hosts, ficando a diferença
apenas na hierarquia.
Rc.conf do host B:
cloned_interfaces="carp0 carp1 carp2"
network_interfaces="lo0 rl0 vr0 fxp0 fxp1 carp0 carp1 carp2 pfsync0"
# Controle do Cluster - CARP
ifconfig_rl0="inet 10.10.10.2 netmask 255.255.255.252"
ifconfig_pfsync0="up syncif rl0"
#
# Acesso a rede interna
ifconfig_vr0="inet 172.30.30.60 netmask 255.255.255.192"
#
# Acesso a Internet
ifconfig_fxp0="inet 200.178.1.126 netmask 255.255.255.192"
# ifconfig_fxp0="inet 200.178.1.68 netmask 255.255.255.192"
#
# Acesso a DMZ
ifconfig_fxp1="inet 200.178.1.62 netmask 255.255.255.192"
#
ifconfig_carp0="vhid 1 advskew 100 pass lan 172.30.30.10/26"
ifconfig_carp0_alias0="172.30.30.29/32"
ifconfig_carp1="vhid 2 advskew 100 pass dmz 200.178.1.1/26"
ifconfig_carp2="vhid 3 advskew 100 pass wan 200.178.1.67/26"
O pf foi ativado e está fazendo NAT na interface WAN.
MyLocalNet="172.30.30.0/23"
NoNat="! 200.200.200.0/25"
nat on $ext_if from $MyLocalNet to $NoNat -> carp2
Até aqui, funcionando 90%.
Problemas encontrados :
1) Estas máquinas rodam squid. Assim, quando o squid vai
acessar um site o endereço usado é o da interface real, cujo
IP é diferente entre os hosts( bge0 e fxp0 ). Se acontece algo
e o segundo host assume, todas as conexões caem pq o IP é
diferente.
=> Fiz NAT do IP da bge0 também..assim, sai sempre com o IP
da interface CARP2.
nat on $ext_if from 200.178.1.125 to $NoNat -> carp2
=> até aqui resolvido.
2) Se no host "A" tiro uma interface do ar para simular
um problema, todas as interfaces desta máquina deverião
passar de MASTER para BACKUP e o host "B" deveria assumir.
Neste ponto, apenas a interface que tirei do ar é que tá
ficando "INIT" no host A e no host B MASTER, as outras
interfaces permanecem MASTER no host A e isso está errado.
=> Solução ???????
Resolvendo isso, posso fazer um howto do carp bem
explicadinho para ajudar quem precisa.
e
3) NOVAMENTE : NÃO CONSIGO FAZER O FTP FUNCIONAR
CORRETAMENTE DO PF.
O ftp-proxy tá instalado e rodando via inetd :
ftp-proxy stream tcp nowait root /usr/libexec/ftp-proxy
ftp-proxy
tcp4 0 0 *.8021 *.*
LISTEN
no pf :
rdr on $int_if proto tcp from any to ! <me> port ftp -> 127.0.0.1 port
8021
Ftp via squid tá ok, mas quando tem que sair direto do cliente fazendo
nat
não funciona de jeito nenhum.
[]'s
Sérgio José Ferreira
WGO Telecom
_______________________________________________
Freebsd mailing list
Freebsd em fug.com.br
http://mail.fug.com.br/mailman/listinfo/freebsd_fug.com.br
Mais detalhes sobre a lista de discussão freebsd