Skip to content

Latest commit

 

History

History
1803 lines (1691 loc) · 81.4 KB

arista.eos.eos_static_routes.rst

File metadata and controls

1803 lines (1691 loc) · 81.4 KB
source:

arista.eos.eos_static_routes -- Configures and manages attributes of static routes on Arista EOS platforms.

  • This module configures and manages the attributes of static routes on Arista EOS platforms.
Parameter Choices/Defaults Configuration Comments
config
list / elements=dictionary
A list of configurations for static routes.
address_families
list / elements=dictionary
A dictionary specifying the address family to which the static route(s) belong.
afi
string / required
    Choices:
  • ipv4
  • ipv6
Specifies the top level address family indicator.
routes
list / elements=dictionary
A dictionary that specifies the static route configurations.
dest
string / required
Destination IPv4 subnet (CIDR or address-mask notation).
The address format is <v4/v6 address>/<mask> or <v4/v6 address> <mask>.
The mask is number in range 0-32 for IPv4 and in range 0-128 for IPv6.
next_hops
list / elements=dictionary
Details of route to be taken.
admin_distance
integer
Preference or administrative distance of route (range 1-255).
description
string
Name of the static route.
forward_router_address
string
Forwarding router's address on destination interface.
interface
string
Outgoing interface to take. For anything except 'null0', then next hop IP address should also be configured.
IP address of the next hop router or
null0 Null0 interface or
ethernet e_num Ethernet interface or
loopback l_num Loopback interface or
management m_num Management interface or
port-channel p_num
vlan v_num
vxlan vx_num
Nexthop-Group Specify nexthop group name
Tunnel Tunnel interface
vtep Configure VXLAN Tunnel End Points
mpls_label
integer
MPLS label
nexthop_grp
string
Nexthop group
tag
integer
Route tag value (ranges from 0 to 4294967295).
track
string
Track value (range 1 - 512). Track must already be configured on the device before adding the route.
vrf
string
VRF of the destination.
vrf
string
The VRF to which the static route(s) belong.
running_config
string
The module, by default, will connect to the remote device and retrieve the current running-config to use as a base for comparing against the contents of source. There are times when it is not desirable to have the task get the current running-config for every task in a playbook. The running_config argument allows the implementer to pass in the configuration to use as the base config for comparison. This value of this option should be the output received from device by executing command
state
string
    Choices:
  • deleted
  • merged ←
  • overridden
  • replaced
  • gathered
  • rendered
  • parsed
The state the configuration should be left in.

Note

  • Tested against Arista EOS 4.20.10M
  • This module works with connection network_cli. See the EOS Platform Options.
# Using deleted

# Various scenarios for delete operations:

# Before state:
# ------------
# veos(config)#show running-config | grep route
# ip route 10.2.2.0/24 Ethernet1
# ip route 10.2.2.0/24 64.1.1.1 label 17 33
# ip route 33.33.33.0/24 Nexthop-Group testgrp
# ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute
# ipv6 route 5222:5::/64 Management1 4312:100::1
# ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1
# ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55
# ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1
# veos(config)#

- name: Delete nexthop
  eos_static_routes:
    config:
      - address_families:
          - afi: ipv4
            routes:
              - dest: 10.2.2.0/24
                next_hops:
                  - interface: 64.1.1.1
                    mpls_label: 17
                    admin_distance: 33
              - dest: "33.33.33.0 255.255.255.0"
                next_hops:
                  - interface: 'Nexthop-Group testgrp'
    state: "deleted"

