Add VRRP to an existing router

Add VRRP to an existing router

This section describes the process of migrating from a classic router to an L3 HA router, which is available starting from the Mitaka release.

Similar to the classic scenario, all network traffic on a project network that requires routing actively traverses only one network node regardless of the quantity of network nodes providing HA for the router. Therefore, this high-availability implementation primarily addresses failure situations instead of bandwidth constraints that limit performance. However, it supports random distribution of routers on different network nodes to reduce the chances of bandwidth constraints and to improve scaling.

This section references parts of Linux bridge: High availability using VRRP and Open vSwitch: High availability using VRRP. For details regarding needed infrastructure and configuration to allow actual L3 HA deployment, read the relevant guide before continuing with the migration process.

Migration

The migration process is quite simple, it involves turning down the router by setting the router’s admin_state_up attribute to False, upgrading the router to L3 HA and then setting the router’s admin_state_up attribute back to True.

Warning

Once starting the migration, south-north connections (instances to internet) will be severed. New connections will be able to start only when the migration is complete.

Here is the router we have used in our demonstration:

$ neutron router-show router

+-----------------------+--------------------------------------+
| Field                 | Value                                |
+-----------------------+--------------------------------------+
| admin_state_up        | True                                 |
| distributed           | False                                |
| external_gateway_info |                                      |
| ha                    | False                                |
| id                    | f8cc0f21-f51f-471d-a03c-37a6966553e0 |
| name                  | router                               |
| routes                |                                      |
| status                | ACTIVE                               |
| tenant_id             | ef488829f82c4a36a262011fabe0129f     |
+-----------------------+--------------------------------------+
  1. Source the administrative project credentials.

  2. Set the admin_state_up to False. This will severe south-north connections until admin_state_up is set to True again.

    $ neutron router-update router --admin_state_up=False
    Updated router: router
    
  3. Set the ha attribute of the router to True.

    $ neutron router-update router --ha=True
    Updated router: router
    
  4. Set the admin_state_up to True. After this, south-north connections can start.

    $ neutron router-update router --admin_state_up=True
    Updated router: router
    
  5. Make sure that the router’s ha attribute has changed to True.

    $ neutron router-show router
    
    +-----------------------+--------------------------------------+
    | Field                 | Value                                |
    +-----------------------+--------------------------------------+
    | admin_state_up        | True                                 |
    | distributed           | False                                |
    | external_gateway_info |                                      |
    | ha                    | True                                 |
    | id                    | f8cc0f21-f51f-471d-a03c-37a6966553e0 |
    | name                  | router                               |
    | routes                |                                      |
    | status                | ACTIVE                               |
    | tenant_id             | ef488829f82c4a36a262011fabe0129f     |
    +-----------------------+--------------------------------------+
    

L3 HA to Legacy

To return to classic mode, turn down the router again, turning off L3 HA and starting the router again.

Warning

Once starting the migration, south-north connections (instances to internet) will be severed. New connections will be able to start only when the migration is complete.

Here is the router we have used in our demonstration:

$ neutron router-show router

+-----------------------+--------------------------------------+
| Field                 | Value                                |
+-----------------------+--------------------------------------+
| admin_state_up        | False                                |
| distributed           | False                                |
| external_gateway_info |                                      |
| ha                    | True                                 |
| id                    | f8cc0f21-f51f-471d-a03c-37a6966553e0 |
| name                  | router                               |
| routes                |                                      |
| status                | ACTIVE                               |
| tenant_id             | ef488829f82c4a36a262011fabe0129f     |
+-----------------------+--------------------------------------+
  1. Source the administrative project credentials.

  2. Set the admin_state_up to False. This will severe south-north connections until admin_state_up is set to True again.

    $ neutron router-update router --admin_state_up=False
    Updated router: router
    
  3. Set the ha attribute of the router to True.

    $ neutron router-update router --ha=False
    Updated router: router
    
  4. Set the admin_state_up to True. After this, south-north connections can start.

    $ neutron router-update router --admin_state_up=True
    Updated router: router
    
  5. Make sure that the router’s ha attribute has changed to False.

    $ neutron router-show router
    
    +-----------------------+--------------------------------------+
    | Field                 | Value                                |
    +-----------------------+--------------------------------------+
    | admin_state_up        | True                                 |
    | distributed           | False                                |
    | external_gateway_info |                                      |
    | ha                    | False                                |
    | id                    | f8cc0f21-f51f-471d-a03c-37a6966553e0 |
    | name                  | router                               |
    | routes                |                                      |
    | status                | ACTIVE                               |
    | tenant_id             | ef488829f82c4a36a262011fabe0129f     |
    +-----------------------+--------------------------------------+
    
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.