Re: VRRP owner routers - is priority asserted to max value?
barak adam <[email protected]> Sat, 18 Feb 2017 07:53:45 +0200
| Newsgroups | gmane.linux.keepalived.devel |
|---|---|
| Message-ID | <CAAme7ok0Uf7D-a_ZzNcsTTOtS-AThAjaCMi0b+Ob_5rKkNawbQ@mail.gmail.com> |
inline On Fri, Feb 17, 2017 at 7:55 PM, Quentin Armitage <[email protected]> wrote: > On Fri, 2017-02-17 at 18:11 +0200, barak adam wrote: > > On Thu, Feb 16, 2017 at 4:14 PM, Quentin Armitage <[email protected]> > wrote: > > On Thu, 2017-02-16 at 09:26 +0200, barak adam wrote: > > Hi, > > > I've got 2 questions about VRRP routers *ownership *handling in > Keepalived: > > > According to the VRRP RFCs, an owner router must assert its priority to > 255 in order to preemt and become the Master as soon as it is up. > RFC 5798, section 5.2.4: "The priority value for the VRRP router that owns > the IPvX address associated with the virtual router MUST be 255 (decimal)." > > 1) Keepalived - it was possible for me to configure an owner VRRP router > and assign it a value less then 255. > When the router was up, a priority value of 255 was not asserted > automatically and it was not elected as a MASTER (of course preemption was > enabled). > > What do you mean by *configure an owner VRRP router*? Do you mean that > the VIP configured for the VRRP instance already existed on the interface? > If so, that could cause all sorts of issues. > > > yes, that's what I mean by an owner. VIP = real IP exist on the interface. > > I don't think this will work with keepalived. When it becomes master it > will attempt to add the VIPs to the interface, which in the case of an IP > address already existing will fail. However, when keepalived terminates (or > if it should become a backup), then it will remove the VIPs, which will > include the previously existing IP address. Anway I am ready to try again. > > I think it's not exactly what happens. I've sent my question after > successfully trying to configure a VIP which equals an existing IP on the > interface. I think a new network interface is always created by keepalived > based on the virtual MAC and then a VIP is added or removed to/from this > new interface when entering or leaving master state respectively. > (if you type "ifconfig -a" you will see 2 interfaces with the same IP, one > real interface based on the real MAC and the other is virtual (vrrp.x) and > is based on the virtual MAC...) > > > Is it OK to successfully load a configuration in which a VRRP owner router > has a priority less then 255? Is it OK that priority value of 255 is not > asserted on run-time for VRRP owners? > > Yes, it is not a problem if no router has priority 255. The only problem > is if more than one router has priority 255. > > The issue of an address owner doesn't really apply to keepalived. A VRRP > instance simply has a priority, and if that priority is 255, then the VRRP > instance will act as though it is the address owner. > > > > > I agree. but I still think we should comply the RFC and assert a priority > value of 255 in case of our VRRP router is an owner. > > (it is stated as "MUST" in RFC) > > I think the answer to this is to configure the priority in the config file > (but note comment above that using an IP address already configured won't > really work). > I added my comment above. > > > > The concept of address owner really applies where you have a physical > "black box" router that is always running VRRP, and the address that VRRP > is protecting is an address configured on an interface of that router. If > that router is up, then it must be the master; if the router disappears > then another (backup) router should take over that address. > > 2) Should Keepalived update VRRP routers ownership automatically? > > > For example: > > 2.1) IP addition: > Assuming a non-owner VRRP router is configured on a link. > A new real IP is added on the link and this IP equals one of the > VIPs assigned to the VRRP router on that link. > Would that router will be updated automatically with a priority value of > 255? > > keepalived doesn't handle dynamic changes of system or network > configuration. When keepalived becomes master it adds the VIP addresses > (and eVIPs) to the relevant interface(s), and when it transitions to backup > it removes those addresses. It doesn't expect VIPs that it has configured > to be added by another process. > > There could be a problem here if, for example, there were two VIPs > configured in a VRRP instance, and one of those addresses were added to one > router, and the other added to another router, since they would then both > be updated to priority 255. > > > > OK. got it. Since in VRRP advertisements priority is set one value for all > VIPs, this really might be a problem. > > > Also, if a VRRP instance were already master, but running with a priority > less than 255, it wouldn't be possible to add a VIP to a link, since it > would already be configured. > > > > Yes... > > > 2.2) IP deletion: > Assuming an owner VRRP router is configured on a link. > A real IP which is the last one owned by a VRRP router is removed on a > link and makes the router a NON owner router. > Would a priority value of 255 be released, in case it was previously > asserted to 255 for ownership? > > keepalived doesn't anticipate VIPs that it has added being removed, and it > could cause problems since it would be advertising an address even though > it didn't have it configured on a link. It could be argued that the address > should no longer be advertised, but if the backup routers are checking the > count of IP addresses and/or the addresses themselves, they would consider > that there had been a misconfiguration. > > In fact, my thinking had been that if a VIP were removed by another > process, then the VRRP instance should revert to backup mode (probably > sending a priority 0 advert), and then if it became master again, it would > re-add the VIPs. > > Do you have a use case for the IP addition and IP deletion scenarios? If > so it would be helpful if you could describe it, and then perhaps a > solution can be suggested. > > > No I don't have. I just had been thinking if I have to handle it myself... > > > Regarding IP additions - I now recall that in our routers - setting > multiple IPs on the same subnet are not allowed on the same physical link, > so I don't think I will get into a case where a new IP is added and equals > a running VIP... > > > Regarding VIP removal by another process - I agree, just a small question: > as far as I know priority 0 is used by the virtual router to get out of the > election game, means get into FAULT state and not BACKUP, and this is > already done by keepalived when the underlying interface is down or the VIP > is removed - isn't it? > > Priority 0 is used to notify other virtual routers that the current master > router is ceasing to operate. It then causes a faster re-election process > than if the router silently went away. keepalived will send a priority 0 > advert if it is shutting down or if a VRRP instance goes into fault state. > > > > > You questions above raise some interesting thoughts, such as being able to > dynamically change the priority of a VRRP instance. This could be done via > SNMP or D-BUS, or even an api could be exposed to do it. > > > > Another question about priority: > ======================= > > Using keepalived option of track-interface + weight: Is it possible to get > a notification (like calling any notification script as possible upon state > change) from keepalived when it is detecting that the tracked interface is > down and advertising a new priority value according to my weight setting? > > I am just interested in monitoring the real priority value advertised by > keepalived... > > keepalived doesn't currently support this functionality, although it would > be possible to add it in if really needed. You should be able to access the > current priority using SNMP though. > OK, thanks. First I will try SNMP to get the actual priority. Then we will consider adding it.. > > Quentin Armitage > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Keepalived-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/keepalived-devel