# "after": [
#         {
#             "address_families": [
#                 {
#                     "afi": "ipv4",
#                     "routes": [
#                         {
#                             "dest": "10.2.2.0/24",
#                             "next_hops": [
#                                 {
#                                     "interface": "Ethernet1"
#                                 }
#                             ]
#                         }
#                     ]
#                 },
#                 {
#                     "afi": "ipv6",
#                     "routes": [
#                         {
#                             "dest": "5222:5::/64",
#                             "next_hops": [
#                                 {
#                                     "forward_router_address": "4312:100::1",
#                                     "interface": "Management1"
#                                 }
#                             ]
#                         }
#                     ]
#                 }
#             ]
#         },
#         {
#             "address_families": [
#                 {
#                     "afi": "ipv4",
#                     "routes": [
#                         {
#                             "dest": "22.65.1.0/24",
#                             "next_hops": [
#                                 {
#                                     "admin_distance": 90,
#                                     "description": "testroute",
#                                     "interface": "Null0"
#                                 }
#                             ]
#                         }
#                     ]
#                 },
#                 {
#                     "afi": "ipv6",
#                     "routes": [
#                         {
#                             "dest": "2222:6::/64",
#                             "next_hops": [
#                                 {
#                                     "forward_router_address": "4312:100::1",
#                                     "interface": "Management1"
#                                 },
#                                 {
#                                     "admin_distance": 55,
#                                     "interface": "Ethernet1"
#                                 },
#                                 {
#                                     "admin_distance": 90,
#                                     "description": "testroute1",
#                                     "interface": "Null0"
#                                 }
#                             ]
#                         }
#                     ]
#                 }
#             ],
#             "vrf": "testvrf"
#         }
#     ],
#     "before": [
#         {
#             "address_families": [
#                 {
#                     "afi": "ipv4",
#                     "routes": [
#                         {
#                             "dest": "10.2.2.0/24",
#                             "next_hops": [
#                                 {
#                                     "interface": "Ethernet1"
#                                 },
#                                 {
#                                     "admin_distance": 33,
#                                     "interface": "64.1.1.1",
#                                     "mpls_label": 17
#                                 }
#                             ]
#                         },
#                         {
#                             "dest": "33.33.33.0/24",
#                             "next_hops": [
#                                 {
#                                     "nexthop_grp": "testgrp"
#                                 }
#                             ]
#                         }
#                     ]
#                 },
#                 {
#                     "afi": "ipv6",
#                     "routes": [
#                         {
#                             "dest": "5222:5::/64",
#                             "next_hops": [
#                                 {
#                                     "forward_router_address": "4312:100::1",
#                                     "interface": "Management1"
#                                 }
#                             ]
#                         }
#                     ]
#                 }
#             ]
#         },
#         {
#             "address_families": [
#                 {
#                     "afi": "ipv4",
#                     "routes": [
#                         {
#                             "dest": "22.65.1.0/24",
#                             "next_hops": [
#                                 {
#                                     "admin_distance": 90,
#                                     "description": "testroute",
#                                     "interface": "Null0"
#                                 }
#                             ]
#                         }
#                     ]
#                 },
#                 {
#                     "afi": "ipv6",
#                     "routes": [
#                         {
#                             "dest": "2222:6::/64",
#                             "next_hops": [
#                                 {
#                                     "forward_router_address": "4312:100::1",
#                                     "interface": "Management1"
#                                 },
#                                 {
#                                     "admin_distance": 55,
#                                     "interface": "Ethernet1"
#                                 },
#                                 {
#                                     "admin_distance": 90,
#                                     "description": "testroute1",
#                                     "interface": "Null0"
#                                 }
#                             ]
#                         }
#                     ]
#                 }
#             ],
#             "vrf": "testvrf"
#         }
#     ],
#     "changed": true,
#     "commands": [
#         "no ip route 10.2.2.0/24 64.1.1.1 label 17 33",
#         "no ip route 33.33.33.0/24 Nexthop-Group testgrp"
#     ]


# After State
# -----------

# veos(config)#show running-config | grep route
# ip route 10.2.2.0/24 Ethernet1
# ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute
# ipv6 route 5222:5::/64 Management1 4312:100::1
# ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1
# ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55
# ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1
# veos(config)#


# Before State
# ____________

# veos(config)#show running-config | grep route
# ip route 10.2.2.0/24 Ethernet1
# ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute
# ipv6 route 5222:5::/64 Management1 4312:100::1
# ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1
# ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55
# ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1
# veos(config)#

- name: Delete route
  eos_static_routes:
    config:
      - address_families:
        - afi: ipv4
          routes:
            - dest: 10.2.2.0/24
    state: "deleted"

