junipernetworks.junos.junos_bgp_global – Manages BGP Global configuration on devices running Juniper JUNOS.

Note

This plugin is part of the junipernetworks.junos collection (version 2.5.0).

To install it use: ansible-galaxy collection install junipernetworks.junos.

To use it in a playbook, specify: junipernetworks.junos.junos_bgp_global.

New in version 1.3.0: of junipernetworks.junos

Synopsis

  • This module manages global bgp configuration on devices running Juniper JUNOS.

Note

This module has a corresponding action plugin.

Requirements

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

  • ncclient (>=v0.6.4)

  • xmltodict (>=0.12.0)

Parameters

Parameter Choices/Defaults Comments
config
dictionary
A list of BGP process configuration.
accept_remote_nexthop
boolean
    Choices:
  • no
  • yes
Allow import policy to specify a non-directly connected next-hop.
add_path_display_ipv4_address
boolean
    Choices:
  • no
  • yes
Display add-path path-id in IPv4 address format.
advertise_bgp_static
dictionary
Advertise bgp-static routes.
policy
string
Specify static route advertisement policy.
set
boolean
    Choices:
  • no
  • yes
Set Advertise bgp-static routes.
advertise_external
dictionary
Advertise best external routes.
conditional
boolean
    Choices:
  • no
  • yes
Route matches active route upto med-comparison rule.
set
boolean
    Choices:
  • no
  • yes
Set Advertise best external routes.
advertise_from_main_vpn_tables
boolean
    Choices:
  • no
  • yes
Advertise VPN routes from bgp.Xvpn.0 tables in master instance.
advertise_inactive
boolean
    Choices:
  • no
  • yes
Advertise inactive routes.
advertise_peer_as
boolean
    Choices:
  • no
  • yes
Advertise routes received from the same autonomous system.
as_number
string
Specify Autonomous system number.
asdot_notation
boolean
    Choices:
  • no
  • yes
Enable AS-Dot notation to display true 4 byte AS numbers.
authentication_algorithm
string
    Choices:
  • aes-128-cmac-96
  • hmac-sha-1-96
  • md5
Specify authentication algorithm name.
authentication_key
string
Specify MD5 authentication key.
authentication_key_chain
string
Specify authentication key chain name.
bfd_liveness_detection
dictionary
Bidirectional Forwarding Detection (BFD) options.
authentication
dictionary
Authentication options.
algorithm
string
    Choices:
  • keyed-md5
  • keyed-sha-1
  • meticulous-keyed-md5
  • meticulous-keyed-sha-1
  • simple-password
Specify algorithm name.
key_chain
string
Specify Key chain name.
loose_check
boolean
    Choices:
  • no
  • yes
Verify authentication only if authentication is negotiated.
detection_time
dictionary
Specify Detection-time optionss.
threshold
integer
Specify high detection-time triggering a trap (milliseconds).
holddown_interval
integer
Specify time to hold the session-UP notification to the client.
minimum_interval
integer
Specify minimum transmit and receive interval.
minimum_receive_interval
integer
Specify minimum receive interval.
multiplier
integer
Specify detection time multiplier.
no_adaptation
boolean
    Choices:
  • no
  • yes
Disable adaptation.
session_mode
string
    Choices:
  • automatic
  • multihop
  • single-hop
BFD single-hop or multihop session-mode.
transmit_interval
dictionary
Transmit-interval options.
minimum_interval
integer
Specify Minimum transmit interval.
threshold
integer
Specify high transmit interval triggering a trap.
version
string
    Choices:
  • 0
  • 1
  • automatic
Specify BFD protocol version number.
bgp_error_tolerance
dictionary
Handle BGP malformed updates softly.
malformed_route_limit
integer
Maximum number of malformed routes from a peer.
malformed_update_log_interval
integer
Time used when logging malformed update.
no_malformed_route_limit
boolean
    Choices:
  • no
  • yes
Specify no malformed route limit.
set
boolean
    Choices:
  • no
  • yes
Set BGP malformed updates softly.
bmp
dictionary
Specific settings to override the routing-options settings.
monitor
boolean
    Choices:
  • no
  • yes
Enable/Disable monitoring.
route_monitoring
dictionary
Control route monitoring settings.
none
boolean
    Choices:
  • no
  • yes
Do not send route montoring messages.
post_policy
boolean
    Choices:
  • no
  • yes
Send post policy route montoring messages.
post_policy_exclude_non_eligible
boolean
    Choices:
  • no
  • yes
Send post policy route montoring messages and exclude unresolved routes, etc.
post_policy_exclude_non_feasible
boolean
    Choices:
  • no
  • yes
Send pre policy route montoring messages and exclude looped routes, etc.
pre_policy
boolean
    Choices:
  • no
  • yes
Send pre policy route montoring messages.
cluster_id
string
Specify cluster identifier.
damping
boolean
    Choices:
  • no
  • yes
Enable route flap damping.
description
string
Specify text description.
disable
boolean
    Choices:
  • no
  • yes
Disable BGP.
egress_te
dictionary
Use Egress Peering traffic engineering.
backup_path
string
The 'egress-te-backup-paths template' to use for this peer.
set
boolean
    Choices:
  • no
  • yes
Set the attribute.
egress_te_backup_paths
dictionary
Backup-path for Egress-TE peer interface failure.
templates
list / elements=dictionary
Specify Backup-path template.
ip_forward
dictionary
Use IP-forward backup path for Egress TE.
rti_name
string
Routing-instance to use as IP forward backup-path.
set
boolean
    Choices:
  • no
  • yes
Set use IP-forward backup path for Egress TE.
path_name
string / required
Name of Egress-TE backup path.
peers
list / elements=string
Specify address of BGP peer to use as backup next-hop.
remote_nexthop
string
Specify address of remote-nexthop to use as backup path.
egress_te_set_segment
list / elements=dictionary
Configure BGP-Peer-Set segment.
egress_te_backup_segment_label
integer
BGP-Peer-Set SID label value from static label pool.
label
integer
Backup segment label value from static label pool.
name
string / required
The BGP-Peer-Set segment name.
egress_te_sid_stats
boolean
    Choices:
  • no
  • yes
Create BGP-Peer-SID sensor.
enforce_first_as
boolean
    Choices:
  • no
  • yes
Enforce neighbor AS is the first AS in AS-PATH attribute (EBGP).
export
string
Specify export policy.
forwarding_context
string
Specify routing-instance used for data-forwarding and transport-session.
graceful_restart
dictionary
BGP graceful restart options.
disable
boolean
    Choices:
  • no
  • yes
Disable graceful restart.
dont_help_shared_fate_bfd_down
boolean
    Choices:
  • no
  • yes
Honor BFD-Down(C=0) if GR-restart not in progress.
forwarding_state_bit
dictionary
Control forwarding-state flag negotiation.
as_rr_client
boolean
    Choices:
  • no
  • yes
As for a route reflector client.
from_fib
boolean
    Choices:
  • no
  • yes
Always use state of associated FIB(s).
long_lived
dictionary
Long-lived graceful restart options.
advertise_to_non_llgr_neighbor
dictionary
Advertise stale routes to non-LLGR neighbors.
omit_no_export
boolean
    Choices:
  • no
  • yes
Set Advertise stale routes to non-LLGR neighbors.
set
boolean
    Choices:
  • no
  • yes
Set Advertise stale routes to non-LLGR neighbors.
receiver_disable
boolean
    Choices:
  • no
  • yes
Disable receiver (helper) functionality.
restart_time
integer
Restart time used when negotiating with a peer.
set
boolean
    Choices:
  • no
  • yes
Set BGP graceful restart options.
stale_routes_time
integer
Maximum time for which stale routes are kept.
groups
list / elements=dictionary
Specify name of the group.
accept_remote_nexthop
boolean
    Choices:
  • no
  • yes
Allow import policy to specify a non-directly connected next-hop.
add_path_display_ipv4_address
boolean
    Choices:
  • no
  • yes
Display add-path path-id in IPv4 address format.
advertise_bgp_static
dictionary
Advertise bgp-static routes.
policy
string
Specify static route advertisement policy.
set
boolean
    Choices:
  • no
  • yes
