Ajuda com CARP



  • Pessoal boa tarde,

    Configurei 2 pfsenses 2.3.2-RELEASE com CARP, e o sincronismo está funcionando entre eles, o MASTER replica normalmente para o BACKUP, porém eu não pingo nem o IP virtual da LAN nem o da WAN, somente dentro do próprio master eu pingo o IP virtual.

    Exemplo.

    pfsense01:
    WAN: 192.168.0.1/24
    LAN: 192.168.1.1/24
    SYNC: 192.168.3.1/24
    VIP WAN: 192.168.0.3/24
    VIP LAN: 192.168.1.3/24

    pfsense02:
    WAN: 192.168.0.2/24
    LAN: 192.168.1.2/24
    SYNC: 192.168.3.2/24
    VIP WAN: 192.168.0.3/24 (recebido via CARP)
    VIP LAN: 192.168.1.3/24 (recebido via CARP)

    As interfaces LAN estão em um switch, e as interfaces SYNC tem um cabo diretamente conectado entre eles.
    Os dois pfsense se pingam normalmente via LAN e via WAN.
    De uma máquina na mesma LAN, eu pingo os dois pfsense (192.168.1.1 e 192.168.1.2) porém nao pingo o VIP (192.168.1.3).
    De dentro do MASTER eu pingo o VIP. Se parar o CARP no MASTER, eu pingo o VIP de dentro do BACKUP.

    Pensei que poderia ser o switch, mas eu vejo no MASTER que ele recebe arp-request para o IP do VIP mas não responde com arp-reply:

    [2.3.2-RELEASE][admin@pfsense01.localdomain]/root: ifconfig bge1
    bge1: flags=8943 <up,broadcast,running,promisc,simplex,multicast>metric 0 mtu 1500
            options=c009b <rxcsum,txcsum,vlan_mtu,vlan_hwtagging,vlan_hwcsum,vlan_hwtso,linkstate>ether 00:0a:f7:9a:6f:0b
            inet6 fe80::20a:f7ff:fe9a:6f0b%bge1 prefixlen 64 scopeid 0x2
            inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
            inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255 vhid 1
            nd6 options=21 <performnud,auto_linklocal>media: Ethernet autoselect (1000baseT <full-duplex>)
            status: active
            carp: MASTER vhid 1 advbase 1 advskew 0

    [2.3.2-RELEASE][admin@pfsense01.localdomain]/root: ping -c 1 192.168.1.3
    PING 192.168.1.3 (192.168.1.3): 56 data bytes
    64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.019 ms

    –- 192.168.1.3 ping statistics ---
    1 packets transmitted, 1 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 0.019/0.019/0.019/0.000 ms

    [2.3.2-RELEASE][admin@pfsense01.localdomain]/root: tcpdump -nn -i bge0 host 192.168.1.3
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on bge0, link-type EN10MB (Ethernet), capture size 65535 bytes
    21:45:17.575071 ARP, Request who-has 192.168.1.3 tell 192.168.1.4, length 46
    21:45:18.592551 ARP, Request who-has 192.168.1.3 tell 192.168.1.4, length 46
    21:45:19.594875 ARP, Request who-has 192.168.1.3 tell 192.168.1.4, length 46

    Alguém pode me dar uma luz onde estou errando?</full-duplex></performnud,auto_linklocal></rxcsum,txcsum,vlan_mtu,vlan_hwtagging,vlan_hwcsum,vlan_hwtso,linkstate></up,broadcast,running,promisc,simplex,multicast>



  • testa um serviço no lugar de testar a comunicação via ping. Coloca o vip como gateway da estação por exemplo e vê se navega.



  • @marcelloc:

    testa um serviço no lugar de testar a comunicação via ping. Coloca o vip como gateway da estação por exemplo e vê se navega.

    Vou fazer esse teste mas antes já adianto a pergunta: se a estação não tem o MAC do VIP, como vai mandar pacote pra ele?



  • @broonu:

    Vou fazer esse teste mas antes já adianto a pergunta: se a estação não tem o MAC do VIP, como vai mandar pacote pra ele?

    monitora com o tcpdump para ver até onde vai (tcpdump -nn -i bge0 arp  por exemplo). Na 2.3 o carp mudou bastante. Nas versões anteriores, o pfSense subia uma interface para cada vip.



  • @marcelloc:

    @broonu:

    Vou fazer esse teste mas antes já adianto a pergunta: se a estação não tem o MAC do VIP, como vai mandar pacote pra ele?

    monitora com o tcpdump para ver até onde vai (tcpdump -nn -i bge0 arp  por exemplo). Na 2.3 o carp mudou bastante. Nas versões anteriores, o pfSense subia uma interface para cada vip.

    Sim, tinha feito exatamente esse teste.
    O pfSense reponde o arp-request, mas a estação não recebe o arp-reply.
    Parece então um problema no switch, alguma configuração a ser feita.

    Muito obrigado!



  • Pra atualizar e caso alguem tenha o mesmo problema:

    http://unix.derkeiler.com/Mailing-Lists/FreeBSD/net/2011-10/msg00229.html
    https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=141023

    O pfsense responde o arp-reply com o MAC do VIP, mas esse pacote vai com o MAC da interface local.
    Com isso, alguns equipamentos ignoram.


Log in to reply