# "after": [
#         {
#             "address_families": [
#                 {
#                     "afi": "ipv6",
#                     "routes": [
#                         {
#                             "dest": "5222:5::/64",
#                             "next_hops": [
#                                 {
#                                     "forward_router_address": "4312:100::1",
#                                     "interface": "Management1"
#                                 }
#                             ]
#                         }
#                     ]
#                 }
#             ]
#         },
#         {
#             "address_families": [
#                 {
#                     "afi": "ipv4",
#                     "routes": [
#                         {
#                             "dest": "22.65.1.0/24",
#                             "next_hops": [
#                                 {
#                                     "admin_distance": 90,
#                                     "description": "testroute",
#                                     "interface": "Null0"
#                                 }
#                             ]
#                         }
#                     ]
#                 },
#                 {
#                     "afi": "ipv6",
#                     "routes": [
#                         {
#                             "dest": "2222:6::/64",
#                             "next_hops": [
#                                 {
#                                     "forward_router_address": "4312:100::1",
#                                     "interface": "Management1"
#                                 },
#                                 {
#                                     "admin_distance": 55,
#                                     "interface": "Ethernet1"
#                                 },
#                                 {
#                                     "admin_distance": 90,
#                                     "description": "testroute1",
#                                     "interface": "Null0"
#                                 }
#                             ]
#                         }
#                     ]
#                 }
#             ],
#             "vrf": "testvrf"
#         }
#     ],
#     "before": [
#         {
#             "address_families": [
#                 {
#                     "afi": "ipv4",
#                     "routes": [
#                         {
#                             "dest": "10.2.2.0/24",
#                             "next_hops": [
#                                 {
#                                     "interface": "Ethernet1"
#                                 }
#                             ]
#                         }
#                     ]
#                 },
#                 {
#                     "afi": "ipv6",
#                     "routes": [
#                         {
#                             "dest": "5222:5::/64",
#                             "next_hops": [
#                                 {
#                                     "forward_router_address": "4312:100::1",
#                                     "interface": "Management1"
#                                 }
#                             ]
#                         }
#                     ]
#                 }
#             ]
#         },
#         {
#             "address_families": [
#                 {
#                     "afi": "ipv4",
#                     "routes": [
#                         {
#                             "dest": "22.65.1.0/24",
#                             "next_hops": [
#                                 {
#                                     "admin_distance": 90,
#                                     "description": "testroute",
#                                     "interface": "Null0"
#                                 }
#                             ]
#                         }
#                     ]
#                 },
#                 {
#                     "afi": "ipv6",
#                     "routes": [
#                         {
#                             "dest": "2222:6::/64",
#                             "next_hops": [
#                                 {
#                                     "forward_router_address": "4312:100::1",
#                                     "interface": "Management1"
#                                 },
#                                 {
#                                     "admin_distance": 55,
#                                     "interface": "Ethernet1"
#                                 },
#                                 {
#                                     "admin_distance": 90,
#                                     "description": "testroute1",
#                                     "interface": "Null0"
#                                 }
#                             ]
#                         }
#                     ]
#                 }
#             ],
#             "vrf": "testvrf"
#         }
#     ],
#     "changed": true,
#     "commands": [
#         "no ip route 10.2.2.0/24 Ethernet1"
#     ]

# After State
# -----------
# veos(config)#show running-config | grep route
# ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute
# ipv6 route 5222:5::/64 Management1 4312:100::1
# ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1
# ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55
# ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1
# veos(config)#


# Before State:
# ------------

# veos(config)#show running-config | grep route
# ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute
# ipv6 route 5222:5::/64 Management1 4312:100::1
# ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1
# ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55
# ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1
# veos(config)#

- name: Delete afi
  eos_static_routes:
    config:
      - vrf: "testvrf"
        address_families:
        - afi: "ipv4"
    state: "deleted"