Set Advertise bgp-static routes.
advertise_external
dictionary
Advertise best external routes.
conditional
boolean
    Choices:
  • no
  • yes
Route matches active route upto med-comparison rule.
set
boolean
    Choices:
  • no
  • yes
Set Advertise best external routes.
advertise_inactive
boolean
    Choices:
  • no
  • yes
Advertise inactive routes.
advertise_peer_as
boolean
    Choices:
  • no
  • yes
Advertise routes received from the same autonomous system.
allow
list / elements=string
Configure peer connections for specific networks.
as_override
boolean
    Choices:
  • no
  • yes
Replace neighbor AS number with our AS number
authentication_algorithm
string
    Choices:
  • aes-128-cmac-96
  • hmac-sha-1-96
  • md5
Specify authentication algorithm name.
authentication_key
string
Specify MD5 authentication key.
authentication_key_chain
string
Specify authentication key chain name.
bfd_liveness_detection
dictionary
Bidirectional Forwarding Detection (BFD) options.
authentication
dictionary
Authentication options.
algorithm
string
    Choices:
  • keyed-md5
  • keyed-sha-1
  • meticulous-keyed-md5
  • meticulous-keyed-sha-1
  • simple-password
Specify algorithm name.
key_chain
string
Specify Key chain name.
loose_check
boolean
    Choices:
  • no
  • yes
Verify authentication only if authentication is negotiated.
detection_time
dictionary
Specify Detection-time optionss.
threshold
integer
Specify high detection-time triggering a trap (milliseconds).
holddown_interval
integer
Specify time to hold the session-UP notification to the client.
minimum_interval
integer
Specify minimum transmit and receive interval.
minimum_receive_interval
integer
Specify minimum receive interval.
multiplier
integer
Specify detection time multiplier.
no_adaptation
boolean
    Choices:
  • no
  • yes
Disable adaptation.
session_mode
string
    Choices:
  • automatic
  • multihop
  • single-hop
BFD single-hop or multihop session-mode.
transmit_interval
dictionary
Transmit-interval options.
minimum_interval
integer
Specify Minimum transmit interval.
threshold
integer
Specify high transmit interval triggering a trap.
version
string
    Choices:
  • 0
  • 1
  • automatic
Specify BFD protocol version number.
bgp_error_tolerance
dictionary
Handle BGP malformed updates softly.
malformed_route_limit
integer
Maximum number of malformed routes from a peer.
malformed_update_log_interval
integer
Time used when logging malformed update.
no_malformed_route_limit
boolean
    Choices:
  • no
  • yes
Specify no malformed route limit.
set
boolean
    Choices:
  • no
  • yes
Set BGP malformed updates softly.
bmp
dictionary
Specific settings to override the routing-options settings.
monitor
boolean
    Choices:
  • no
  • yes
Enable/Disable monitoring.
route_monitoring
dictionary
Control route monitoring settings.
none
boolean
    Choices:
  • no
  • yes
Do not send route montoring messages.
post_policy
boolean
    Choices:
  • no
  • yes
Send post policy route montoring messages.
post_policy_exclude_non_eligible
boolean
    Choices:
  • no
  • yes
Send post policy route montoring messages and exclude unresolved routes, etc.
post_policy_exclude_non_feasible
boolean
    Choices:
  • no
  • yes
Send pre policy route montoring messages and exclude looped routes, etc.
pre_policy
boolean
    Choices:
  • no
  • yes
Send pre policy route montoring messages.
cluster_id
string
Specify cluster identifier.
damping
boolean
    Choices:
  • no
  • yes
Enable route flap damping.
description
string
Specify text description.
egress_te
dictionary
Use Egress Peering traffic engineering.
backup_path
string
The 'egress-te-backup-paths template' to use for this peer.
set
boolean
    Choices:
  • no
  • yes
Set the attribute.
enforce_first_as
boolean
    Choices:
  • no
  • yes
Enforce neighbor AS is the first AS in AS-PATH attribute (EBGP).
export
string
Specify export policy.
forwarding_context
string
Specify routing-instance used for data-forwarding and transport-session.
graceful_restart
dictionary
BGP graceful restart options.
disable
boolean
    Choices:
  • no
  • yes
Disable graceful restart.
dont_help_shared_fate_bfd_down
boolean
    Choices:
  • no
  • yes
Honor BFD-Down(C=0) if GR-restart not in progress.
forwarding_state_bit
dictionary
Control forwarding-state flag negotiation.
as_rr_client
boolean
    Choices:
  • no
  • yes
As for a route reflector client.
from_fib
boolean
    Choices:
  • no
  • yes
Always use state of associated FIB(s).
long_lived
dictionary
Long-lived graceful restart options.
advertise_to_non_llgr_neighbor
dictionary
Advertise stale routes to non-LLGR neighbors.
omit_no_export
boolean
    Choices:
  • no
  • yes
Set Advertise stale routes to non-LLGR neighbors.
set
boolean
    Choices:
  • no
  • yes
Set Advertise stale routes to non-LLGR neighbors.
receiver_disable
boolean
    Choices:
  • no
  • yes
Disable receiver (helper) functionality.
restart_time
integer
Restart time used when negotiating with a peer.
set
boolean
    Choices:
  • no
  • yes
Set BGP graceful restart options.
stale_routes_time
integer
Maximum time for which stale routes are kept.
hold_time
integer
Specify hold time used when negotiating with a peer.
idle_after_switch_over
dictionary
Stop peer session from coming up after nonstop-routing switch-over.
forever
boolean
    Choices:
  • no
  • yes
Idle the peer until the user intervenes.
timeout
integer
Specify timeout value, in seconds, for starting peer after switch over.
import
list / elements=string
Specify import policy.
include_mp_next_hop
boolean
    Choices:
  • no
  • yes
Include NEXT-HOP attribute in multiprotocol updates.
ipsec_sa
string
Specify IPSec SA name.
keep
string
    Choices:
  • all
  • none
Specify how to retain routes in the routing table.
local_address
string
Specify Address of local end of BGP session.
local_as
dictionary
Local autonomous system number.
alias
boolean
    Choices:
  • no
  • yes
Treat this AS as an alias to the system AS.
as_num
string / required
Autonomous system number in plain number or (asdot notation) format.
loops
integer
Maximum number of times this AS can be in an AS path.
no_prepend_global_as
boolean
    Choices:
  • no
  • yes
Maximum number of times this AS can be in an AS path.
private
boolean
    Choices:
  • no
  • yes
Hide this local AS in paths learned from this peering.
local_interface
string
Specify Local interface for IPv6 link local EBGP peering.
local_preference
string
Specify value of LOCAL_PREF path attribute.
log_updown
boolean
    Choices:
  • no
  • yes
Enable log a message for peer state transitions.
metric_out
dictionary
Specify route metric sent in MED.
igp
dictionary
Track the IGP metric.
delay_med_update
boolean
    Choices:
  • no
  • yes
Delay updating MED when IGP metric increases.
metric_offset
integer
Specify metric offset for MED.
set
boolean
    Choices:
  • no
  • yes
Set track the IGP metric.
metric_value
integer
Specify metric value.
minimum_igp
dictionary
Track the minimum IGP metric.
metric_offset
integer
Specify metric offset for MED.
set
boolean
    Choices:
  • no
  • yes
Set track the minimum IGP metric.
mtu_discovery
boolean
    Choices:
  • no
  • yes
Enable TCP path MTU discovery.
multihop
dictionary
Configure an EBGP multihop session.
no_nexthop_change
boolean
    Choices:
  • no
  • yes
Do not change next hop to self in advertisements.
set
boolean
    Choices:
  • no
  • yes
Set an EBGP multihop session.
ttl
integer
TTL value for the session.
multipath
dictionary
Allow load sharing among multiple BGP paths.
disable
boolean
    Choices:
  • no
  • yes
Disable Multipath.
multiple_as
boolean
    Choices:
  • no
  • yes
Use paths received from different ASs.
multiple_as_disable
boolean
    Choices:
  • no
  • yes
Disable multipath.
set
boolean
    Choices:
  • no
  • yes
