From dccc17eb6956a9a09485b90198219559acd3a209 Mon Sep 17 00:00:00 2001 From: GomathiselviS Date: Thu, 22 Apr 2021 13:16:39 -0400 Subject: VYOS: Mask sensitive key values from module result (#151) VYOS: Mask sensitive key values from module result Reviewed-by: https://github.com/apps/ansible-zuul --- docs/vyos.vyos.vyos_bgp_address_family_module.rst | 2085 +++++++++++++++++++++ 1 file changed, 2085 insertions(+) create mode 100644 docs/vyos.vyos.vyos_bgp_address_family_module.rst (limited to 'docs') diff --git a/docs/vyos.vyos.vyos_bgp_address_family_module.rst b/docs/vyos.vyos.vyos_bgp_address_family_module.rst new file mode 100644 index 00000000..6ba0dc20 --- /dev/null +++ b/docs/vyos.vyos.vyos_bgp_address_family_module.rst @@ -0,0 +1,2085 @@ +.. _vyos.vyos.vyos_bgp_address_family_module: + + +********************************* +vyos.vyos.vyos_bgp_address_family +********************************* + +**BGP Address Family Resource Module.** + + +Version added: 2.1.0 + +.. contents:: + :local: + :depth: 1 + + +Synopsis +-------- +- This module manages BGP address family configuration of interfaces on devices running VYOS. + + + + +Parameters +---------- + +.. raw:: html + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterChoices/DefaultsComments
+
+ config + +
+ dictionary +
+
+ +
A dict of BGP global configuration for interfaces.
+
+
+ address_family + +
+ list + / elements=dictionary +
+
+ +
BGP address-family parameters.
+
+
+ afi + +
+ string +
+
+
    Choices: +
  • ipv4
  • +
  • ipv6
  • +
+
+
BGP address family settings.
+
+
+ aggregate_address + +
+ list + / elements=dictionary +
+
+ +
BGP aggregate network.
+
+
+ as_set + +
+ boolean +
+
+
    Choices: +
  • no
  • +
  • yes
  • +
+
+
Generate AS-set path information for this aggregate address.
+
+
+ prefix + +
+ string +
+
+ +
BGP aggregate network.
+
+
+ summary_only + +
+ boolean +
+
+
    Choices: +
  • no
  • +
  • yes
  • +
+
+
Announce the aggregate summary network only.
+
+
+ networks + +
+ list + / elements=dictionary +
+
+ +
BGP network
+
+
+ backdoor + +
+ boolean +
+
+
    Choices: +
  • no
  • +
  • yes
  • +
+
+
Network as a backdoor route.
+
+
+ path_limit + +
+ integer +
+
+ +
AS path hop count limit
+
+
+ prefix + +
+ string +
+
+ +
BGP network address
+
+
+ route_map + +
+ string +
+
+ +
Route-map to modify route attributes
+
+
+ redistribute + +
+ list + / elements=dictionary +
+
+ +
Redistribute routes from other protocols into BGP
+
+
+ metric + +
+ integer +
+
+ +
Metric for redistributed routes.
+
+
+ protocol + +
+ string +
+
+
    Choices: +
  • connected
  • +
  • kernel
  • +
  • ospf
  • +
  • ospfv3
  • +
  • rip
  • +
  • ripng
  • +
  • static
  • +
+
+
types of routes to be redistributed.
+
+
+ route_map + +
+ string +
+
+ +
Route map to filter redistributed routes
+
+
+ table + +
+ string +
+
+ +
Redistribute non-main Kernel Routing Table.
+
+
+ as_number + +
+ integer +
+
+ +
AS number.
+
+
+ neighbors + +
+ list + / elements=dictionary +
+
+ +
BGP neighbor
+
+
+ address_family + +
+ list + / elements=dictionary +
+
+ +
address family.
+
+
+ afi + +
+ string +
+
+
    Choices: +
  • ipv4
  • +
  • ipv6
  • +
+
+
BGP neighbor parameters.
+
+
+ allowas_in + +
+ integer +
+
+ +
Number of occurrences of AS number.
+
+
+ as_override + +
+ boolean +
+
+
    Choices: +
  • no
  • +
  • yes
  • +
+
+
AS for routes sent to this neighbor to be the local AS.
+
+
+ attribute_unchanged + +
+ dictionary +
+
+ +
BGP attributes are sent unchanged.
+
+
+ as_path + +
+ boolean +
+
+
    Choices: +
  • no
  • +
  • yes
  • +
+
+
as_path attribute
+
+
+ med + +
+ boolean +
+
+
    Choices: +
  • no
  • +
  • yes
  • +
+
+
med attribute
+
+
+ next_hop + +
+ boolean +
+
+
    Choices: +
  • no
  • +
  • yes
  • +
+
+
next_hop attribute
+
+
+ capability + +
+ dictionary +
+
+ +
Advertise capabilities to this neighbor.
+
+
+ dynamic + +
+ boolean +
+
+
    Choices: +
  • no
  • +
  • yes
  • +
+
+
Advertise dynamic capability to this neighbor.
+
+
+ orf + +
+ string +
+
+
    Choices: +
  • send
  • +
  • receive
  • +
+
+
Advertise ORF capability to this neighbor.
+
+
+ default_originate + +
+ string +
+
+ +
Send default route to this neighbor
+
+
+ distribute_list + +
+ list + / elements=dictionary +
+
+ +
Access-list to filter route updates to/from this neighbor.
+
+
+ acl + +
+ integer +
+
+ +
Acess-list number.
+
+
+ action + +
+ string +
+
+
    Choices: +
  • export
  • +
  • import
  • +
+
+
Access-list to filter outgoing/incoming route updates to this neighbor
+
+
+ filter_list + +
+ list + / elements=dictionary +
+
+ +
As-path-list to filter route updates to/from this neighbor.
+
+
+ action + +
+ string +
+
+
    Choices: +
  • export
  • +
  • import
  • +
+
+
filter outgoing/incoming route updates
+
+
+ path_list + +
+ string +
+
+ +
As-path-list to filter
+
+
+ maximum_prefix + +
+ integer +
+
+ +
Maximum number of prefixes to accept from this neighbor nexthop-self Nexthop for routes sent to this neighbor to be the local router.
+
+
+ nexthop_local + +
+ boolean +
+
+
    Choices: +
  • no
  • +
  • yes
  • +
+
+
Nexthop attributes.
+
+
+ nexthop_self + +
+ boolean +
+
+
    Choices: +
  • no
  • +
  • yes
  • +
+
+
Nexthop for routes sent to this neighbor to be the local router.
+
+
+ peer_group + +
+ string +
+
+ +
IPv4 peer group for this peer
+
+
+ prefix_list + +
+ list + / elements=dictionary +
+
+ +
Prefix-list to filter route updates to/from this neighbor.
+
+
+ action + +
+ string +
+
+
    Choices: +
  • export
  • +
  • import
  • +
+
+
filter outgoing/incoming route updates
+
+
+ prefix_list + +
+ string +
+
+ +
Prefix-list to filter
+
+
+ remove_private_as + +
+ boolean +
+
+
    Choices: +
  • no
  • +
  • yes
  • +
+
+
Remove private AS numbers from AS path in outbound route updates
+
+
+ route_map + +
+ list + / elements=dictionary +
+
+ +
Route-map to filter route updates to/from this neighbor.
+
+
+ action + +
+ string +
+
+
    Choices: +
  • export
  • +
  • import
  • +
+
+
filter outgoing/incoming route updates
+
+
+ route_map + +
+ string +
+
+ +
route-map to filter
+
+
+ route_reflector_client + +
+ boolean +
+
+
    Choices: +
  • no
  • +
  • yes
  • +
+
+
Neighbor as a route reflector client
+
+
+ route_server_client + +
+ boolean +
+
+
    Choices: +
  • no
  • +
  • yes
  • +
+
+
Neighbor is route server client
+
+
+ soft_reconfiguration + +
+ boolean +
+
+
    Choices: +
  • no
  • +
  • yes
  • +
+
+
Soft reconfiguration for neighbor
+
+
+ unsupress_map + +
+ string +
+
+ +
Route-map to selectively unsuppress suppressed routes
+
+
+ weight + +
+ integer +
+
+ +
Default weight for routes from this neighbor
+
+
+ neighbor_address + +
+ string +
+
+ +
BGP neighbor address (v4/v6).
+
+
+ running_config + +
+ string +
+
+ +
This option is used only with state parsed.
+
The value of this option should be the output received from the IOS device by executing the command show configuration command | match bgp.
+
The state parsed reads the configuration from running_config option and transforms it into Ansible structured data as per the resource module's argspec and the value is then returned in the parsed key within the result.
+
+
+ state + +
+ string +
+
+
    Choices: +
  • merged ←
  • +
  • replaced
  • +
  • deleted
  • +
  • gathered
  • +
  • parsed
  • +
  • rendered
  • +
  • purged
  • +
  • overridden
  • +
+
+
The state the configuration should be left in.
+
+
+ + + + +Examples +-------- + +.. code-block:: yaml + + # Using merged + # Before state + # vyos@vyos:~$ show configuration commands | match "set protocols bgp" + # vyos@vyos:~$ + + - name: Merge provided configuration with device configuration + vyos.vyos.vyos_bgp_address_family: + config: + as_number: "100" + address_family: + - afi: "ipv4" + redistribute: + - protocol: "static" + metric: 50 + neighbors: + - neighbor_address: "20.33.1.1/24" + address_family: + - afi: "ipv4" + allowas_in: 4 + as_override: True + attribute_unchanged: + med: True + - afi: "ipv6" + default_originate: "map01" + distribute_list: + - action: "export" + acl: 10 + - neighbor_address: "100.11.34.12" + address_family: + - afi: "ipv4" + maximum_prefix: 45 + nexthop_self: True + route_map: + - action: "export" + route_map: "map01" + - action: "import" + route_map: "map01" + weight: 50 + + # After State: + # vyos@vyos:~$ show configuration commands | match "set protocols bgp" + # set protocols bgp 100 address-family ipv4-unicast redistribute static metric '50' + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast allowas-in number '4' + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast as-override + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast attribute-unchanged med + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast default-originate route-map 'map01' + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast distribute-list export '10' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast maximum-prefix '45' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast nexthop-self + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast route-map export 'map01' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast route-map import 'map01' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast weight '50' + # vyos@vyos:~$ + # + # Module Execution: + # + # "after": { + # "address_family": [ + # { + # "afi": "ipv4", + # "redistribute": [ + # { + # "metric": 50, + # "protocol": "static" + # } + # ] + # } + # ], + # "as_number": 100, + # "neighbors": [ + # { + # "address_family": [ + # { + # "afi": "ipv4", + # "maximum_prefix": 45, + # "nexthop_self": true, + # "route_map": [ + # { + # "action": "export", + # "route_map": "map01" + # }, + # { + # "action": "import", + # "route_map": "map01" + # } + # ], + # "weight": 50 + # } + # ], + # "neighbor_address": "100.11.34.12" + # }, + # { + # "address_family": [ + # { + # "afi": "ipv4", + # "allowas_in": 4, + # "as_override": true, + # "attribute_unchanged": { + # "med": true + # } + # }, + # { + # "afi": "ipv6", + # "default_originate": "map01", + # "distribute_list": [ + # { + # "acl": 10, + # "action": "export" + # } + # ] + # } + # ], + # "neighbor_address": "20.33.1.1/24" + # } + # ] + # }, + # "before": {}, + # "changed": true, + # "commands": [ + # "set protocols bgp 100 address-family ipv4-unicast redistribute static metric 50", + # "set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast allowas-in number 4", + # "set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast as-override", + # "set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast attribute-unchanged med", + # "set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast default-originate route-map map01", + # "set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast distribute-list export 10", + # "set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast maximum-prefix 45", + # "set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast nexthop-self", + # "set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast route-map export map01", + # "set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast route-map import map01", + # "set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast weight 50" + # ], + # + + # Using replaced: + + # Before state: + + # vyos@vyos:~$ show configuration commands | match "set protocols bgp" + # set protocols bgp 100 address-family ipv4-unicast redistribute static metric '50' + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast allowas-in number '4' + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast as-override + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast attribute-unchanged med + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast default-originate route-map 'map01' + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast distribute-list export '10' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast maximum-prefix '45' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast nexthop-self + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast route-map export 'map01' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast route-map import 'map01' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast weight '50' + # vyos@vyos:~$ + + - name: Replace provided configuration with device configuration + vyos.vyos.vyos_bgp_address_family: + config: + as_number: "100" + neighbors: + - neighbor_address: "100.11.34.12" + address_family: + - afi: "ipv4" + allowas_in: 4 + as_override: True + attribute_unchanged: + med: True + - afi: "ipv6" + default_originate: "map01" + distribute_list: + - action: "export" + acl: 10 + - neighbor_address: "20.33.1.1/24" + address_family: + - afi: "ipv6" + maximum_prefix: 45 + nexthop_self: True + + state: replaced + + # After State: + + # vyos@vyos:~$ show configuration commands | match "set protocols bgp" + # set protocols bgp 100 address-family ipv4-unicast redistribute static metric '50' + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast maximum-prefix '45' + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast nexthop-self + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast allowas-in number '4' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast as-override + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast attribute-unchanged med + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv6-unicast default-originate route-map 'map01' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv6-unicast distribute-list export '10' + # vyos@vyos:~$ + # + # + # # Module Execution: + # "after": { + # "address_family": [ + # { + # "afi": "ipv4", + # "redistribute": [ + # { + # "metric": 50, + # "protocol": "static" + # } + # ] + # } + # ], + # "as_number": 100, + # "neighbors": [ + # { + # "address_family": [ + # { + # "afi": "ipv4", + # "allowas_in": 4, + # "as_override": true, + # "attribute_unchanged": { + # "med": true + # } + # }, + # { + # "afi": "ipv6", + # "default_originate": "map01", + # "distribute_list": [ + # { + # "acl": 10, + # "action": "export" + # } + # ] + # } + # ], + # "neighbor_address": "100.11.34.12" + # }, + # { + # "address_family": [ + # { + # "afi": "ipv4" + # }, + # { + # "afi": "ipv6", + # "maximum_prefix": 45, + # "nexthop_self": true + # } + # ], + # "neighbor_address": "20.33.1.1/24" + # } + # ] + # }, + # "before": { + # "address_family": [ + # { + # "afi": "ipv4", + # "redistribute": [ + # { + # "metric": 50, + # "protocol": "static" + # } + # ] + # } + # ], + # "as_number": 100, + # "neighbors": [ + # { + # "address_family": [ + # { + # "afi": "ipv4", + # "maximum_prefix": 45, + # "nexthop_self": true, + # "route_map": [ + # { + # "action": "export", + # "route_map": "map01" + # }, + # { + # "action": "import", + # "route_map": "map01" + # } + # ], + # "weight": 50 + # } + # ], + # "neighbor_address": "100.11.34.12" + # }, + # { + # "address_family": [ + # { + # "afi": "ipv4", + # "allowas_in": 4, + # "as_override": true, + # "attribute_unchanged": { + # "med": true + # } + # }, + # { + # "afi": "ipv6", + # "default_originate": "map01", + # "distribute_list": [ + # { + # "acl": 10, + # "action": "export" + # } + # ] + # } + # ], + # "neighbor_address": "20.33.1.1/24" + # } + # ] + # }, + # "changed": true, + # "commands": [ + # "delete protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast distribute-list", + # "delete protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast default-originate", + # "delete protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast attribute-unchanged", + # "delete protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast as-override", + # "delete protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast allowas-in", + # "delete protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast weight", + # "delete protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast route-map", + # "delete protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast nexthop-self", + # "delete protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast maximum-prefix", + # "set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast allowas-in number 4", + # "set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast as-override", + # "set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast attribute-unchanged med", + # "set protocols bgp 100 neighbor 100.11.34.12 address-family ipv6-unicast default-originate route-map map01", + # "set protocols bgp 100 neighbor 100.11.34.12 address-family ipv6-unicast distribute-list export 10", + # "set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast maximum-prefix 45", + # "set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast nexthop-self" + # ], + + + # Using overridden + # vyos@vyos:~$ show configuration commands | match "set protocols bgp" + # set protocols bgp 100 address-family ipv4-unicast network 35.1.1.0/24 backdoor + # set protocols bgp 100 address-family ipv4-unicast redistribute static metric '50' + # set protocols bgp 100 address-family ipv6-unicast aggregate-address 6601:1:1:1::/64 summary-only + # set protocols bgp 100 address-family ipv6-unicast network 5001:1:1:1::/64 route-map 'map01' + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast maximum-prefix '45' + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast nexthop-self + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast allowas-in number '4' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast as-override + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast attribute-unchanged med + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv6-unicast default-originate route-map 'map01' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv6-unicast distribute-list export '10' + # vyos@vyos:~$ + + - name: Override + vyos.vyos.vyos_bgp_address_family: + config: + as_number: "100" + neighbors: + - neighbor_address: "100.11.34.12" + address_family: + - afi: "ipv6" + maximum_prefix: 45 + nexthop_self: True + route_map: + - action: "import" + route_map: "map01" + address_family: + - afi: "ipv4" + aggregate_address: + - prefix: "60.9.2.0/24" + summary_only: True + - afi: "ipv6" + redistribute: + - protocol: "static" + metric: 50 + state: overridden + + # Aft=validate-moduleser State + + # vyos@vyos:~$ show configuration commands | match "set protocols bgp" + # set protocols bgp 100 address-family ipv4-unicast aggregate-address 60.9.2.0/24 summary-only + # set protocols bgp 100 address-family ipv6-unicast redistribute static metric '50' + # set protocols bgp 100 neighbor 20.33.1.1/24 + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv6-unicast maximum-prefix '45' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv6-unicast nexthop-self + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv6-unicast route-map import 'map01' + # vyos@vyos:~$ + + + # Module Execution: + + # "after": { + # "address_family": [ + # { + # "afi": "ipv4", + # "aggregate_address": [ + # { + # "prefix": "60.9.2.0/24", + # "summary_only": true + # } + # ] + # }, + # { + # "afi": "ipv6", + # "redistribute": [ + # { + # "metric": 50, + # "protocol": "static" + # } + # ] + # } + # ], + # "as_number": 100, + # "neighbors": [ + # { + # "address_family": [ + # { + # "afi": "ipv4" + # }, + # { + # "afi": "ipv6", + # "maximum_prefix": 45, + # "nexthop_self": true, + # "route_map": [ + # { + # "action": "import", + # "route_map": "map01" + # } + # ] + # } + # ], + # "neighbor_address": "100.11.34.12" + # } + # ] + # }, + # "before": { + # "address_family": [ + # { + # "afi": "ipv4", + # "networks": [ + # { + # "backdoor": true, + # "prefix": "35.1.1.0/24" + # } + # ], + # "redistribute": [ + # { + # "metric": 50, + # "protocol": "static" + # } + # ] + # }, + # { + # "afi": "ipv6", + # "aggregate_address": [ + # { + # "prefix": "6601:1:1:1::/64", + # "summary_only": true + # } + # ], + # "networks": [ + # { + # "prefix": "5001:1:1:1::/64", + # "route_map": "map01" + # } + # ] + # } + # ], + # "as_number": 100, + # "neighbors": [ + # { + # "address_family": [ + # { + # "afi": "ipv4", + # "allowas_in": 4, + # "as_override": true, + # "attribute_unchanged": { + # "med": true + # } + # }, + # { + # "afi": "ipv6", + # "default_originate": "map01", + # "distribute_list": [ + # { + # "acl": 10, + # "action": "export" + # } + # ] + # } + # ], + # "neighbor_address": "100.11.34.12" + # }, + # { + # "address_family": [ + # { + # "afi": "ipv4" + # }, + # { + # "afi": "ipv6", + # "maximum_prefix": 45, + # "nexthop_self": true + # } + # ], + # "neighbor_address": "20.33.1.1/24" + # } + # ] + # }, + # "changed": true, + # "commands": [ + # "delete protocols bgp 100 neighbor 20.33.1.1/24 address-family", + # "delete protocols bgp 100 neighbor 100.11.34.12 address-family ipv6-unicast distribute-list", + # "delete protocols bgp 100 neighbor 100.11.34.12 address-family ipv6-unicast default-originate", + # "delete protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast attribute-unchanged", + # "delete protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast as-override", + # "delete protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast allowas-in", + # "delete protocols bgp 100 address-family ipv6 aggregate-address", + # "delete protocols bgp 100 address-family ipv6 network", + # "delete protocols bgp 100 address-family ipv4 network", + # "delete protocols bgp 100 address-family ipv4 redistribute", + # "set protocols bgp 100 address-family ipv4-unicast aggregate-address 60.9.2.0/24 summary-only", + # "set protocols bgp 100 address-family ipv6-unicast redistribute static metric 50", + # "set protocols bgp 100 neighbor 100.11.34.12 address-family ipv6-unicast maximum-prefix 45", + # "set protocols bgp 100 neighbor 100.11.34.12 address-family ipv6-unicast nexthop-self", + # "set protocols bgp 100 neighbor 100.11.34.12 address-family ipv6-unicast route-map import map01" + # ], + # + + # Using deleted: + + # Before State: + + # vyos@vyos:~$ show configuration commands | match "set protocols bgp" + # set protocols bgp 100 address-family ipv4-unicast aggregate-address 60.9.2.0/24 summary-only + # set protocols bgp 100 address-family ipv4-unicast redistribute static metric '50' + # set protocols bgp 100 address-family ipv6-unicast redistribute static metric '50' + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast allowas-in number '4' + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast as-override + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast attribute-unchanged med + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast default-originate route-map 'map01' + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast distribute-list export '10' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast maximum-prefix '45' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast nexthop-self + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast route-map export 'map01' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast route-map import 'map01' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast weight '50' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv6-unicast maximum-prefix '45' + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv6-unicast nexthop-self + # set protocols bgp 100 neighbor 100.11.34.12 address-family ipv6-unicast route-map import 'map01' + # vyos@vyos:~$ + + - name: Delete + vyos.vyos.vyos_bgp_address_family: + config: + as_number: "100" + neighbors: + - neighbor_address: "20.33.1.1/24" + address_family: + - afi: "ipv6" + - neighbor_address: "100.11.34.12" + address_family: + - afi: "ipv4" + state: deleted + + + # After State: + + # vyos@vyos:~$ show configuration commands | match "set protocols bgp" + # set protocols bgp 100 address-family ipv6-unicast redistribute static metric '50' + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast allowas-in number '4' + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast as-override + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast attribute-unchanged med + # set protocols bgp 100 neighbor 100.11.34.12 + # vyos@vyos:~$ + # + # + # Module Execution: + # + # "after": { + # "address_family": [ + # { + # "afi": "ipv6", + # "redistribute": [ + # { + # "metric": 50, + # "protocol": "static" + # } + # ] + # } + # ], + # "as_number": 100, + # "neighbors": [ + # { + # "address_family": [ + # { + # "afi": "ipv4", + # "allowas_in": 4, + # "as_override": true, + # "attribute_unchanged": { + # "med": true + # } + # } + # ], + # "neighbor_address": "20.33.1.1/24" + # } + # ] + # }, + # "before": { + # "address_family": [ + # { + # "afi": "ipv4", + # "aggregate_address": [ + # { + # "prefix": "60.9.2.0/24", + # "summary_only": true + # } + # ], + # "redistribute": [ + # { + # "metric": 50, + # "protocol": "static" + # } + # ] + # }, + # { + # "afi": "ipv6", + # "redistribute": [ + # { + # "metric": 50, + # "protocol": "static" + # } + # ] + # } + # ], + # "as_number": 100, + # "neighbors": [ + # { + # "address_family": [ + # { + # "afi": "ipv4", + # "maximum_prefix": 45, + # "nexthop_self": true, + # "route_map": [ + # { + # "action": "export", + # "route_map": "map01" + # }, + # { + # "action": "import", + # "route_map": "map01" + # } + # ], + # "weight": 50 + # }, + # { + # "afi": "ipv6", + # "maximum_prefix": 45, + # "nexthop_self": true, + # "route_map": [ + # { + # "action": "import", + # "route_map": "map01" + # } + # ] + # } + # ], + # "neighbor_address": "100.11.34.12" + # }, + # { + # "address_family": [ + # { + # "afi": "ipv4", + # "allowas_in": 4, + # "as_override": true, + # "attribute_unchanged": { + # "med": true + # } + # }, + # { + # "afi": "ipv6", + # "default_originate": "map01", + # "distribute_list": [ + # { + # "acl": 10, + # "action": "export" + # } + # ] + # } + # ], + # "neighbor_address": "20.33.1.1/24" + # } + # ] + # }, + # "changed": true, + # "commands": [ + # "delete protocols bgp 100 address-family ipv4-unicast", + # "delete protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast", + # "delete protocols bgp 100 neighbor 100.11.34.12 address-family" + # ], + # + + # using parsed: + + # parsed.cfg + # set protocols bgp 65536 address-family ipv4-unicast aggregate-address 192.0.2.0/24 as-set + # set protocols bgp 65536 address-family ipv4-unicast network 192.1.13.0/24 route-map 'map01' + # set protocols bgp 65536 address-family ipv4-unicast network 192.2.13.0/24 backdoor + # set protocols bgp 65536 address-family ipv6-unicast redistribute ripng metric '20' + # set protocols bgp 65536 neighbor 192.0.2.25 address-family ipv4-unicast route-map export 'map01' + # set protocols bgp 65536 neighbor 192.0.2.25 address-family ipv4-unicast soft-reconfiguration inbound + # set protocols bgp 65536 neighbor 203.0.113.5 address-family ipv6-unicast attribute-unchanged next-hop + + + - name: parse configs + vyos.vyos.vyos_bgp_address_family: + running_config: "{{ lookup('file', './parsed.cfg') }}" + state: parsed + + # Module Execution: + # "parsed": { + # "address_family": [ + # { + # "afi": "ipv4", + # "aggregate_address": [ + # { + # "as_set": true, + # "prefix": "192.0.2.0/24" + # } + # ], + # "networks": [ + # { + # "prefix": "192.1.13.0/24", + # "route_map": "map01" + # }, + # { + # "backdoor": true, + # "prefix": "192.2.13.0/24" + # } + # ] + # }, + # { + # "afi": "ipv6", + # "redistribute": [ + # { + # "metric": 20, + # "protocol": "ripng" + # } + # ] + # } + # ], + # "as_number": 65536, + # "neighbors": [ + # { + # "address_family": [ + # { + # "afi": "ipv4", + # "route_map": [ + # { + # "action": "export", + # "route_map": "map01" + # } + # ], + # "soft_reconfiguration": true + # } + # ], + # "neighbor_address": "192.0.2.25" + # }, + # { + # "address_family": [ + # { + # "afi": "ipv6", + # "attribute_unchanged": { + # "next_hop": true + # } + # } + # ], + # "neighbor_address": "203.0.113.5" + # } + # ] + # + + # Using gathered: + + # Native config: + + # vyos@vyos:~$ show configuration commands | match "set protocols bgp" + # set protocols bgp 100 address-family ipv4-unicast network 35.1.1.0/24 backdoor + # set protocols bgp 100 address-family ipv4-unicast redistribute static metric '50' + # set protocols bgp 100 address-family ipv6-unicast aggregate-address 6601:1:1:1::/64 summary-only + # set protocols bgp 100 address-family ipv6-unicast network 5001:1:1:1::/64 route-map 'map01' + # set protocols bgp 100 address-family ipv6-unicast redistribute static metric '50' + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast allowas-in number '4' + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast as-override + # set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast attribute-unchanged med + # set protocols bgp 100 neighbor 100.11.34.12 + + - name: gather configs + vyos.vyos.vyos_bgp_address_family: + state: gathered + + # Module Execution: + + # "gathered": { + # "address_family": [ + # { + # "afi": "ipv4", + # "networks": [ + # { + # "backdoor": true, + # "prefix": "35.1.1.0/24" + # } + # ], + # "redistribute": [ + # { + # "metric": 50, + # "protocol": "static" + # } + # ] + # }, + # { + # "afi": "ipv6", + # "aggregate_address": [ + # { + # "prefix": "6601:1:1:1::/64", + # "summary_only": true + # } + # ], + # "networks": [ + # { + # "prefix": "5001:1:1:1::/64", + # "route_map": "map01" + # } + # ], + # "redistribute": [ + # { + # "metric": 50, + # "protocol": "static" + # } + # ] + # } + # ], + # "as_number": 100, + # "neighbors": [ + # { + # "address_family": [ + # { + # "afi": "ipv4", + # "allowas_in": 4, + # "as_override": true, + # "attribute_unchanged": { + # "med": true + # } + # } + # ], + # "neighbor_address": "20.33.1.1/24" + # } + # ] + + # Using rendered: + + - name: Render + vyos.vyos.vyos_bgp_address_family: + config: + as_number: "100" + address_family: + - afi: "ipv4" + redistribute: + - protocol: "static" + metric: 50 + neighbors: + - neighbor_address: "20.33.1.1/24" + address_family: + - afi: "ipv4" + allowas_in: 4 + as_override: True + attribute_unchanged: + med: True + - afi: "ipv6" + default_originate: "map01" + distribute_list: + - action: "export" + acl: 10 + - neighbor_address: "100.11.34.12" + address_family: + - afi: "ipv4" + maximum_prefix: 45 + nexthop_self: True + route_map: + - action: "export" + route_map: "map01" + - action: "import" + route_map: "map01" + weight: 50 + state: rendered + + # Module Execution: + + # "rendered": [ + # "set protocols bgp 100 address-family ipv4-unicast redistribute static metric 50", + # "set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast allowas-in number 4", + # "set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast as-override", + # "set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv4-unicast attribute-unchanged med", + # "set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast default-originate route-map map01", + # "set protocols bgp 100 neighbor 20.33.1.1/24 address-family ipv6-unicast distribute-list export 10", + # "set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast maximum-prefix 45", + # "set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast nexthop-self", + # "set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast route-map export map01", + # "set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast route-map import map01", + # "set protocols bgp 100 neighbor 100.11.34.12 address-family ipv4-unicast weight 50" + # ] + + + + +Status +------ + + +Authors +~~~~~~~ + +- Gomathi Selvi Srinivasan (@GomathiselviS) -- cgit v1.2.3