#    "after": [
#        {
#            "address_families": [
#                {
#                    "afi": "ipv6",
#                    "routes": [
#                        {
#                            "dest": "5222:5::/64",
#                            "next_hops": [
#                                {
#                                    "forward_router_address": "4312:100::1",
#                                    "interface": "Management1"
#                                }
#                            ]
#                        }
#                    ]
#                }
#            ]
#        },
#        {
#            "address_families": [
#                {
#                    "afi": "ipv6",
#                    "routes": [
#                        {
#                            "dest": "2222:6::/64",
#                            "next_hops": [
#                                {
#                                    "forward_router_address": "4312:100::1",
#                                    "interface": "Management1"
#                                },
#                                {
#                                    "admin_distance": 55,
#                                    "interface": "Ethernet1"
#                                },
#                                {
#                                    "admin_distance": 90,
#                                    "description": "testroute1",
#                                    "interface": "Null0"
#                                }
#                            ]
#                        }
#                    ]
#                }
#            ],
#            "vrf": "testvrf"
#        }
#    ],
#    "before": [
#        {
#            "address_families": [
#                {
#                    "afi": "ipv6",
#                    "routes": [
#                        {
#                            "dest": "5222:5::/64",
#                            "next_hops": [
#                                {
#                                    "forward_router_address": "4312:100::1",
#                                    "interface": "Management1"
#                                }
#                            ]
#                        }
#                    ]
#                }
#            ]
#        },
#        {
#            "address_families": [
#                {
#                    "afi": "ipv4",
#                    "routes": [
#                        {
#                            "dest": "22.65.1.0/24",
#                            "next_hops": [
#                                {
#                                    "admin_distance": 90,
#                                    "description": "testroute",
#                                    "interface": "Null0"
#                                }
#                            ]
#                        }
#                    ]
#                },
#                {
#                    "afi": "ipv6",
#                    "routes": [
#                        {
#                            "dest": "2222:6::/64",
#                            "next_hops": [
#                                {
#                                    "forward_router_address": "4312:100::1",
#                                    "interface": "Management1"
#                                },
#                                {
#                                    "admin_distance": 55,
#                                    "interface": "Ethernet1"
#                                },
#                                {
#                                    "admin_distance": 90,
#                                    "description": "testroute1",
#                                    "interface": "Null0"
#                                }
#                            ]
#                        }
#                    ]
#                }
#            ],
#            "vrf": "testvrf"
#        }
#    ],
#    "changed": true,
#    "commands": [
#        "no ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute"
#    ],

# After State
# ___________

# veos(config)#show running-config | grep route
# ipv6 route 5222:5::/64 Management1 4312:100::1
# ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1
# ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55
# ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1

# Before State
#-------------

# veos(config)#show running-config | grep route
# ipv6 route 5222:5::/64 Management1 4312:100::1
# ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1
# ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55
# ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1

- name: Delete vrf
  eos_static_routes:
    config:
      - vrf: testvrf
    state: "deleted"

# "after": [
#         {
#             "address_families": [
#                 {
#                     "afi": "ipv6",
#                     "routes": [
#                         {
#                             "dest": "5222:5::/64",
#                             "next_hops": [
#                                 {
#                                     "forward_router_address": "4312:100::1",
#                                     "interface": "Management1"
#                                 }
#                             ]
#                         }
#                     ]
#                 }
#             ]
#         }
#     ],
#     "before": [
#         {
#             "address_families": [
#                 {
#                     "afi": "ipv6",
#                     "routes": [
#                         {
#                             "dest": "5222:5::/64",
#                             "next_hops": [
#                                 {
#                                     "forward_router_address": "4312:100::1",
#                                     "interface": "Management1"
#                                 }
#                             ]
#                         }
#                     ]
#                 }
#             ]
#         },
#         {
#             "address_families": [
#                 {
#                     "afi": "ipv6",
#                     "routes": [
#                         {
#                             "dest": "2222:6::/64",
#                             "next_hops": [
#                                 {
#                                     "forward_router_address": "4312:100::1",
#                                     "interface": "Management1"
#                                 },
#                                 {
#                                     "admin_distance": 55,
#                                     "interface": "Ethernet1"
#                                 },
#                                 {
#                                     "admin_distance": 90,
#                                     "description": "testroute1",
#                                     "interface": "Null0"
#                                 }
#                             ]
#                         }
#                     ]
#                 }
#             ],
#             "vrf": "testvrf"
#         }
#     ],
#     "changed": true,
#     "commands": [
#         "no ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1",
#         "no ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55",
#         "no ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1"
#     ]
#
# After State:
# -----------

# veos(config)#show running-config | grep route
# ipv6 route 5222:5::/64 Management1 4312:100::1
# veos(config)#


#
# Using merged

# Before : [
#        {
#            "address_families": [
#                {
#                    "afi": "ipv4",
#                    "routes": [
#                        {
#                            "dest": "165.10.1.0/24",
#                            "next_hops": [
#                                {
#                                    "admin_distance": 100,
#                                    "interface": "Ethernet1"
#                                }
#                            ]
#                        },
#                        {
#                            "dest": "172.17.252.0/24",
#                            "next_hops": [
#                                {
#                                    "nexthop_grp": "testgroup"
#                                }
#                            ]
#                        }
#                    ]
#                },
#                {
#                    "afi": "ipv6",
#                    "routes": [
#                        {
#                            "dest": "5001::/64",
#                            "next_hops": [
#                                {
#                                    "admin_distance": 50,
#                                    "interface": "Ethernet1"
#                                }
#                            ]
#                        }
#                    ]
#                }
#            ]
#        },
#        {
#            "address_families": [
#                {
#                    "afi": "ipv4",
#                    "routes": [
#                        {
#                            "dest": "130.1.122.0/24",
#                            "next_hops": [
#                                {
#                                    "interface": "Ethernet1",
#                                    "tag": 50
#                                }
#                            ]
#                        }
#                    ]
#                }
#            ],
#            "vrf": "testvrf"
#        }
#    ]
#
# Before State
# -------------
# veos(config)#show running-config | grep "route"
# ip route 165.10.1.0/24 Ethernet1 100
# ip route 172.17.252.0/24 Nexthop-Group testgroup
# ip route vrf testvrf 130.1.122.0/24 Ethernet1 tag 50
# ipv6 route 5001::/64 Ethernet1 50
# veos(config)#