Set allow load sharing among multiple BGP paths.
name
string
Specify the name of the group
neighbors
list / elements=dictionary
Specify list of neighbors.
accept_remote_nexthop
boolean
    Choices:
  • no
  • yes
Allow import policy to specify a non-directly connected next-hop.
add_path_display_ipv4_address
boolean
    Choices:
  • no
  • yes
Display add-path path-id in IPv4 address format.
advertise_bgp_static
dictionary
Advertise bgp-static routes.
policy
string
Specify static route advertisement policy.
set
boolean
    Choices:
  • no
  • yes
Set Advertise bgp-static routes.
advertise_external
dictionary
Advertise best external routes.
conditional
boolean
    Choices:
  • no
  • yes
Route matches active route upto med-comparison rule.
set
boolean
    Choices:
  • no
  • yes
Set Advertise best external routes.
advertise_inactive
boolean
    Choices:
  • no
  • yes
Advertise inactive routes.
advertise_peer_as
boolean
    Choices:
  • no
  • yes
Advertise routes received from the same autonomous system.
as_override
boolean
    Choices:
  • no
  • yes
Replace neighbor AS number with our AS number
authentication_algorithm
string
    Choices:
  • aes-128-cmac-96
  • hmac-sha-1-96
  • md5
Specify authentication algorithm name.
authentication_key
string
Specify MD5 authentication key.
authentication_key_chain
string
Specify authentication key chain name.
bfd_liveness_detection
dictionary
Bidirectional Forwarding Detection (BFD) options.
authentication
dictionary
Authentication options.
algorithm
string
    Choices:
  • keyed-md5
  • keyed-sha-1
  • meticulous-keyed-md5
  • meticulous-keyed-sha-1
  • simple-password
Specify algorithm name.
key_chain
string
Specify Key chain name.
loose_check
boolean
    Choices:
  • no
  • yes
Verify authentication only if authentication is negotiated.
detection_time
dictionary
Specify Detection-time optionss.
threshold
integer
Specify high detection-time triggering a trap (milliseconds).
holddown_interval
integer
Specify time to hold the session-UP notification to the client.
minimum_interval
integer
Specify minimum transmit and receive interval.
minimum_receive_interval
integer
Specify minimum receive interval.
multiplier
integer
Specify detection time multiplier.
no_adaptation
boolean
    Choices:
  • no
  • yes
Disable adaptation.
session_mode
string
    Choices:
  • automatic
  • multihop
  • single-hop
BFD single-hop or multihop session-mode.
transmit_interval
dictionary
Transmit-interval options.
minimum_interval
integer
Specify Minimum transmit interval.
threshold
integer
Specify high transmit interval triggering a trap.
version
string
    Choices:
  • 0
  • 1
  • automatic
Specify BFD protocol version number.
bgp_error_tolerance
dictionary
Handle BGP malformed updates softly.
malformed_route_limit
integer
Maximum number of malformed routes from a peer.
malformed_update_log_interval
integer
Time used when logging malformed update.
no_malformed_route_limit
boolean
    Choices:
  • no
  • yes
Specify no malformed route limit.
set
boolean
    Choices:
  • no
  • yes
Set BGP malformed updates softly.
bmp
dictionary
Specific settings to override the routing-options settings.
monitor
boolean
    Choices:
  • no
  • yes
Enable/Disable monitoring.
route_monitoring
dictionary
Control route monitoring settings.
none
boolean
    Choices:
  • no
  • yes
Do not send route montoring messages.
post_policy
boolean
    Choices:
  • no
  • yes
Send post policy route montoring messages.
post_policy_exclude_non_eligible
boolean
    Choices:
  • no
  • yes
Send post policy route montoring messages and exclude unresolved routes, etc.
post_policy_exclude_non_feasible
boolean
    Choices:
  • no
  • yes
Send pre policy route montoring messages and exclude looped routes, etc.
pre_policy
boolean
    Choices:
  • no
  • yes
Send pre policy route montoring messages.
cluster_id
string
Specify cluster identifier.
damping
boolean
    Choices:
  • no
  • yes
Enable route flap damping.
description
string
Specify neighbor description.
egress_te
dictionary
Use Egress Peering traffic engineering.
backup_path
string
The 'egress-te-backup-paths template' to use for this peer.
set
boolean
    Choices:
  • no
  • yes
Set the attribute.
enforce_first_as
boolean
    Choices:
  • no
  • yes
Enforce neighbor AS is the first AS in AS-PATH attribute (EBGP).
export
string
Specify export policy.
forwarding_context
string
Specify routing-instance used for data-forwarding and transport-session.
graceful_restart
dictionary
BGP graceful restart options.
disable
boolean
    Choices:
  • no
  • yes
Disable graceful restart.
dont_help_shared_fate_bfd_down
boolean
    Choices:
  • no
  • yes
Honor BFD-Down(C=0) if GR-restart not in progress.
forwarding_state_bit
dictionary
Control forwarding-state flag negotiation.
as_rr_client
boolean
    Choices:
  • no
  • yes
As for a route reflector client.
from_fib
boolean
    Choices:
  • no
  • yes
Always use state of associated FIB(s).
long_lived
dictionary
Long-lived graceful restart options.
advertise_to_non_llgr_neighbor
dictionary
Advertise stale routes to non-LLGR neighbors.
omit_no_export
boolean
    Choices:
  • no
  • yes
Set Advertise stale routes to non-LLGR neighbors.
set
boolean
    Choices:
  • no
  • yes
Set Advertise stale routes to non-LLGR neighbors.
receiver_disable
boolean
    Choices:
  • no
  • yes
Disable receiver (helper) functionality.
restart_time
integer
Restart time used when negotiating with a peer.
set
boolean
    Choices:
  • no
  • yes
Set BGP graceful restart options.
stale_routes_time
integer
Maximum time for which stale routes are kept.
hold_time
integer
Specify hold time used when negotiating with a peer.
idle_after_switch_over
dictionary
Stop peer session from coming up after nonstop-routing switch-over.
forever
boolean
    Choices:
  • no
  • yes
Idle the peer until the user intervenes.
timeout
integer
Specify timeout value, in seconds, for starting peer after switch over.
import
list / elements=string
Specify import policy.
include_mp_next_hop
boolean
    Choices:
  • no
  • yes
Include NEXT-HOP attribute in multiprotocol updates.
ipsec_sa
string
Specify IPSec SA name.
keep
string
    Choices:
  • all
  • none
Specify how to retain routes in the routing table.
local_address
string
Specify Address of local end of BGP session.
local_as
dictionary
Local autonomous system number.
alias
boolean
    Choices:
  • no
  • yes
Treat this AS as an alias to the system AS.
as_num
string / required
Autonomous system number in plain number or (asdot notation) format.
loops
integer
Maximum number of times this AS can be in an AS path.
no_prepend_global_as
boolean
    Choices:
  • no
  • yes
Maximum number of times this AS can be in an AS path.
private
boolean
    Choices:
  • no
  • yes
Hide this local AS in paths learned from this peering.
local_interface
string
Specify Local interface for IPv6 link local EBGP peering.
local_preference
string
Specify value of LOCAL_PREF path attribute.
log_updown
boolean
    Choices:
  • no
  • yes
Enable log a message for peer state transitions.
metric_out
dictionary
Specify route metric sent in MED.
igp
dictionary
Track the IGP metric.
delay_med_update
boolean
    Choices:
  • no
  • yes
Delay updating MED when IGP metric increases.
metric_offset
integer
Specify metric offset for MED.
set
boolean
    Choices:
  • no
  • yes
Set track the IGP metric.
metric_value
integer
Specify metric value.
minimum_igp
dictionary
Track the minimum IGP metric.
metric_offset
integer
Specify metric offset for MED.
set
boolean
    Choices:
  • no
  • yes
Set track the minimum IGP metric.
mtu_discovery
boolean
    Choices:
  • no
  • yes
Enable TCP path MTU discovery.
multihop
dictionary
Configure an EBGP multihop session.
no_nexthop_change
boolean
    Choices:
  • no
  • yes
