junos_static_routes – Manage static routes on Juniper JUNOS devices

Synopsis

  • This module provides declarative management of static routes on Juniper JUNOS devices

Requirements

The below requirements are needed on the host that executes this module.

  • ncclient (>=v0.6.4)
  • xmltodict (>=0.12)

Parameters

Parameter Choices/Defaults Comments
config
list / elements=dictionary
A dictionary of static routes options
address_families
list / elements=dictionary
Address family to use for the static routes
afi
string / required
    Choices:
  • ipv4
  • ipv6
afi to use for the static routes
routes
list / elements=dictionary
Static route configuration
dest
string
Static route destination including prefix
metric
integer
Metric value for the static route
next_hop
list / elements=dictionary
Next hop to destination
forward_router_address
string
List of next hops
vrf
string
Virtual Routing and Forwarding (VRF) name
state
string
    Choices:
  • merged ←
  • replaced
  • overridden
  • deleted
The state the configuration should be left in

Notes

Note

  • This module requires the netconf system service be enabled on the device being managed.
  • This module works with connection netconf. See the Junos OS Platform Options.
  • Tested against JunOS v18.4R1

Examples

---
# Using deleted

# Before state
# ------------
#
# admin# show routing-options
# static {
#     route 192.168.47.0/24 next-hop 172.16.1.2;
#     route 192.168.16.0/24 next-hop 172.16.1.2;
#     route 10.200.16.75/24 next-hop 10.200.16.2;
# }

- name: Delete provided configuration (default operation is merge)
  junos_static_routes:
    config:
      - address_families:
        - afi: 'ipv4'
          routes:
            - dest: 10.200.16.75/24
              next_hop:
                - forward_router_address: 10.200.16.2
    state: deleted

# After state:
# ------------
#
# admin# show routing-options
# static {
#     route 192.168.47.0/24 next-hop 172.16.1.2;
#     route 192.168.16.0/24 next-hop 172.16.1.2;
# }

# Using merged

# Before state
# ------------
#
# admin# show routing-options
# static {
#     route 192.168.47.0/24 next-hop 172.16.1.2;
#     route 192.168.16.0/24 next-hop 172.16.1.2;
# }

- name: Merge provided configuration with device configuration (default operation is merge)
  junos_static_routes:
    config:
      - address_families:
          - afi: 'ipv4'
            routes:
              - dest: 10.200.16.75/24
                next_hop:
                  - forward_router_address: 10.200.16.2
    state: merged

# After state:
# ------------
#
# admin# show routing-options
# static {
#     route 192.168.47.0/24 next-hop 172.16.1.2;
#     route 192.168.16.0/24 next-hop 172.16.1.2;
#     route 10.200.16.75/24 next-hop 10.200.16.2;
# }

# Using overridden

# Before state
# ------------
#
# admin# show routing-options
# static {
#     route 192.168.47.0/24 next-hop 172.16.1.2;
#     route 192.168.16.0/24 next-hop 172.16.0.1;
# }

- name: Override provided configuration with device configuration (default operation is merge)
  junos_static_routes:
    config:
      - address_families:
        - afi: 'ipv4'
          routes:
            - dest: 10.200.16.75/24
              next_hop:
                - forward_router_address: 10.200.16.2
    state: overridden

# After state:
# ------------
#
# admin# show routing-options
# static {
#     route 10.200.16.75/24 next-hop 10.200.16.2;
# }

# Using replaced

# Before state
# ------------
#
# admin# show routing-options
# static {
#     route 192.168.47.0/24 next-hop 172.16.1.2;
#     route 192.168.16.0/24 next-hop 172.16.1.2;
# }

- name: Replace provided configuration with device configuration (default operation is merge)
  junos_static_routes:
    config:
      - address_families:
        - afi: 'ipv4'
          routes:
            - dest: 192.168.47.0/24
              next_hop:
                - forward_router_address: 10.200.16.2
    state: replaced

# After state:
# ------------
#
# admin# show routing-options
# static {
#     route 192.168.47.0/24 next-hop 10.200.16.2;
#     route 192.168.16.0/24 next-hop 172.16.1.2;
# }

Return Values

Common return values are documented here, the following are the fields unique to this module:

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

Sample:
The configuration returned will always be in the same format of the parameters above.
before
string
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:
['command 1', 'command 2', 'command 3']


Status

Red Hat Support

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

Authors

  • Daniel Mellado (@dmellado)

Hint

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