- name: Merge new static route configuration
  eos_static_routes:
    config:
      - vrf: testvrf
        address_families:
          - afi: ipv6
            routes:
              - dest: 2211::0/64
                next_hop:
                  - forward_router_address: 100:1::2
                    interface: "Ethernet1"
    state: merged

# After State
# -----------

#After [
#        {
#            "address_families": [
#                {
#                    "afi": "ipv4",
#                    "routes": [
#                        {
#                            "dest": "165.10.1.0/24",
#                            "next_hops": [
#                                {
#                                    "admin_distance": 100,
#                                    "interface": "Ethernet1"
#                                }
#                            ]
#                        },
#                        {
#                            "dest": "172.17.252.0/24",
#                            "next_hops": [
#                                {
#                                    "nexthop_grp": "testgroup"
#                                }
#                            ]
#                        }
#                    ]
#                },
#                {
#                    "afi": "ipv6",
#                    "routes": [
#                        {
#                            "dest": "5001::/64",
#                            "next_hops": [
#                                {
#                                    "admin_distance": 50,
#                                    "interface": "Ethernet1"
#                                }
#                            ]
#                        }
#                    ]
#                }
#            ]
#        },
#        {
#            "address_families": [
#                {
#                    "afi": "ipv4",
#                    "routes": [
#                        {
#                            "dest": "130.1.122.0/24",
#                            "next_hops": [
#                                {
#                                    "interface": "Ethernet1",
#                                    "tag": 50
#                                }
#                            ]
#                        }
#                    ]
#                },
#                {
#                    "afi": "ipv6",
#                    "routes": [
#                        {
#                            "dest": "2211::0/64",
#                            "next_hops": [
#                                {
#                                    "aforward_router_address": 100:1::2
#                                    "interface": "Ethernet1"
#                                }
#                            ]
#                        }
#                    ]
#                }

#            ],
#            "vrf": "testvrf"
#        }
#    ]
#
# veos(config)#show running-config | grep "route"
# ip route 165.10.1.0/24 Ethernet1 100
# ip route 172.17.252.0/24 Nexthop-Group testgroup
# ip route vrf testvrf 130.1.122.0/24 Ethernet1 tag 50
# ipv6 route 2211::/64 Ethernet1 100:1::2
# ipv6 route 5001::/64 Ethernet1 50
# veos(config)#


# Using overridden


# Before State
# -------------

#    "before": [
#        {
#            "address_families": [
#                {
#                    "afi": "ipv4",
#                    "routes": [
#                        {
#                            "dest": "165.10.1.0/24",
#                            "next_hops": [
#                                {
#                                    "admin_distance": 100,
#                                    "interface": "Ethernet1"
#                                }
#                            ]
#                        },
#                        {
#                            "dest": "172.17.252.0/24",
#                            "next_hops": [
#                                {
#                                    "nexthop_grp": "testgroup"
#                                }
#                            ]
#                        }
#                    ]
#                },
#                {
#                    "afi": "ipv6",
#                    "routes": [
#                        {
#                            "dest": "5001::/64",
#                            "next_hops": [
#                                {
#                                    "admin_distance": 50,
#                                    "interface": "Ethernet1"
#                                }
#                            ]
#                        }
#                    ]
#                }
#            ]
#        },
#        {
#            "address_families": [
#                {
#                    "afi": "ipv4",
#                    "routes": [
#                        {
#                            "dest": "130.1.122.0/24",
#                            "next_hops": [
#                                {
#                                    "interface": "Ethernet1",
#                                    "tag": 50
#                                }
#                            ]
#                        }
#                    ]
#                }
#            ],
#            "vrf": "testvrf"
#        }
#    ]
# veos(config)#show running-config | grep "route"
# ip route 165.10.1.0/24 Ethernet1 100
# ip route 172.17.252.0/24 Nexthop-Group testgroup
# ip route vrf testvrf 130.1.122.0/24 Ethernet1 tag 50
# ipv6 route 5001::/64 Ethernet1 50
# veos(config)#