Do not change next hop to self in advertisements.
set
boolean
    Choices:
  • no
  • yes
Set an EBGP multihop session.
ttl
integer
TTL value for the session.
multipath
dictionary
Allow load sharing among multiple BGP paths.
disable
boolean
    Choices:
  • no
  • yes
Disable Multipath.
multiple_as
boolean
    Choices:
  • no
  • yes
Use paths received from different ASs.
multiple_as_disable
boolean
    Choices:
  • no
  • yes
Disable multipath.
set
boolean
    Choices:
  • no
  • yes
Set allow load sharing among multiple BGP paths.
neighbor_address
string
Specify neighbor address.
no_advertise_peer_as
boolean
    Choices:
  • no
  • yes
Allows to not advertise routes received from the same autonomous system.
no_aggregator_id
boolean
    Choices:
  • no
  • yes
Set router ID in aggregator path attribute to 0.
no_client_reflect
boolean
    Choices:
  • no
  • yes
Disable intracluster route redistribution.
out_delay
integer
Specify how long before exporting routes from routing table.
outbound_route_filter
dictionary
Dynamically negotiated cooperative route filtering.
bgp_orf_cisco_mode
boolean
    Choices:
  • no
  • yes
Using BGP ORF capability code 130 and Prefix ORF type 128.
prefix_based
dictionary
Prefix-based outbound route filtering.
accept
dictionary
Honor Prefix-based ORFs from remote peers.
inet
boolean
    Choices:
  • no
  • yes
Honor IPv4 prefix filters.
inet6
boolean
    Choices:
  • no
  • yes
Honor IPv6 prefix filters.
set
boolean
    Choices:
  • no
  • yes
Set honor Prefix-based ORFs from remote peers.
set
boolean
    Choices:
  • no
  • yes
Set prefix-based outbound route filtering.
passive
boolean
    Choices:
  • no
  • yes
Specify to not send open messages to a peer.
peer_as
string
Specify Autonomous system number in plain number or 'higher 16bits'.'Lower 16 bits' format.
preference
string
Specify preference value.
remove_private
dictionary
Remove well-known private AS numbers.
all
boolean
    Choices:
  • no
  • yes
Remove all private AS numbers and do not stop at the first public AS number.
all_replace
boolean
    Choices:
  • no
  • yes
Specify private AS replacement.
all_replace_nearest
boolean
    Choices:
  • no
  • yes
Use closest public AS number to replace a private AS number.
no_peer_loop_check
boolean
    Choices:
  • no
  • yes
Remove peer loop-check.
set
boolean
    Choices:
  • no
  • yes
Remove well-known private AS numbers.
rfc6514_compliant_safi129
boolean
    Choices:
  • no
  • yes
Specify Compliance with RFC6514 SAFI129 format.
route_server_client
boolean
    Choices:
  • no
  • yes
Enable route server client behavior.
tcp_aggressive_transmission
boolean
    Choices:
  • no
  • yes
Enable aggressive transmission of pure TCP ACKs and retransmissions.
tcp_mss
integer
Specify maximum TCP segment size.
traceoptions
dictionary
Configure trace options for BGP.
file
dictionary
Specify trace file options.
filename
string / required
Specify name of file in which to write trace information.
files
integer
Specify maximum number of trace files.
no_world_readable
boolean
    Choices:
  • no
  • yes
Don't allow any user to read the log file.
size
integer
Specify maximum trace file size.
world_readable
boolean
    Choices:
  • no
  • yes
Allow any user to read the log file.
flag
list / elements=dictionary
Specify tracing parameters.
detail
boolean
    Choices:
  • no
  • yes
Trace detailed information.
disable
boolean
    Choices:
  • no
  • yes
Disable this trace flag.
filter
dictionary
Filter to apply to this flag.
match_on_prefix
boolean
    Choices:
  • no
  • yes
Specify filter based on prefix.
policy
string
Specify filter policy.
set
boolean
    Choices:
  • no
  • yes
Set filter to apply to this flag.
name
string / required
    Choices:
  • 4byte-as
  • add-path
  • all
  • bfd
  • damping
  • egress-te
  • general
  • graceful-restart
  • keepalive
  • normal
  • nsr-synchronization
  • open
  • packets
  • policy
  • refresh
  • route
  • state
  • task
  • thread-io
  • thread-update-io
  • timer
  • update
specify event name
receive
boolean
    Choices:
  • no
  • yes
Trace received packets.
send
boolean
    Choices:
  • no
  • yes
Trace transmitted packets.
ttl
integer
Specify TTL value for the single-hop peer.
unconfigured_peer_graceful_restart
boolean
    Choices:
  • no
  • yes
Specify BGP unconfigured peer graceful restart options.
vpn_apply_export
boolean
    Choices:
  • no
  • yes
Apply BGP export policy when exporting VPN routes.
no_advertise_peer_as
boolean
    Choices:
  • no
  • yes
Allows to not advertise routes received from the same autonomous system.
no_aggregator_id
boolean
    Choices:
  • no
  • yes
Set router ID in aggregator path attribute to 0.
no_client_reflect
boolean
    Choices:
  • no
  • yes
Disable intracluster route redistribution.
optimal_route_reflection
dictionary
Enable optimal route reflection for this client group.
igp_backup
string
Backup node identifier for this client group.
igp_primary
string
Primary node identifier for this client group.
out_delay
integer
Specify how long before exporting routes from routing table.
outbound_route_filter
dictionary
Dynamically negotiated cooperative route filtering.
bgp_orf_cisco_mode
boolean
    Choices:
  • no
  • yes
Using BGP ORF capability code 130 and Prefix ORF type 128.
prefix_based
dictionary
Prefix-based outbound route filtering.
accept
dictionary
Honor Prefix-based ORFs from remote peers.
inet
boolean
    Choices:
  • no
  • yes
Honor IPv4 prefix filters.
inet6
boolean
    Choices:
  • no
  • yes
Honor IPv6 prefix filters.
set
boolean
    Choices:
  • no
  • yes
Set honor Prefix-based ORFs from remote peers.
set
boolean
    Choices:
  • no
  • yes
Set prefix-based outbound route filtering.
passive
boolean
    Choices:
  • no
  • yes
Specify to not send open messages to a peer.
peer_as
string
Specify Autonomous system number in plain number or 'higher 16bits'.'Lower 16 bits' format.
preference
string
Specify preference value.
remove_private
dictionary
Remove well-known private AS numbers.
all
boolean
    Choices:
  • no
  • yes
Remove all private AS numbers and do not stop at the first public AS number.
all_replace
boolean
    Choices:
  • no
  • yes
Specify private AS replacement.
all_replace_nearest
boolean
    Choices:
  • no
  • yes
Use closest public AS number to replace a private AS number.
no_peer_loop_check
boolean
    Choices:
  • no
  • yes
Remove peer loop-check.
set
boolean
    Choices:
  • no
  • yes
Remove well-known private AS numbers.
rfc6514_compliant_safi129
boolean
    Choices:
  • no
  • yes
Specify Compliance with RFC6514 SAFI129 format.
route_server_client
boolean
    Choices:
  • no
  • yes
Enable route server client behavior.
tcp_aggressive_transmission
boolean
    Choices:
  • no
  • yes
Enable aggressive transmission of pure TCP ACKs and retransmissions.
tcp_mss
integer
Specify maximum TCP segment size.
traceoptions
dictionary
Configure trace options for BGP.
file
dictionary
Specify trace file options.
filename
string / required
Specify name of file in which to write trace information.
files
integer
Specify maximum number of trace files.
no_world_readable
boolean
    Choices:
  • no
  • yes
Don't allow any user to read the log file.
size
integer
Specify maximum trace file size.
world_readable
boolean
    Choices:
  • no
  • yes
Allow any user to read the log file.
flag
list / elements=dictionary
Specify tracing parameters.
detail
boolean
    Choices:
  • no
  • yes
Trace detailed information.
disable
boolean
    Choices:
  • no
  • yes
Disable this trace flag.
filter
dictionary
Filter to apply to this flag.
match_on_prefix
boolean
    Choices:
  • no
  • yes
