@Gregory: the configuration is just an example, is not a LAB but i changed IP 
information for privacy
@Claudio: Yes there are lots of ways to achieve this, for example "depends on" 
options that annonunce a route via BGP only if interface link is up (in terms 
of carp MASTER)

let me be more clear, I have this scenario: two fw with shared ip 
10.10.10.100/32 between two hosts fw-01 (MASTER) and fw-02 (SLAVE).
Provider routers is set to forward traffic to fw-01 and fallback on fw-02.
If bgpd crashes on fw-01, but network still stays up, fw-01 will still be the 
MASTER of carp, but ISP routers will forward traffic to fw-02 (SLAVE) cause 
they detects bgpd session down.
Even tough fw-02 is SLAVE, it is taking charge of traffic and forwarding it to 
below network without any issue.
So, my question is: is this un expected carp behavior?? 

Thank you for your time
Luca
> Il giorno 2 apr 2020, alle ore 15:12, Claudio Jeker 
> <cje...@diehard.n-r-g.com> ha scritto:
> 
> On Thu, Apr 02, 2020 at 11:34:21AM +0200, Luca Bodini wrote:
>> Hi folks,
>> 
>> I’m just having a strange issue using OpenBSD 6.6 and BGP .
>> I have two OpenBSD firewalls with a carp configuration, let’s suppose the 
>> shared IP is 10.10.10.100, and I am able to announce 10.10.10.100/32 via BGP.
>> Now, here is my /etc/bgpd.conf configuration:
>> 
>> # define our own ASN as a macro
>> ASN=“65000"
>> rde med compare always
>> 
>> # global configuration
>> AS $ASN
>> router-id 172.10.10.3 
>> 
>> # list of networks that may be originated by our ASN
>> prefix-set mynetworks {         \
>>        10.10.10.100/32        \
>> }
>> 
>> # Generate routes for the networks our ASN will originate.
>> # The communities (read 'tags') are later used to match on what
>> # is announced to EBGP neighbors
>> network prefix-set mynetworks set { community $ASN:1 med 10 } 
>> 
>> # upstream providers
>> group "upstreams" {
>>        remote-as 20746
>>        neighbor 172.10.10.1  {
>>                descr “provider router 01"
>>        }
>>        neighbor 172.10.10.2 {
>>                descr “provider router 02"
>>        }
>> }
>> 
>> ## rules section
>> allow from group upstreams prefix 0.0.0.0/0
>> 
>> # IBGP: allow all updates to and from our IBGP neighbors
>> allow from ibgp
>> allow to ibgp
>> allow to ebgp prefix-set mynetworks 
>> 
>> The problem I’m facing is due to (i guess) provider router misconfiguration, 
>> in fact, routers are forwarding traffic to carp slave and unexpectedly 
>> everything is working fine: firewall is accepting connections and forwarding 
>> traffic, for example if I try to SSH:
>> ~# ssh -l root 10.10.10.100
>> [root@fw-02 root]# ifconfig | grep vhid
>>        carp: BACKUP carpdev vlan100 vhid 10 advbase 1 advskew 10 
>> 
>> I’ve asked provider to change BGP configuration and everything now is 
>> stetted up correctly, now, the question is:
>> Is the carp slave accepting and forwarding connections by design or is it un 
>> “unintended" feature?
>> 
> 
> By default bgpd will just announce mynetworks without checking if
> something is up or not.
> You may have more luck with 'network inet connected' or even better use a
> rtlabel. In that case bgpd should respect the status of the route.
> 
> I normally use carp on both sides and use 'network X/Y set nexthop $CARPIP'
> Where $CARPIP is the external carp IP shared between the two routers. In
> this case both systems announce the same network with the same nexthop
> (the carp IP) to the next routers and so no rerouting happens if the
> master dies. This only works if the systems share a lan segement for ebgp
> sessions.
> 
> -- 
> :wq Claudio

Reply via email to