arista.eos.eos_bgp_address_family module – Manages BGP address family resource module
Note
This module is part of the arista.eos collection (version 10.0.1).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install arista.eos
.
To use it in a playbook, specify: arista.eos.eos_bgp_address_family
.
New in arista.eos 1.4.0
Synopsis
This module configures and manages the attributes of BGP AF on Arista EOS platforms.
Parameters
Parameter |
Comments |
---|---|
Configurations for BGP address family. |
|
Enable address family and enter its config mode |
|
address family. Choices:
|
|
BGP parameters. |
|
BGP additional-paths commands Choices:
|
|
Next-hop address-family configuration Choices:
|
|
Preserve original nexthop while advertising routes to eBGP peers. Choices:
|
|
Redistribute internal BGP routes. Choices:
|
|
Configure route-map for route installation. |
|
Enable graceful restart mode. Choices:
|
|
Configure routing for a network. |
|
Activate neighbor in the address family. Choices:
|
|
BGP additional-paths commands. Choices:
|
|
Originate default route to this neighbor. |
|
Always originate default route to this neighbor. Choices:
|
|
Route map reference. |
|
Default transport encapsulation for neighbor. Applicable for evpn address-family. |
|
Source interface to update BGP next hop address. Applicable for mpls transport. |
|
MPLS/VXLAN transport. Choices:
|
|
Enable graceful restart mode. Choices:
|
|
Next-hop address-family configuration Choices:
|
|
Preserve original nexthop while advertising routes to eBGP peers. Choices:
|
|
Neighbor address/ peer group name. |
|
Prefix list reference. |
|
Configure an inbound/outbound prefix-list. Choices:
|
|
prefix list name. |
|
Route map reference. |
|
Configure an inbound/outbound route-map. Choices:
|
|
Route map name. |
|
Weight to assign. |
|
configure routing for network. |
|
network address. |
|
Route map reference. |
|
Redistribute routes in to BGP. |
|
Applicable for isis routes. Specify isis route level. Choices:
|
|
ospf route options. Choices:
|
|
Routes to be redistributed. Choices:
|
|
Route map reference. |
|
Route target. |
|
Route action. Choices:
|
|
Export routes imported from the same Afi/Safi Choices:
|
|
Name of a route map. |
|
Route Target. |
|
Type of address fmaily Choices:
|
|
Address family type for ipv4. Choices:
|
|
name of the VRF in which BGP will be configured. |
|
Autonomous system number. |
|
This option is used only with state parsed. The value of this option should be the output received from the EOS device by executing the command show running-config | section bgp. The state parsed reads the configuration from |
|
The state the configuration should be left in. Choices:
|
Notes
Note
Tested against Arista EOS 4.24.6F
This module works with connection
network_cli
. See the EOS Platform Options.
Examples
# Using Merged
# Before state:
# -------------
# veos(config)#show running-config | section bgp
# veos(config)#
- name: Merge provided configuration with device configuration
arista.eos.eos_bgp_address_family:
config:
as_number: "10"
address_family:
- afi: "ipv4"
redistribute:
- protocol: "ospfv3"
ospf_route: "external"
network:
- address: "1.1.1.0/24"
- address: "1.5.1.0/24"
route_map: "MAP01"
- afi: "ipv6"
bgp_params:
additional_paths: "receive"
neighbor:
- peer: "peer2"
default_originate:
always: true
- afi: "ipv6"
redistribute:
- protocol: "isis"
isis_level: "level-2"
route_target:
mode: "export"
target: "33:11"
vrf: "vrft"
state: merged
# Task output:
# ------------
# before: {}
#
# commands:
# - router bgp 10
# - address-family ipv4
# - redistribute ospfv3 match external
# - network 1.1.1.0/24
# - network 1.5.1.0/24 route-map MAP01
# - exit
# - address-family ipv6
# - neighbor peer2 default-originate always
# - bgp additional-paths receive
# - exit
# - vrf vrft
# - address-family ipv6
# - redistribute isis level-2
# - route-target export 33:11
# - exit
# - exit
#
# after:
# address_family:
# - afi: ipv4
# neighbor:
# - activate: true
# peer: 1.1.1.1
# network:
# - address: 1.1.1.0/24
# - address: 1.5.1.0/24
# route_map: MAP01
# redistribute:
# - ospf_route: external
# protocol: ospfv3
# - afi: ipv6
# bgp_params:
# additional_paths: receive
# neighbor:
# - activate: true
# default_originate:
# always: true
# peer: peer2
# - afi: ipv6
# redistribute:
# - isis_level: level-2
# protocol: isis
# route_target:
# action: export
# target: '33:11'
# vrf: vrft
# as_number: '10'
# "before": {},
# "changed": true,
# After state:
# ------------
# veos(config-router-bgp)#show running-config | section bgp
# router bgp 10
# neighbor peer2 peer group
# neighbor peer2 maximum-routes 12000
# neighbor 1.1.1.1 maximum-routes 12000
# !
# address-family ipv4
# neighbor 1.1.1.1 activate
# network 1.1.1.0/24
# network 1.5.1.0/24 route-map MAP01
# redistribute ospfv3 match external
# !
# address-family ipv6
# bgp additional-paths receive
# neighbor peer2 activate
# neighbor peer2 default-originate always
# !
# vrf vrft
# address-family ipv6
# route-target export 33:11
# redistribute isis level-2
# Using replaced
# Before state:
# -------------
# veos(config-router-bgp)#show running-config | section bgp
# router bgp 10
# neighbor peer2 peer group
# neighbor peer2 maximum-routes 12000
# neighbor 1.1.1.1 maximum-routes 12000
# !
# address-family ipv4
# neighbor 1.1.1.1 activate
# network 1.1.1.0/24
# network 1.5.1.0/24 route-map MAP01
# redistribute ospfv3 match external
# !
# address-family ipv6
# bgp additional-paths receive
# neighbor peer2 activate
# neighbor peer2 default-originate always
# !
# vrf vrft
# address-family ipv6
# route-target export 33:11
# redistribute isis level-2
- name: Replace running config section with provided config
arista.eos.eos_bgp_address_family:
config:
as_number: "10"
address_family:
- afi: "ipv6"
vrf: "vrft"
redistribute:
- protocol: "ospfv3"
ospf_route: "external"
- afi: "ipv6"
redistribute:
- protocol: "isis"
isis_level: "level-2"
state: replaced
# Task output:
# ------------
# before:
# address_family:
# - afi: ipv4
# neighbor:
# - activate: true
# peer: 1.1.1.1
# network:
# - address: 1.1.1.0/24
# - address: 1.5.1.0/24
# route_map: MAP01
# redistribute:
# - ospf_route: external
# protocol: ospfv3
# - afi: ipv6
# bgp_params:
# additional_paths: receive
# neighbor:
# - activate: true
# default_originate:
# always: true
# peer: peer2
# - afi: ipv6
# redistribute:
# - isis_level: level-2
# protocol: isis
# route_target:
# action: export
# target: '33:11'
# vrf: vrft
# as_number: '10'
#
# commands:
# - router bgp 10
# - vrf vrft
# - address-family ipv6
# - redistribute ospfv3 match external
# - no redistribute isis level-2
# - no route-target export 33:11
# - exit
# - exit
# - address-family ipv6
# - redistribute isis level-2
# - no neighbor peer2 activate
# - no bgp additional-paths receive
# - exit
#
# after:
# address_family:
# - afi: ipv4
# neighbor:
# - activate: true
# peer: 1.1.1.1
# network:
# - address: 1.1.1.0/24
# - address: 1.5.1.0/24
# route_map: MAP01
# redistribute:
# - ospf_route: external
# protocol: ospfv3
# - afi: ipv6
# neighbor:
# - default_originate:
# always: true
# peer: peer2
# redistribute:
# - isis_level: level-2
# protocol: isis
# - afi: ipv6
# redistribute:
# - ospf_route: external
# protocol: ospfv3
# vrf: vrft
# as_number: '10'
# After state:
# ------------
# veos(config-router-bgp)#show running-config | section bgp
# router bgp 10
# neighbor peer2 peer group
# neighbor peer2 maximum-routes 12000
# neighbor 1.1.1.1 maximum-routes 12000
# !
# address-family ipv4
# neighbor 1.1.1.1 activate
# network 1.1.1.0/24
# network 1.5.1.0/24 route-map MAP01
# redistribute ospfv3 match external
# !
# address-family ipv6
# neighbor peer2 default-originate always
# redistribute isis level-2
# !
# vrf vrft
# address-family ipv6
# redistribute ospfv3 match external
# Using overridden (overriding af at global context):
# Before state:
# -------------
# veos(config-router-bgp)#show running-config | section bgp
# router bgp 10
# neighbor peer2 peer group
# neighbor peer2 maximum-routes 12000
# neighbor 1.1.1.1 maximum-routes 12000
# !
# address-family ipv4
# neighbor 1.1.1.1 activate
# network 1.1.1.0/24
# network 1.5.1.0/24 route-map MAP01
# redistribute ospfv3 match external
# !
# address-family ipv6
# neighbor peer2 default-originate always
# redistribute isis level-2
# !
# vrf vrft
# address-family ipv6
# redistribute ospfv3 match external
- name: Override running config with provided config
arista.eos.eos_bgp_address_family:
config:
as_number: "10"
address_family:
- afi: "ipv4"
bgp_params:
additional_paths: "receive"
neighbor:
- peer: "peer2"
default_originate:
always: true
state: overridden
#
# Task output:
# ------------
# before:
# address_family:
# - afi: ipv4
# neighbor:
# - activate: true
# peer: 1.1.1.1
# network:
# - address: 1.1.1.0/24
# - address: 1.5.1.0/24
# route_map: MAP01
# redistribute:
# - ospf_route: external
# protocol: ospfv3
# - afi: ipv6
# neighbor:
# - default_originate:
# always: true
# peer: peer2
# redistribute:
# - isis_level: level-2
# protocol: isis
# - afi: ipv6
# redistribute:
# - ospf_route: external
# protocol: ospfv3
# vrf: vrft
# as_number: '10'
#
# commands:
# - router bgp 10
# - address-family ipv4
# - no redistribute ospfv3 match external
# - no network 1.1.1.0/24
# - no network 1.5.1.0/24 route-map MAP01
# - neighbor peer2 default-originate always
# - no neighbor 1.1.1.1 activate
# - bgp additional-paths receive
# - exit
# - no address-family ipv6
#
# after:
# address_family:
# - afi: ipv4
# bgp_params:
# additional_paths: receive
# neighbor:
# - default_originate:
# always: true
# peer: peer2
# - afi: ipv6
# redistribute:
# - ospf_route: external
# protocol: ospfv3
# vrf: vrft
# as_number: '10'
# After state:
# ------------
# veos(config-router-bgp)#show running-config | section bgp
# router bgp 10
# neighbor peer2 peer group
# neighbor peer2 maximum-routes 12000
# neighbor 1.1.1.1 maximum-routes 12000
# !
# address-family ipv4
# bgp additional-paths receive
# neighbor peer2 default-originate always
# !
# vrf vrft
# address-family ipv6
# redistribute ospfv3 match external
# using Overridden (overridding af in vrf context):
# Before state:
# -------------
# veos(config-router-bgp)#show running-config | section bgp
# router bgp 10
# neighbor peer2 peer group
# neighbor peer2 maximum-routes 12000
# neighbor 1.1.1.1 maximum-routes 12000
# !
# address-family ipv4
# bgp additional-paths receive
# neighbor peer2 default-originate always
# no neighbor 1.1.1.1 activate
# network 1.1.1.0/24
# network 1.5.1.0/24 route-map MAP01
# redistribute ospfv3 match external
# !
# address-family ipv6
# bgp additional-paths receive
# neighbor peer2 default-originate always
# !
# vrf vrft
# address-family ipv6
# route-target export 33:11
# redistribute isis level-2
# redistribute ospfv3 match external
- name: Override running config with provided config
arista.eos.eos_bgp_address_family:
config:
as_number: "10"
address_family:
- afi: "ipv4"
bgp_params:
additional_paths: "receive"
neighbor:
- peer: "peer2"
default_originate:
always: true
vrf: vrft
state: overridden
# Task output:
# ------------
# before:
# address_family:
# - afi: ipv4
# bgp_params:
# additional_paths: receive
# neighbor:
# - default_originate:
# always: true
# peer: peer2
# network:
# - address: 1.1.1.0/24
# - address: 1.5.1.0/24
# route_map: MAP01
# redistribute:
# - ospf_route: external
# protocol: ospfv3
# - afi: ipv6
# bgp_params:
# additional_paths: receive
# neighbor:
# - default_originate:
# always: true
# peer: peer2
# - afi: ipv6
# redistribute:
# - isis_level: level-2
# protocol: isis
# - ospf_route: external
# protocol: ospfv3
# route_target:
# action: export
# target: '33:11'
# vrf: vrft
# as_number: '10'
#
# commands:
# - router bgp 10
# - vrf vrft
# - address-family ipv4
# - neighbor peer2 default-originate always
# - bgp additional-paths receive
# - exit
# - exit
# - vrf vrft
# - no address-family ipv6
#
# after:
# address_family:
# - afi: ipv4
# bgp_params:
# additional_paths: receive
# neighbor:
# - default_originate:
# always: true
# peer: peer2
# network:
# - address: 1.1.1.0/24
# - address: 1.5.1.0/24
# route_map: MAP01
# redistribute:
# - ospf_route: external
# protocol: ospfv3
# - afi: ipv6
# bgp_params:
# additional_paths: receive
# neighbor:
# - default_originate:
# always: true
# peer: peer2
# - afi: ipv4
# bgp_params:
# additional_paths: receive
# vrf: vrft
# as_number: '10'
# After state:
# ------------
# veos(config-router-bgp)#show running-config | section bgp
# router bgp 10
# neighbor peer2 peer group
# neighbor peer2 maximum-routes 12000
# neighbor 1.1.1.1 maximum-routes 12000
# !
# address-family ipv4
# bgp additional-paths receive
# neighbor peer2 default-originate always
# network 1.1.1.0/24
# network 1.5.1.0/24 route-map MAP01
# redistribute ospfv3 match external
# !
# address-family ipv6
# bgp additional-paths receive
# neighbor peer2 default-originate always
# !
# vrf vrft
# address-family ipv4
# bgp additional-paths receive
# Using deleted
# Before state:
# -------------
# veos(config-router-bgp)#show running-config | section bgp
# router bgp 10
# neighbor peer2 peer group
# neighbor peer2 maximum-routes 12000
# neighbor 1.1.1.1 maximum-routes 12000
# !
# address-family ipv4
# bgp additional-paths receive
# neighbor peer2 default-originate always
# no neighbor 1.1.1.1 activate
# network 1.1.1.0/24
# network 1.5.1.0/24 route-map MAP01
# redistribute ospfv3 match external
# !
# address-family ipv6
# bgp additional-paths receive
# neighbor peer2 default-originate always
# !
# vrf vrft
# address-family ipv4
# bgp additional-paths receive
- name: Delete running config for provided afi
arista.eos.eos_bgp_address_family:
config:
as_number: "10"
address_family:
- afi: "ipv6"
vrf: "vrft"
- afi: "ipv6"
state: deleted
# Task output:
# ------------
# before:
# address_family:
# - afi: ipv4
# bgp_params:
# additional_paths: receive
# neighbor:
# - default_originate:
# always: true
# peer: peer2
# network:
# - address: 1.1.1.0/24
# - address: 1.5.1.0/24
# route_map: MAP01
# redistribute:
# - ospf_route: external
# protocol: ospfv3
# - afi: ipv6
# bgp_params:
# additional_paths: receive
# neighbor:
# - default_originate:
# always: true
# peer: peer2
# - afi: ipv4
# bgp_params:
# additional_paths: receive
# vrf: vrft
# as_number: '10'
#
# after:
# address_family:
# - afi: ipv4
# bgp_params:
# additional_paths: receive
# neighbor:
# - default_originate:
# always: true
# peer: peer2
# network:
# - address: 1.1.1.0/24
# - address: 1.5.1.0/24
# route_map: MAP01
# redistribute:
# - ospf_route: external
# protocol: ospfv3
# - afi: ipv4
# bgp_params:
# additional_paths: receive
# vrf: vrft
# as_number: '10'
# After state:
# ------------
# veos(config-router-bgp)#show running-config | section bgp
# router bgp 10
# neighbor peer2 peer group
# neighbor peer2 maximum-routes 12000
# neighbor 1.1.1.1 maximum-routes 12000
# !
# address-family ipv4
# bgp additional-paths receive
# neighbor peer2 default-originate always
# no neighbor 1.1.1.1 activate
# network 1.1.1.0/24
# network 1.5.1.0/24 route-map MAP01
# redistribute ospfv3 match external
# !
# vrf vrft
# address-family ipv4
# bgp additional-paths receive
# Using parsed
# parsed.cfg
# ----------
# router bgp 10
# neighbor n2 peer group
# neighbor n2 next-hop-unchanged
# neighbor n2 maximum-routes 12000
# neighbor peer2 peer group
# neighbor peer2 maximum-routes 12000
# network 1.1.1.0/24
# network 1.5.1.0/24 route-map MAP01
# !
# address-family ipv4
# bgp additional-paths receive
# neighbor peer2 default-originate always
# redistribute ospfv3 match external
# !
# address-family ipv6
# no bgp additional-paths receive
# neighbor n2 next-hop-unchanged
# redistribute isis level-2
# !
# vrf bgp_10
# ip access-group acl01
# ucmp fec threshold trigger 33 clear 22 warning-only
# !
# address-family ipv4
# route-target import 20:11
# !
# vrf vrft
# address-family ipv4
# bgp additional-paths receive
# !
# address-family ipv6
# redistribute ospfv3 match external
- name: parse running config and generate structred facts
arista.eos.eos_bgp_address_family:
running_config: "{{ lookup('file', './parsed_bgp_address_family.cfg') }}"
state: parsed
# Task output:
# ------------
# parsed:
# address_family:
# - afi: ipv4
# bgp_params:
# additional_paths: receive
# neighbor:
# - default_originate:
# always: true
# peer: peer2
# redistribute:
# - ospf_route: external
# protocol: ospfv3
# - afi: ipv6
# neighbor:
# - next_hop_unchanged: true
# peer: n2
# redistribute:
# - isis_level: level-2
# protocol: isis
# - afi: ipv4
# route_target:
# action: import
# target: '20:11'
# vrf: bgp_10
# - afi: ipv4
# bgp_params:
# additional_paths: receive
# vrf: vrft
# - afi: ipv6
# redistribute:
# - ospf_route: external
# protocol: ospfv3
# vrf: vrft
# as_number: '10'
# Using gathered
# running config
# --------------
# veos(config-router-bgp)#show running-config | section bgp
# router bgp 10
# neighbor peer2 peer group
# neighbor peer2 maximum-routes 12000
# neighbor 1.1.1.1 maximum-routes 12000
# !
# address-family ipv4
# bgp additional-paths receive
# neighbor peer2 default-originate always
# no neighbor 1.1.1.1 activate
# network 1.1.1.0/24
# network 1.5.1.0/24 route-map MAP01
# redistribute ospfv3 match external
# !
# vrf vrft
# address-family ipv4
# bgp additional-paths receive
- name: gather running config
arista.eos.eos_bgp_address_family:
state: gathered
# Task output:
# ------------
# gathered:
# address_family:
# - afi: ipv4
# bgp_params:
# additional_paths: receive
# neighbor:
# - default_originate:
# always: true
# peer: peer2
# network:
# - address: 1.1.1.0/24
# - address: 1.5.1.0/24
# route_map: MAP01
# redistribute:
# - ospf_route: external
# protocol: ospfv3
# - afi: ipv4
# bgp_params:
# additional_paths: receive
# vrf: vrft
# as_number: '10'
# using rendered
- name: Render CLI commands for provided config
arista.eos.eos_bgp_address_family:
config:
as_number: "10"
address_family:
- afi: "ipv4"
redistribute:
- protocol: "ospfv3"
ospf_route: "external"
network:
- address: "1.1.1.0/24"
- address: "1.5.1.0/24"
route_map: "MAP01"
- afi: "ipv6"
bgp_params:
additional_paths: "receive"
neighbor:
- peer: "peer2"
default_originate:
always: true
- afi: "ipv6"
redistribute:
- protocol: "isis"
isis_level: "level-2"
route_target:
mode: "export"
target: "33:11"
vrf: "vrft"
state: rendered
# Task output:
# ------------
# rendered:
# - router bgp 10
# - address-family ipv4
# - redistribute ospfv3 match external
# - network 1.1.1.0/24
# - network 1.5.1.0/24 route-map MAP01
# - exit
# - address-family ipv6
# - neighbor peer2 default-originate always
# - bgp additional-paths receive
# - exit
# - vrf vrft
# - address-family ipv6
# - redistribute isis level-2
# - route-target export 33:11
# - exit
# - exit
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
The resulting configuration after module execution. Returned: when changed Sample: |
|
The configuration prior to the module execution. Returned: when state is Sample: |
|
The set of commands pushed to the remote device. Returned: when state is Sample: |
|
Facts about the network resource gathered from the remote device as structured data. Returned: when state is Sample: |
|
The device native config provided in running_config option parsed into structured data as per module argspec. Returned: when state is Sample: |
|
The provided configuration in the task rendered in device-native format (offline). Returned: when state is Sample: |