Specify filter based on prefix.
policy
string
Specify filter policy.
set
boolean
    Choices:
  • no
  • yes
Set filter to apply to this flag.
name
string / required
    Choices:
  • 4byte-as
  • add-path
  • all
  • bfd
  • damping
  • egress-te
  • general
  • graceful-restart
  • keepalive
  • normal
  • nsr-synchronization
  • open
  • packets
  • policy
  • refresh
  • route
  • state
  • task
  • thread-io
  • thread-update-io
  • timer
  • update
specify event name
receive
boolean
    Choices:
  • no
  • yes
Trace received packets.
send
boolean
    Choices:
  • no
  • yes
Trace transmitted packets.
ttl
integer
Specify TTL value for the single-hop peer.
type
string
    Choices:
  • external
  • internal
Specify BGP group type.
unconfigured_peer_graceful_restart
boolean
    Choices:
  • no
  • yes
Specify BGP unconfigured peer graceful restart options.
vpn_apply_export
boolean
    Choices:
  • no
  • yes
Apply BGP export policy when exporting VPN routes.
hold_time
integer
Specify hold time used when negotiating with a peer.
holddown_all_stale_labels
boolean
    Choices:
  • no
  • yes
Hold all BGP stale-labels, facilating make-before-break for new label advertisements.
idle_after_switch_over
dictionary
Stop peer session from coming up after nonstop-routing switch-over.
forever
boolean
    Choices:
  • no
  • yes
Idle the peer until the user intervenes.
timeout
integer
Specify timeout value, in seconds, for starting peer after switch over.
import
list / elements=string
Specify import policy.
include_mp_next_hop
boolean
    Choices:
  • no
  • yes
Include NEXT-HOP attribute in multiprotocol updates.
ipsec_sa
string
Specify IPSec SA name.
keep
string
    Choices:
  • all
  • none
Specify how to retain routes in the routing table.
local_address
string
Specify Address of local end of BGP session.
local_as
dictionary
Local autonomous system number.
alias
boolean
    Choices:
  • no
  • yes
Treat this AS as an alias to the system AS.
as_num
string / required
Autonomous system number in plain number or (asdot notation) format.
loops
integer
Maximum number of times this AS can be in an AS path.
no_prepend_global_as
boolean
    Choices:
  • no
  • yes
Maximum number of times this AS can be in an AS path.
private
boolean
    Choices:
  • no
  • yes
Hide this local AS in paths learned from this peering.
local_interface
string
Specify Local interface for IPv6 link local EBGP peering.
local_preference
string
Specify value of LOCAL_PREF path attribute.
log_updown
boolean
    Choices:
  • no
  • yes
Enable log a message for peer state transitions.
loops
integer
Specify maximum number of times this AS can be in an AS path.
metric_out
dictionary
Specify route metric sent in MED.
igp
dictionary
Track the IGP metric.
delay_med_update
boolean
    Choices:
  • no
  • yes
Delay updating MED when IGP metric increases.
metric_offset
integer
Specify metric offset for MED.
set
boolean
    Choices:
  • no
  • yes
Set track the IGP metric.
metric_value
integer
Specify metric value.
minimum_igp
dictionary
Track the minimum IGP metric.
metric_offset
integer
Specify metric offset for MED.
set
boolean
    Choices:
  • no
  • yes
Set track the minimum IGP metric.
mtu_discovery
boolean
    Choices:
  • no
  • yes
Enable TCP path MTU discovery.
multihop
dictionary
Configure an EBGP multihop session.
no_nexthop_change
boolean
    Choices:
  • no
  • yes
Do not change next hop to self in advertisements.
set
boolean
    Choices:
  • no
  • yes
Set an EBGP multihop session.
ttl
integer
TTL value for the session.
multipath
dictionary
Allow load sharing among multiple BGP paths.
disable
boolean
    Choices:
  • no
  • yes
Disable Multipath.
multiple_as
boolean
    Choices:
  • no
  • yes
Use paths received from different ASs.
multiple_as_disable
boolean
    Choices:
  • no
  • yes
Disable multipath.
set
boolean
    Choices:
  • no
  • yes
Set allow load sharing among multiple BGP paths.
multipath_build_priority
string
    Choices:
  • low
  • medium
Configure the multipath build priority.
no_advertise_peer_as
boolean
    Choices:
  • no
  • yes
Allows to not advertise routes received from the same autonomous system.
no_aggregator_id
boolean
    Choices:
  • no
  • yes
Set router ID in aggregator path attribute to 0.
no_client_reflect
boolean
    Choices:
  • no
  • yes
Disable intracluster route redistribution.
no_precision_timers
boolean
    Choices:
  • no
  • yes
Specify not to use precision timers for scheduling keepalives.
out_delay
integer
Specify how long before exporting routes from routing table.
outbound_route_filter
dictionary
Dynamically negotiated cooperative route filtering.
bgp_orf_cisco_mode
boolean
    Choices:
  • no
  • yes
Using BGP ORF capability code 130 and Prefix ORF type 128.
prefix_based
dictionary
Prefix-based outbound route filtering.
accept
dictionary
Honor Prefix-based ORFs from remote peers.
inet
boolean
    Choices:
  • no
  • yes
Honor IPv4 prefix filters.
inet6
boolean
    Choices:
  • no
  • yes
Honor IPv6 prefix filters.
set
boolean
    Choices:
  • no
  • yes
Set honor Prefix-based ORFs from remote peers.
set
boolean
    Choices:
  • no
  • yes
Set prefix-based outbound route filtering.
output_queue_priority
dictionary
BGP output queue priority scheduler for updates.
defaults
dictionary
Map policy's priority class and BGP output-queue.
high
dictionary
Assign the 'high' priority class to this output-queue.
expedited
boolean
    Choices:
  • no
  • yes
Expedited queue; highest priority.
priority
integer
Specify output queue priorit.
low
dictionary
Assign the 'low' priority class to this output-queue.
expedited
boolean
    Choices:
  • no
  • yes
Expedited queue; highest priority.
priority
integer
Specify output queue priorit.
medium
dictionary
Assign the 'medium' priority class to this output-queue.
expedited
boolean
    Choices:
  • no
  • yes
Expedited queue; highest priority.
priority
integer
Specify output queue priorit.
expedited_update_tokens
integer
Expedited queue; highest priority for number of tokens.
priority_update_tokens
list / elements=dictionary
Output queue priority; higher is better.
priority
integer / required
Specify the priority.
update_tokens
integer / required
Specify update_tokens.
passive
boolean
    Choices:
  • no
  • yes
Specify to not send open messages to a peer.
path_selection
dictionary
Configure path selection strategy.
always_compare_med
boolean
    Choices:
  • no
  • yes
Compare MED on paths from different AS.
as_path_ignore
boolean
    Choices:
  • no
  • yes
Ignore AS path comparison during path selection.
cisco_non_deterministic
boolean
    Choices:
  • no
  • yes
Use Cisco IOS nondeterministic path selection algorithm.
external_router_id
boolean
    Choices:
  • no
  • yes
Compare router ID on BGP externals.
l2vpn_use_bgp_rules
boolean
    Choices:
  • no
  • yes
Use standard BGP rules during L2VPN path selection.
med_plus_igp
dictionary
Add IGP cost to next-hop to MED before comparing MED values.
igp_multiplier
integer
Specify multiplier for IGP cost to next-hop.
med_multiplier
integer
Specify Multiplier for MED.
set
boolean
    Choices:
  • no
  • yes
Set med-plus-igp attribute.
peer_as
string
Specify Autonomous system number in plain number or 'higher 16bits'.'Lower 16 bits' format.
precision_timers
boolean
    Choices:
  • no
  • yes
Use precision timers for scheduling keepalives.
preference
string
Specify preference value.
remove_private
dictionary
Remove well-known private AS numbers.
all
boolean
    Choices:
  • no
  • yes
Remove all private AS numbers and do not stop at the first public AS number.
all_replace
boolean
    Choices:
  • no
  • yes
Specify private AS replacement.
all_replace_nearest
boolean
    Choices:
  • no
  • yes