- name: Overridden static route configuration
  eos_static_routes:
    config:
      - address_families:
          - afi: ipv4
            routes:
              - dest: 10.2.2.0/24
                next_hop:
                  - interface: "Ethernet1"
    state: replaced

# After State
# -----------

# "after": [
#        {
#            "address_families": [
#                {
#                    "afi": "ipv4",
#                    "routes": [
#                        {
#                            "dest": "10.2.2.0/24",
#                            "next_hops": [
#                                {
#                                    "interface": "Ethernet1"
#                                }
#                            ]
#                        }
#                    ]
#                }
#            ]
#        }
#    ]
# veos(config)#show running-config | grep "route"
# ip route 10.2.2.0/24 Ethernet1
# veos(config)#


# Using replaced

# Before State
# -------------

# ip route 10.2.2.0/24 Ethernet1
# ip route 10.2.2.0/24 64.1.1.1 label 17 33
# ip route 33.33.33.0/24 Nexthop-Group testgrp
# ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute
# ipv6 route 5222:5::/64 Management1 4312:100::1
# ipv6 route vrf testvrf 2222:6::/64 Management1 4312:100::1
# ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55
# ipv6 route vrf testvrf 2222:6::/64 Null0 90 name testroute1

# [
#        {
#            "address_families": [
#                {
#                    "afi": "ipv4",
#                    "routes": [
#                        {
#                            "dest": "10.2.2.0/24",
#                            "next_hops": [
#                                {
#                                    "interface": "Ethernet1"
#                                },
#                                {
#                                    "admin_distance": 33,
#                                    "interface": "64.1.1.1",
#                                    "mpls_label": 17
#                                }
#                            ]
#                        },
#                        {
#                            "dest": "33.33.33.0/24",
#                            "next_hops": [
#                                {
#                                    "nexthop_grp": "testgrp"
#                                }
#                            ]
#                        }
#                    ]
#                },
#                {
#                    "afi": "ipv6",
#                    "routes": [
#                        {
#                            "dest": "5222:5::/64",
#                            "next_hops": [
#                                {
#                                    "forward_router_address": "4312:100::1",
#                                    "interface": "Management1"
#                                }
#                            ]
#                        }
#                    ]
#                }
#            ]
#        },
#        {
#            "address_families": [
#                {
#                    "afi": "ipv4",
#                    "routes": [
#                        {
#                            "dest": "22.65.1.0/24",
#                            "next_hops": [
#                                {
#                                    "admin_distance": 90,
#                                    "description": "testroute",
#                                    "interface": "Null0"
#                                }
#                            ]
#                        }
#                    ]
#                },
#                {
#                    "afi": "ipv6",
#                    "routes": [
#                        {
#                            "dest": "2222:6::/64",
#                            "next_hops": [
#                                {
#                                    "forward_router_address": "4312:100::1",
#                                    "interface": "Management1"
#                                },
#                                {
#                                    "admin_distance": 90,
#                                    "description": "testroute1",
#                                    "interface": "Null0"
#                                }
#                            ]
#                        }
#                    ]
#                }
#            ],
#            "vrf": "testvrf"
#        }
#    ]

- name: Replace nexthop
  eos_static_routes:
    config:
      - vrf: testvrf
        address_families:
          - afi: ipv6
            routes:
              - dest: 2222:6::/64
                next_hops:
                  - admin_distance: 55
                    interface: "Ethernet1"
    state: "replaced"

# After State
# -----------

# veos(config)#show running-config | grep route
# ip route 10.2.2.0/24 Ethernet1
# ip route 10.2.2.0/24 64.1.1.1 label 17 33
# ip route 33.33.33.0/24 Nexthop-Group testgrp
# ip route vrf testvrf 22.65.1.0/24 Null0 90 name testroute
# ipv6 route 5222:5::/64 Management1 4312:100::1
# ipv6 route vrf testvrf 2222:6::/64 Ethernet1 55

