CARP VIP not reachable from another BSD machine, but from all other Linux hosts



  • Hello,
    I have a (at least to me) very strange problem. I can ping my virtual (carp) ip from all my linux hosts in that subnet, but it can't be reached from a freenas (bsd) machine. At the moment I'm using the pfsense0 "real" ip as a gateway for my freenas, which works fine, but of course can't fail over.

    My setup is the following:

    10.2.0.1 <- virtual ip (carp)
    10.2.0.100 <- pfsense0
    10.2.0.101 <- pfsenes1
    10.2.0.3 <- bsd machine (in this case a freenas)
    10.2.0.2 <- linux machine

    from the linux vm:

    $ ping -c 3 10.2.0.1
    PING 10.2.0.1 (10.2.0.1) 56(84) bytes of data.
    64 bytes from 10.2.0.1: icmp_req=1 ttl=64 time=0.365 ms
    64 bytes from 10.2.0.1: icmp_req=2 ttl=64 time=0.606 ms
    64 bytes from 10.2.0.1: icmp_req=3 ttl=64 time=0.669 ms
    
    --- 10.2.0.1 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 1998ms
    rtt min/avg/max/mdev = 0.365/0.546/0.669/0.133 ms
    

    from the freenas machine:

    [root@freenas ~]# ping -c 3 10.2.0.1                                                                                                
    PING 10.2.0.1 (10.2.0.1): 56 data bytes                                                                                             
    
    --- 10.2.0.1 ping statistics ---                                                                                                    
    3 packets transmitted, 0 packets received, 100.0% packet loss
    

    but the freenas vm can reach the "real ips":

    ping -c 3 10.2.0.100                                                                                              
    PING 10.2.0.100 (10.2.0.100): 56 data bytes                                                                                         
    64 bytes from 10.2.0.100: icmp_seq=0 ttl=64 time=0.294 ms                                                                           
    64 bytes from 10.2.0.100: icmp_seq=1 ttl=64 time=0.399 ms                                                                           
    64 bytes from 10.2.0.100: icmp_seq=2 ttl=64 time=0.307 ms                                                                           
    
    --- 10.2.0.100 ping statistics ---                                                                                                  
    3 packets transmitted, 3 packets received, 0.0% packet loss                                                                         
    round-trip min/avg/max/stddev = 0.294/0.333/0.399/0.047 ms 
    
    [root@freenas ~]# ping -c 3 10.2.0.101                                                                                              
    PING 10.2.0.101 (10.2.0.101): 56 data bytes                                                                                         
    64 bytes from 10.2.0.101: icmp_seq=0 ttl=64 time=0.391 ms                                                                           
    64 bytes from 10.2.0.101: icmp_seq=1 ttl=64 time=0.494 ms                                                                           
    64 bytes from 10.2.0.101: icmp_seq=2 ttl=64 time=0.318 ms                                                                           
    
    --- 10.2.0.101 ping statistics ---                                                                                                  
    3 packets transmitted, 3 packets received, 0.0% packet loss                                                                         
    round-trip min/avg/max/stddev = 0.318/0.401/0.494/0.072 ms
    

    Any ideas why this might work from the linux machines, but fails from a bsd machine?



  • No one with an idea? That usually means that I asked a really stupid question :-)

    I also might be completely wrong with the idea that it has something to do with the difference between BSD and Linux.

    Any help here is very welcome. I have no idea left on where to look for the problem.