Use closest public AS number to replace a private AS number.
no_peer_loop_check
boolean
    Choices:
  • no
  • yes
Remove peer loop-check.
set
boolean
    Choices:
  • no
  • yes
Remove well-known private AS numbers.
rfc6514_compliant_safi129
boolean
    Choices:
  • no
  • yes
Specify Compliance with RFC6514 SAFI129 format.
route_server_client
boolean
    Choices:
  • no
  • yes
Enable route server client behavior.
send_addpath_optimization
boolean
    Choices:
  • no
  • yes
Enable BGP addpath advertisement optimization.
snmp_options
dictionary
Customize SNMP behaviors specifically for BGP MIBs.
backward_traps_only_from_established
boolean
    Choices:
  • no
  • yes
Limit traps for backward transitions to only those moving from Established state.
emit_inet_address_length_in_oid
boolean
    Choices:
  • no
  • yes
Emit Length in OID for InetAddress MIB type.
sr_preference_override
string
Replace received segment routing traffic engineering preference value with override value.
stale_labels_holddown_period
integer
Specify duration (sec) MPLS labels allocated by BGP are kept after they go stale.
tcp_aggressive_transmission
boolean
    Choices:
  • no
  • yes
Enable aggressive transmission of pure TCP ACKs and retransmissions.
tcp_mss
integer
Specify maximum TCP segment size.
traceoptions
dictionary
Configure trace options for BGP.
file
dictionary
Specify trace file options.
filename
string / required
Specify name of file in which to write trace information.
files
integer
Specify maximum number of trace files.
no_world_readable
boolean
    Choices:
  • no
  • yes
Don't allow any user to read the log file.
size
integer
Specify maximum trace file size.
world_readable
boolean
    Choices:
  • no
  • yes
Allow any user to read the log file.
flag
list / elements=dictionary
Specify tracing parameters.
detail
boolean
    Choices:
  • no
  • yes
Trace detailed information.
disable
boolean
    Choices:
  • no
  • yes
Disable this trace flag.
filter
dictionary
Filter to apply to this flag.
match_on_prefix
boolean
    Choices:
  • no
  • yes
Specify filter based on prefix.
policy
string
Specify filter policy.
set
boolean
    Choices:
  • no
  • yes
Set filter to apply to this flag.
name
string / required
    Choices:
  • 4byte-as
  • add-path
  • all
  • bfd
  • damping
  • egress-te
  • general
  • graceful-restart
  • keepalive
  • normal
  • nsr-synchronization
  • open
  • packets
  • policy
  • refresh
  • route
  • state
  • task
  • thread-io
  • thread-update-io
  • timer
  • update
specify event name
receive
boolean
    Choices:
  • no
  • yes
Trace received packets.
send
boolean
    Choices:
  • no
  • yes
Trace transmitted packets.
traffic_statistics_labeled_path
dictionary
Collect periodic ingress labeled statistics for BGP label-switched paths.
file
dictionary
Specify statistics file options.
filename
string
Specify name of file in which to write trace information.
files
integer
Specify maximum number of trace files.
no_world_readable
boolean
    Choices:
  • no
  • yes
Don't allow any user to read the log file.
size
integer
Specify maximum trace file size.
world_readable
boolean
    Choices:
  • no
  • yes
Allow any user to read the log file.
interval
integer
Specify time interval to collect statistics.
ttl
integer
Specify TTL value for the single-hop peer.
unconfigured_peer_graceful_restart
boolean
    Choices:
  • no
  • yes
Specify BGP unconfigured peer graceful restart options.
vpn_apply_export
boolean
    Choices:
  • no
  • yes
Apply BGP export policy when exporting VPN routes.
running_config
string
This option is used only with state parsed.
The value of this option should be the output received from the Junos device by executing the command show protocols 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:
  • purged
  • merged ←
  • replaced
  • deleted
  • gathered
  • parsed
  • rendered
The state the configuration should be left in.
State purged removes all (routing-options autonomous-system, bgp global, bgp groups, bgp neighbors, bgp family and bgp group and neighbor family) the BGP configurations from the target device. Use caution with this state.
State deleted only removes BGP attributes that this modules manages and does not negate the BGP process completely. Thereby, preserving address-family related configurations under BGP context.
Running states deleted and replaced will result in an error if there are address-family configuration lines present under a neighbor.Please use the junipernetworks.junos.junos_bgp_address_family modules for prior cleanup.
Refer to examples for more details.

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 merged
#
# Before state
# ------------
#
# admin# show protocols bgp
# [edit]

# admin# show routing-options autonomous-system
# [edit]

- name: Merge Junos BGP config
  junipernetworks.junos.junos_bgp_global:
    config:
      as_number: "65534"
      loops: 3
      asdot_notation: true
      accept_remote_nexthop: true
      add_path_display_ipv4_address: true
      advertise_bgp_static:
        policy: "static-to-bgp"
      advertise_from_main_vpn_tables: true
      advertise_inactive: true
      authentication_algorithm: "md5"
      bgp_error_tolerance:
        malformed_route_limit: 20000000
      bmp:
        monitor: true
      damping: true
      description: "This is configured with Junos_bgp resource module"
      egress_te_sid_stats: true
      hold_time: 5
      holddown_all_stale_labels: true
      include_mp_next_hop: true
      log_updown: true
      no_advertise_peer_as: true
      no_aggregator_id: true
      no_client_reflect: true
      out_delay: 10
      precision_timers: true
      preference: 2
    state: merged

# After state
# -----------
#
# admin# show routing-options autonomous-system
# 65534 loops 3 asdot-notation;

# admin# show protocols bgp
# precision-timers;
# advertise-from-main-vpn-tables;
# holddown-all-stale-labels;
# description "This is configured with Junos_bgp resource module";
# accept-remote-nexthop;
# preference 2;
# hold-time 5;
# advertise-inactive;
# no-advertise-peer-as;
# no-aggregator-id;
# out-delay 10;
# log-updown;
# damping;
# bgp-error-tolerance {
#     malformed-route-limit 20000000;
# }
# authentication-algorithm md5;
# no-client-reflect;
# include-mp-next-hop;
# bmp {
#     monitor enable;
# }
# advertise-bgp-static {
#     policy static-to-bgp;
# }
# add-path-display-ipv4-address;
# egress-te-sid-stats;


# Using merged
#
# Before state
# ------------
#
# admin# show routing-options autonomous-system
# 65534 loops 3 asdot-notation;

# admin# show protocols bgp
# precision-timers;
# advertise-from-main-vpn-tables;
# holddown-all-stale-labels;
# description "This is configured with Junos_bgp resource module";
# accept-remote-nexthop;
# preference 2;
# hold-time 5;
# advertise-inactive;
# no-advertise-peer-as;
# no-aggregator-id;
# out-delay 10;
# log-updown;
# damping;
# bgp-error-tolerance {
#     malformed-route-limit 20000000;
# }
# authentication-algorithm md5;
# no-client-reflect;
# include-mp-next-hop;
# bmp {
#     monitor enable;
# }
# advertise-bgp-static {
#     policy static-to-bgp;
# }
# add-path-display-ipv4-address;
# egress-te-sid-stats;

- name: Update running Junos BGP config
  junipernetworks.junos.junos_bgp_global:
    config:
      egress_te_backup_paths:
        templates:
          - path_name: customer1
            peers:
              - '11.11.11.11'
              - '11.11.11.12'
              - '11.11.11.13'
            remote_nexthop: '2.2.2.2'
      groups:
        - name: 'internal'
          type: 'internal'
          vpn_apply_export: true
          out_delay: 30
          accept_remote_nexthop: true
          add_path_display_ipv4_address: true
          peer_as: '65534'
          allow:
            - 'all'
            - '1.1.1.0/24'
          neighbors:
            - neighbor_address: '11.11.11.11'
              peer_as: '65534'
              out_delay: 11
            - neighbor_address: '11.11.11.12'
              peer_as: '65534'
              out_delay: 12

        - name: 'external'
          out_delay: 20
          peer_as: '65534'
          accept_remote_nexthop: true
          add_path_display_ipv4_address: true
          neighbors:
            - neighbor_address: '12.12.12.12'
              peer_as: '65534'
              out_delay: 21
              accept_remote_nexthop: true
              add_path_display_ipv4_address: true
            - neighbor_address: '11.11.11.13'
              peer_as: '65534'
              out_delay: 31
              accept_remote_nexthop: true
              add_path_display_ipv4_address: true
    state: merged

