NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/48945: CARP preempt is not working



        Hi bouyer.
        I'm very thanks for your reply, and sorry for late reply.

bouyer> >  bouyer>  (that would be dangerous, you could end up with all 
interfaces in backup state
bouyer> >  bouyer>  on both routers).
bouyer> >  
bouyer> >       Followings are maybe off topic, sorry.
bouyer> >  
bouyer> >       I want to this works. I wrote rt-A/rt-B is a router, but in my 
real
bouyer> >       environment, rt-A and rt-B is router with Firewall(pf) and
bouyer> >       IDS(snort).
bouyer> >       So if rt-A and rt-B is asynmetric, pf and snort works limited
bouyer> >       because (for ex) Incomming traffic is pass through rt-A and 
outgoing
bouyer> >       traffic is pass through rt-B.
bouyer> 
bouyer> this is what I don't get; why would traffic go to rt-B if rt-A is up ?
bouyer> And if rt-A is down, traffic won't go to it (there may be some time 
before
bouyer> the traffic switches from A to B while the switch's commutation table is
bouyer> updated).
bouyer> I have a setup similar to yours, and AFAIK if an interface on rt-A goes
bouyer> down, all traffic is redirected to rt-B.

        I found following scenario.

        0. Topology

                carp0        carp1
               xennet0      xennet1
                  +--- rt-A ---+
        Term-A ---+            +--- Term-B
                  +--- rt-B ---+

        Term-A: 10.0.0.10/24 default route is 10.0.0.1(carp0's Addr)
        carp0 :          10.0.0.1/24
        rt-A  : xennet0: 10.0.0.2/24
        rt-B  : xennet0: 10.0.0.3/24

        Term-B: 10.1.1.10/24 default route is 10.1.1.1(carp1's Addr)
        carp0 :          10.1.1.1/24
        rt-A  : xennet1: 10.1.1.2/24
        rt-B  : xennet1: 10.1.1.3/24

        1. rt-A's carp0: advskew 100, tied to xennet0 -> MASTER has 10.0.0.1
                  carp1: advskew 100, tied to xennet1 -> MASTER has 10.1.1.1
           rt-B's carp0: advskew 150, tied to xennet0 -> BACKUP
                  carp1: advskew 150, tied to xennet1 -> BACKUP

        2. I did followings on rt-A
           ifconfig carp0 down
           then state is followings
           rt-A's carp0: down -> BACKUP
                  carp1: up   -> MASTER : has 10.0.0.1
           rt-B's carp0: up   -> MASTER : has 10.1.1.1
                  carp1: up   -> BACKUP

        3. Ping from Term-A to Term-B
           for go:  Term-A -> rt-B's carp0 -> rt-B's xennet1 -> Term-B
           go back: Term-B -> rt-A's carp1 -> rt-A's xennet0 -> Term-A
           This is because rt-A's carp0 is down but carp1 is up.

        Of cource this is worst case because this is rare case that xennet0
        has no trouble but carp0 is down.
        As you say if an interdace on rt-A goes down, all traffic is
        redirected to rt-B because if Physical interface(or interface which
        tied to carp interface) is down, preempting is work.

        "Now" I thought too much worried of my senario, but it will be able
        to happen.

        Thanks again.

HEO


Home | Main Index | Thread Index | Old Index