# "after": [
#        {
#            "address_families": [
#                {
#                    "afi": "ipv4",
#                    "routes": [
#                        {
#                            "dest": "10.2.2.0/24",
#                            "next_hops": [
#                                {
#                                    "interface": "Ethernet1"
#                                },
#                                {
#                                    "admin_distance": 33,
#                                    "interface": "64.1.1.1",
#                                    "mpls_label": 17
#                                }
#                            ]
#                        },
#                        {
#                            "dest": "33.33.33.0/24",
#                            "next_hops": [
#                                {
#                                    "nexthop_grp": "testgrp"
#                                }
#                            ]
#                        }
#                    ]
#                },
#                {
#                    "afi": "ipv6",
#                    "routes": [
#                        {
#                            "dest": "5222:5::/64",
#                            "next_hops": [
#                                {
#                                    "forward_router_address": "4312:100::1",
#                                    "interface": "Management1"
#                                }
#                            ]
#                        }
#                    ]
#                }
#            ]
#        },
#        {
#            "address_families": [
#                {
#                    "afi": "ipv4",
#                    "routes": [
#                        {
#                            "dest": "22.65.1.0/24",
#                            "next_hops": [
#                                {
#                                    "admin_distance": 90,
#                                    "description": "testroute",
#                                    "interface": "Null0"
#                                }
#                            ]
#                        }
#                    ]
#                },
#                {
#                    "afi": "ipv6",
#                    "routes": [
#                        {
#                            "dest": "2222:6::/64",
#                            "next_hops": [
#                                {
#                                    "admin_distance": 55,
#                                    "interface": "Ethernet1"
#                                }
#                            ]
#                        }
#                    ]
#                }
#            ],
#            "vrf": "testvrf"
#        }
#    ]

# Before State
# -------------
# veos(config)#show running-config | grep "route"
# ip route 165.10.1.0/24 Ethernet1 10.1.1.2 100
# ipv6 route 5001::/64 Ethernet1
# veos(config)#


- name: Gather the exisitng condiguration
  eos_static_routes:
    state: gathered

# returns :
#  eos_static_routes:
#    config:
#      - address_families:
#          - afi: ipv4
#            routes:
#              - dest: 165.10.1.0/24
#                next_hop:
#                  - forward_router_address: 10.1.1.2
#                    interface: "Ethernet1"
#                    admin_distance: 100
#          - afi: ipv6
#            routes:
#              - dest: 5001::/64
#                next_hop:
#                  - interface: "Ethernet1"


# Using rendered

#   eos_static_routes:
#    config:
#      - address_families:
#          - afi: ipv4
#            routes:
#              - dest: 165.10.1.0/24
#                next_hop:
#                  - forward_router_address: 10.1.1.2
#                    interface: "Ethernet1"
#                    admin_distance: 100
#         - afi: ipv6
#            routes:
#              - dest: 5001::/64
#                next_hop:
#                  - interface: "Ethernet1"

# returns:

# ip route 165.10.1.0/24 Ethernet1 10.1.1.2 100
# ipv6 route 5001::/64 Ethernet1

Common return values are documented :ref:`here <common_return_values>`, the following are the fields unique to this :

Key Returned Description
after
list
when changed
The resulting configuration model invocation.

Sample:
The configuration returned will always be in the same format of the parameters above.
before
list
always
The configuration prior to the model invocation.

Sample:
The configuration returned will always be in the same format of the parameters above.
commands
list
always
The set of commands pushed to the remote device.

Sample:
['ip route vrf vrf1 192.2.2.0/24 125.2.3.1 93']
gathered
list
When state is gathered
The configuration as structured data transformed for the running configuration fetched from remote host

Sample:
The configuration returned will always be in the same format of the parameters above.
parsed
list
When state is parsed
The configuration as structured data transformed for the value of running_config option

Sample:
The configuration returned will always be in the same format of the parameters above.
rendered
list
When state is rendered
The set of CLI commands generated from the value in config option

Sample:
"address_families": [ { "afi": "ipv4", "routes": [ { "dest": "192.2.2.0/24", "next_hops": [ { "admin_distance": 93, "description": null, "forward_router_address": null, "interface": "125.2.3.1", "mpls_label": null, "nexthop_grp": null, "tag": null, "track": null, "vrf": null } ] } ] } ], "vrf": "vrf1" } ], "running_config": null, "state": "rendered" }


Red Hat Support

More information about Red Hat's support of this is available from this Red Hat Knowledge Base article.

Authors

  • Gomathi Selvi Srinivasan (@GomathiselviS)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.

Hint

Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.