# After state
# -----------
#
# admin# show routing-options autonomous-system
# 65534 loops 3 asdot-notation;

# admin# show protocols bgp
# precision-timers;
# advertise-from-main-vpn-tables;
# holddown-all-stale-labels;
# egress-te-backup-paths {
#     template customer1 {
#         peer 11.11.11.11;
#         peer 11.11.11.12;
#         peer 11.11.11.13;
#         remote-nexthop {
#             2.2.2.2;
#         }
#     }
# }
# description "This is configured with Junos_bgp resource module";
# accept-remote-nexthop;
# preference 2;
# hold-time 5;
# advertise-inactive;
# no-advertise-peer-as;
# no-aggregator-id;
# out-delay 10;
# log-updown;
# damping;
# bgp-error-tolerance {
#     malformed-route-limit 20000000;
# }
# authentication-algorithm md5;
# no-client-reflect;
# include-mp-next-hop;
# bmp {
#     monitor enable;
# }
# add-path-display-ipv4-address;
# egress-te-sid-stats;
# group internal {
#     type internal;
#     accept-remote-nexthop;
#     out-delay 30;
#     vpn-apply-export;
#     peer-as 65534;
#     add-path-display-ipv4-address;
#     allow [ 0.0.0.0/0 1.1.1.0/24 ];
#     neighbor 11.11.11.11 {
#         out-delay 11;
#         peer-as 65534;
#     }
#     neighbor 11.11.11.12 {
#         out-delay 12;
#         peer-as 65534;
#     }
# }
# group external {
#     accept-remote-nexthop;
#     out-delay 20;
#     peer-as 65534;
#     add-path-display-ipv4-address;
#     neighbor 12.12.12.12 {
#         accept-remote-nexthop;
#         out-delay 21;
#         peer-as 65534;
#         add-path-display-ipv4-address;
#     }
#     neighbor 11.11.11.13 {
#         accept-remote-nexthop;
#         out-delay 31;
#         peer-as 65534;
#         add-path-display-ipv4-address;
#     }
# }


# Using replaced
#
# Before state
# ------------
#
# admin# show routing-options autonomous-system
# [edit]
# admin# show protocols bgp
# precision-timers;
# advertise-from-main-vpn-tables;
# holddown-all-stale-labels;
# description "This is configured with Junos_bgp resource module";
# accept-remote-nexthop;
# preference 2;
# hold-time 5;
# advertise-inactive;
# no-advertise-peer-as;
# no-aggregator-id;
# out-delay 10;
# log-updown;
# damping;
# bgp-error-tolerance {
#     malformed-route-limit 20000000;
# }
# authentication-algorithm md5;
# no-client-reflect;
# include-mp-next-hop;
# bmp {
#     monitor enable;
# }
# advertise-bgp-static {
#     policy static-to-bgp;
# }
# add-path-display-ipv4-address;
# egress-te-sid-stats;

- name: Replace Junos BGP global config
  junipernetworks.junos.junos_bgp_global:
   config:
     advertise_bgp_static:
       policy: "static-to-bgp"
     advertise_inactive: true
     authentication_algorithm: "md5"
     bfd_liveness_detection:
       minimum_receive_interval: 8
       multiplier: 30
       no_adaptation: true
       transmit_interval:
         minimum_interval: 4
       version: "automatic"
     bgp_error_tolerance:
       malformed_route_limit: 40000000
     description: "This is configured with Junos_bgp resource module replace"
     egress_te_sid_stats: true
     hold_time: 5
     out_delay: 10
     preference: "2"
   state: replaced

# After state
# -----------
#
# admin# show protocols bgp
# description "This is configured with Junos_bgp resource module replace";
# preference 2;
# hold-time 5;
# advertise-inactive;
# out-delay 10;
# bgp-error-tolerance {
#     malformed-route-limit 40000000;
# }
# authentication-algorithm md5;
# advertise-bgp-static {
#     policy static-to-bgp;
# }
# bfd-liveness-detection {
#     version automatic;
#     minimum-receive-interval 8;
#     multiplier 30;
#     no-adaptation;
#     transmit-interval {
#         minimum-interval 4;
#     }
# }
# egress-te-sid-stats;

# admin# show routing-options autonomous-system
# [edit]

#
# Using deleted
#
# Before state
# ------------
#
# admin# show protocols bgp
# precision-timers;
# advertise-from-main-vpn-tables;
# holddown-all-stale-labels;
# description "This is configured with Junos_bgp resource module";
# accept-remote-nexthop;
# preference 2;
# hold-time 5;
# advertise-inactive;
# no-advertise-peer-as;
# no-aggregator-id;
# out-delay 10;
# log-updown;
# damping;
# bgp-error-tolerance {
#     malformed-route-limit 20000000;
# }
# authentication-algorithm md5;
# no-client-reflect;
# include-mp-next-hop;
# bmp {
#     monitor enable;
# }
# add-path-display-ipv4-address;
# egress-te-sid-stats;
# group internal {
#     out-delay 12;
# }
# admin# show routing-options autonomous-system
# 65534 loops 3 asdot-notation;

- name: Delete Junos BGP global config
  junipernetworks.junos.junos_bgp_global:
    config:
    state: deleted

# After state
# -----------
# admin# show protocols bgp
# group internal {
#     out-delay 12;
# }



# admin# show protocols bgp
# [edit]

# admin# show routing-options autonomous-system
# [edit]
# Using gathered
#
# Before state
# ------------
#
# admin# show protocols bgp
# description "This is configured with Junos_bgp resource module replace";
# preference 2;
# hold-time 5;
# advertise-inactive;
# out-delay 10;
# bgp-error-tolerance {
#     malformed-route-limit 40000000;
# }
# authentication-algorithm md5;
# advertise-bgp-static {
#     policy static-to-bgp;
# }
# bfd-liveness-detection {
#     version automatic;
#     minimum-receive-interval 8;
#     multiplier 30;
#     no-adaptation;
#     transmit-interval {
#         minimum-interval 4;
#     }
# }
# egress-te-sid-stats;

- name: Gather Junos BGP global config
  junipernetworks.junos.junos_bgp_global:
    config:
    state: gathered
#
#
# -------------------------
# Module Execution Result
# -------------------------
#
#    "gathered": {
#         "advertise_bgp_static": {
#             "policy": "static-to-bgp"
#         },
#         "advertise_inactive": true,
#         "authentication_algorithm": "md5",
#         "bfd_liveness_detection": {
#             "minimum_receive_interval": 8,
#             "multiplier": 30,
#             "no_adaptation": true,
#             "transmit_interval": {
#                 "minimum_interval": 4
#             },
#             "version": "automatic"
#         },
#         "bgp_error_tolerance": {
#             "malformed_route_limit": 40000000
#         },
#         "description": "This is configured with Junos_bgp resource module replace",
#         "egress_te_sid_stats": true,
#         "hold_time": 5,
#         "out_delay": 10,
#         "preference": "2"
#     }
#
#
# Using purged
#
# Before state
# ------------
#
# admin# show protocols bgp
# precision-timers;
# advertise-from-main-vpn-tables;
# holddown-all-stale-labels;
# description "This is configured with Junos_bgp resource module";
# accept-remote-nexthop;
# preference 2;
# hold-time 5;
# advertise-inactive;
# no-advertise-peer-as;
# no-aggregator-id;
# out-delay 10;
# log-updown;
# damping;
# bgp-error-tolerance {
#     malformed-route-limit 20000000;
# }
# authentication-algorithm md5;
# no-client-reflect;
# include-mp-next-hop;
# bmp {
#     monitor enable;
# }
# add-path-display-ipv4-address;
# egress-te-sid-stats;
# group internal {
#     out-delay 12;
# }
# admin# show routing-options autonomous-system
# 65534 loops 3 asdot-notation;

