BGP Learning and Advertisement Support

Overview

This guide explains the BGP learning and advertisement support in Avi Vantage.

Note: This feature is not supported for IPv6.

The BGP learning and advertisement supports:

  • Learning routes from a set of peers.

  • Learning default route from a set of peers.

  • Advertising learned routes to a set of peers.

  • Advertising Avi Service Engine as default routes to a set of peers.

Use Cases

Learning Back-end Routes and Advertising the same to the Front-end

The following is the diagrammatic representation of learning back-end routes and advertising the same to the front-end:

learning-backend-routes

Learning Default Route from Front-end and Advertising itself as Default Route to Back-end

The following is the diagrammatic representation of learning default route from front-end and advertising itself as default route to back-end:

learning-default-route

Advertising directly connected Back-end Networks to Front-end

The following is the diagrammatic representation of advertising directly connected back-end networks to front-end:

advertising-directly-connected-backend-networks

Key Considerations

The following are the constraints with learning and advertising Avi Vantage BGP:

  • This feature is available via CLI only as of now.

  • The advertisement option is supported only when routing is enabled (Default Gateway (IP Routing on Avi SE)). Routing is supported only with Legacy-HA mode. Only active SE will advertise the routes.

  • Configurable route attributes, such as AS path prepend, IP communities, local preference, will not be applied on learned routes.

  • The filters to learning routes and advertising of learned routes are not allowed.

  • A label used in peer should be present in one routing option.

  • The peers are grouped to exchange routes based on associated label.

  • From a peer, you can either learn routes or learn default route, but not both.

  • The assumption for instance is that when you learn routes from backend peers, there will be no default route.

  • You will not be advertising Avi Service Engine as default route to any peer belonging to a group from which you are learning the default route.

  • You will not be advertising default route to any peer in the group to which you are advertising the learned routes.

Note: The routes learned through BGP will not be used for placement decision. The Controller will not use the routes learned by Service Engines through BGP to evaluate reachability to the pool servers.

Configuring Learning and Advertisement

The following is the sample configuration sequence with 1 front end peer and 1 back end peer:


[admin:ctlr-bgp]: > configure vrfcontext global
Updating an existing object. Currently, the object is:
+----------------------------+-------------------------------------------------+
| Field                      | Value                                           |
+----------------------------+-------------------------------------------------+
| uuid                       | vrfcontext-f1d049c8-306e-45eb-8fe3-1f6abb8e19ef  |
| name                       | global                                          |
| bgp_profile                |                                                 |
|   local_as                 | 66000                                           |
|   ibgp                     | False                                           |
|   peers[1]                 |                                                 |
|     remote_as              | 1                                           |
|     peer_ip                | 100.64.1.64                                    |
|     subnet                 | 100.64.1.0/24                                  |
|     md5_secret             | <sensitive>                                     |
|     bfd                    | True                                            |
|     advertise_vip          | True                                            |
|     advertise_snat_ip      | False                                           |
|     advertisement_interval | 5                                               |
|     connect_timer          | 10                                              |
|     ebgp_multihop          | 255                                             |
|     shutdown               | False                                         |
|     label                  | frontend                                      |
|   peers[2]                 |                                                 |
|     remote_as              | 65000                                          |
|     peer_ip                | 100.64.2.65                                    |
|     subnet                 | 100.64.2.0/24                                  |
|     md5_secret             | <sensitive>                              |
|     bfd                    | True                                            |
|     advertise_vip          | False                                           |
|     advertise_snat_ip      | True                                            |
|     advertisement_interval | 5                                               |
|     connect_timer          | 10                                              |
|     ebgp_multihop          | 255                                             |
|     shutdown               | False                                         |
|     label                  | backend                                       |
|   keepalive_interval       | 60                                              |
|   hold_time                | 180                                             |
|   send_community           | True                                            |
|   local_preference         | 400                                           |
| num_as_path_prepend        | 3                                             |
| routing_options[1]         |                                               |
|     label                  | backend                                       |
| learn_routes               | True                                          |
|   advertise_default_route  | True                                          |
|   max_learn_limit          | 100                                           |
| routing_options[2]         |                                               |
|     label                  | frontend                                       |
| learn_only_default_route   | True                                          |
| learn_routes               | False                                          |
|   advertise_learned_route  | True                                          |
|   max_learn_limit          | 50                                           |
|   shutdown                 | False                                           |
| system_default             | True                                            |
|   lldp_enable              | True                                           |
| tenant_ref                 | admin                                           |
| cloud_ref                  | Default-Cloud                                   |
+----------------------------+-------------------------------------------------+

The above example shows a configuration where default route is learned from the front-end, advertises default route to the back-end, learns routes from the back-end and advertises the learned routes to the front-end.

The following is the Service Engine route outputs to illustrate the learning and advertisement feature:


[admin:amit-ctrl-bgp]: >
[admin:amit-ctrl-bgp]: > show serviceengine Avi-se-mrcps route
+-----------------+-------------+-----------+---------------+---------------------------+
| IP Destination  | Gateway     | Interface | Interface IP  | Route Flags               |
+-----------------+-------------+-----------+---------------+---------------------------+
+-----------------+-------------+-----------+---------------+---------------------------+
VRF 0
+-----------------+-------------+-----------+---------------+---------------------------+
| 4.4.4.0/24      | 100.64.1.64 | eth3      | 100.64.1.24   | Up, Learned, Gateway, GWUp |
| 5.5.5.1/32      | 0.0.0.0     | eth3      | 5.5.5.1       | Up, GWUp                  |
| 6.6.6.0/24      | 100.64.2.65 | eth2      | 100.64.2.56   | Up, Learned, Gateway, GWUp|
| 7.7.7.1/32      | 0.0.0.0     | eth3      | 7.7.7.1       | Up, GWUp                  |
| 100.64.1.0/24   | 0.0.0.0     | eth3      | 100.64.1.24   | Up, GWUp                  |
| 100.64.1.104/32 | 0.0.0.0     | eth3      | 100.64.1.104  | Up, GWUp                  |
| 100.64.1.105/32 | 0.0.0.0     | eth3      | 100.64.1.105  | Up, GWUp                  |
| 100.64.1.106/32 | 0.0.0.0     | eth3      | 100.64.2.106  | Up, GWUp
| 100.64.1.108/32 | 0.0.0.0     | eth3      | 100.64.1.108  | Up, GWUp                  |
| 100.64.2.0/24   | 0.0.0.0     | eth2      | 100.64.2.56   | Up, GWUp|
+-----------------+-------------+-----------+---------------+---------------------------+
[admin:admin-ctrl-bgp]: >