- name: Purge Junos BGP global config
  junipernetworks.junos.junos_bgp_global:
    config:
    state: purged

# After state
# ----------
# admin# show protocols bgp
#
# [edit]
# admin# show routing-options autonomous-system
#
#[edit]


# Using rendered
#
#
- name: Render the commands for provided  configuration
  junipernetworks.junos.junos_bgp_global:
    config:
      authentication_algorithm: "md5"
      bfd_liveness_detection:
        minimum_receive_interval: 4
        multiplier: 10
        no_adaptation: true
        transmit_interval:
          minimum_interval: 2
        version: "automatic"
      bgp_error_tolerance:
        malformed_route_limit: 20000000
      bmp:
        monitor: true
      damping: true
      description: "This is configured with Junos_bgp resource module"
      egress_te_sid_stats: true
      hold_time: 5
    state: rendered

#
#
# -------------------------
# Module Execution Result
# -------------------------
#
#
# "rendered": "
# <nc:protocols
#     xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
#     <nc:bgp>
#         <nc:damping/>
#         <nc:egress-te-sid-stats/>
#         <nc:authentication-algorithm>md5</nc:authentication-algorithm>
#         <nc:description>This is configured with Junos_bgp resource module</nc:description>
#         <nc:hold-time>5</nc:hold-time>
#         <nc:bfd-liveness-detection>
#             <nc:transmit-interval>
#                 <nc:minimum-interval>2</nc:minimum-interval>
#             </nc:transmit-interval>
#             <nc:minimum-receive-interval>4</nc:minimum-receive-interval>
#             <nc:multiplier>10</nc:multiplier>
#             <nc:no-adaptation/>
#             <nc:version>automatic</nc:version>
#         </nc:bfd-liveness-detection>
#         <nc:bgp-error-tolerance>
#             <nc:malformed-route-limit>20000000</nc:malformed-route-limit>
#         </nc:bgp-error-tolerance>
#         <nc:bmp>
#             <nc:monitor>enable</nc:monitor>
#         </nc:bmp>
#     </nc:bgp>
# </nc:protocols>"
#
# Using parsed
# parsed.cfg
# ------------
# <?xml version="1.0" encoding="UTF-8"?>
# <rpc-reply message-id="urn:uuid:0cadb4e8-5bba-47f4-986e-72906227007f">
#    <configuration changed-seconds="1590139550" changed-localtime="2020-05-22 09:25:50 UTC">
#       <version>18.4R1-S2.4</version>
#       <protocols>
#          <bgp>
#             <precision-timers />
#             <advertise-from-main-vpn-tables />
#             <holddown-all-stale-labels />
#             <description>This is configured with Junos_bgp resource module</description>
#             <accept-remote-nexthop />
#             <preference>2</preference>
#             <hold-time>5</hold-time>
#             <advertise-inactive />
#             <no-advertise-peer-as />
#             <no-aggregator-id />
#             <out-delay>10</out-delay>
#             <log-updown />
#             <damping />
#             <bgp-error-tolerance>
#                <malformed-route-limit>20000000</malformed-route-limit>
#             </bgp-error-tolerance>
#             <authentication-algorithm>md5</authentication-algorithm>
#             <remove-private />
#             <no-client-reflect />
#             <include-mp-next-hop />
#             <bmp>
#                <monitor>disable</monitor>
#                <route-monitoring>
#                   <none />
#                </route-monitoring>
#             </bmp>
#             <advertise-bgp-static>
#                <policy>static-to-bgp</policy>
#             </advertise-bgp-static>
#             <add-path-display-ipv4-address />
#             <bfd-liveness-detection>
#                <version>automatic</version>
#                <minimum-receive-interval>4</minimum-receive-interval>
#                <multiplier>10</multiplier>
#                <no-adaptation />
#                <transmit-interval>
#                   <minimum-interval>2</minimum-interval>
#                </transmit-interval>
#                <detection-time>
#                   <threshold>300000</threshold>
#                </detection-time>
#             </bfd-liveness-detection>
#             <egress-te-sid-stats />
#             <group>
#                <name>internal</name>
#                <out-delay>8</out-delay>
#             </group>
#             <group>
#                <name>external</name>
#                <out-delay>9</out-delay>
#             </group>
#             <group>
#                <name>inboun</name>
#                <type>internal</type>
#             </group>
#             <group>
#                <name>ibgp</name>
#                <type>internal</type>
#                <local-address>10.2.2.2</local-address>
#                <export>static-to-bgp</export>
#                <neighbor>
#                   <name>10.1.1.1</name>
#                </neighbor>
#             </group>
#          </bgp>
#          <ospf3>
#             <area>
#                <name>0.0.0.100</name>
#                <stub>
#                   <default-metric>200</default-metric>
#                </stub>
#                <interface>
#                   <name>so-0/0/0.0</name>
#                   <metric>5</metric>
#                   <priority>3</priority>
#                </interface>
#             </area>
#          </ospf3>
#       </protocols>
#       <routing-options>
#          <static>
#             <route>
#                <name>172.16.17.0/24</name>
#                <discard />
#             </route>
#          </static>
#          <router-id>10.200.16.75</router-id>
#          <autonomous-system>
#             <as-number>65432</as-number>
#          </autonomous-system>
#       </routing-options>
#    </configuration>
# </rpc-reply>


- name: Parsed the device configuration to get output commands
  junipernetworks.junos.junos_bgp_global:
    running_config: "{{ lookup('file', './parsed.cfg') }}"
    state: parsed
#
#
# -------------------------
# Module Execution Result
# -------------------------
#
#
# "parsed":  {
#         "accept_remote_nexthop": true,
#         "add_path_display_ipv4_address": true,
#         "advertise_bgp_static": {
#             "policy": "static-to-bgp"
#         },
#         "advertise_from_main_vpn_tables": true,
#         "advertise_inactive": true,
#         "as_number": "65432",
#         "authentication_algorithm": "md5",
#         "bfd_liveness_detection": {
#             "detection_time": {
#                 "threshold": 300000
#             },
#             "minimum_receive_interval": 4,
#             "multiplier": 10,
#             "no_adaptation": true,
#             "transmit_interval": {
#                 "minimum_interval": 2
#             },
#             "version": "automatic"
#         },
#         "bgp_error_tolerance": {
#             "malformed_route_limit": 20000000
#         },
#         "bmp": {
#             "monitor": false,
#             "route_monitoring": {
#                 "none": true
#             }
#         },
#         "damping": true,
#         "description": "This is configured with Junos_bgp resource module",
#         "egress_te_sid_stats": true,
#         "hold_time": 5,
#         "holddown_all_stale_labels": true,
#         "include_mp_next_hop": true,
#         "log_updown": true,
#         "no_advertise_peer_as": true,
#         "no_aggregator_id": true,
#         "no_client_reflect": true,
#         "out_delay": 10,
#         "precision_timers": true,
#         "preference": "2"
#     }
#

Return Values

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

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

Sample:
The configuration returned will always be in the same format of the parameters above.
before
dictionary
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 / elements=string
always
The set of commands pushed to the remote device.

Sample:
[' <nc:protocols xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> <nc:bgp> <nc:damping/> <nc:egress-te-sid-stats/> <nc:authentication-algorithm>md5</nc:authentication-algorithm> <nc:description>This is configured with Junos_bgp resource module</nc:description> <nc:hold-time>5</nc:hold-time> <nc:bfd-liveness-detection> <nc:transmit-interval> <nc:minimum-interval>2</nc:minimum-interval> </nc:transmit-interval> <nc:minimum-receive-interval>4</nc:minimum-receive-interval> <nc:multiplier>10</nc:multiplier> <nc:no-adaptation/> <nc:version>automatic</nc:version> </nc:bfd-liveness-detection> <nc:bgp-error-tolerance> <nc:malformed-route-limit>20000000</nc:malformed-route-limit> </nc:bgp-error-tolerance> <nc:bmp> <nc:monitor>enable</nc:monitor> </nc:bmp> </nc:bgp> </nc:protocols>', 'xml 2', 'xml 3']


Authors

  • Rohit Thakur (@rohitthakur2590)