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

From Get docs
Ansible/docs/2.11/collections/junipernetworks/junos/junos bgp global module


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 1.3.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

  • no
  • yes

Allow import policy to specify a non-directly connected next-hop.

add_path_display_ipv4_address

boolean

  • 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

  • no
  • yes

Set Advertise bgp-static routes.

advertise_external

dictionary

Advertise best external routes.

conditional

boolean

  • no
  • yes

Route matches active route upto med-comparison rule.

set

boolean

  • no
  • yes

Set Advertise best external routes.

advertise_from_main_vpn_tables

boolean

  • no
  • yes

Advertise VPN routes from bgp.Xvpn.0 tables in master instance.

advertise_inactive

boolean

  • no
  • yes

Advertise inactive routes.

advertise_peer_as

boolean

  • no
  • yes

Advertise routes received from the same autonomous system.

as_number

string

Specify Autonomous system number.

authentication_algorithm

string

  • 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

  • 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

  • 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

  • no
  • yes

Disable adaptation.

session_mode

string

  • 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

  • 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

  • no
  • yes

Specify no malformed route limit.

set

boolean

  • no
  • yes

Set BGP malformed updates softly.

bmp

dictionary

Specific settings to override the routing-options settings.

monitor

boolean

  • no
  • yes

Enable/Disable monitoring.

route_monitoring

dictionary

Control route monitoring settings.

none

boolean

  • no
  • yes

Do not send route montoring messages.

post_policy

boolean

  • no
  • yes

Send post policy route montoring messages.

post_policy_exclude_non_eligible

boolean

  • no
  • yes

Send post policy route montoring messages and exclude unresolved routes, etc.

post_policy_exclude_non_feasible

boolean

  • no
  • yes

Send pre policy route montoring messages and exclude looped routes, etc.

pre_policy

boolean

  • no
  • yes

Send pre policy route montoring messages.

cluster_id

string

Specify cluster identifier.

damping

boolean

  • no
  • yes

Enable route flap damping.

description

string

Specify text description.

disable

boolean

  • 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.

egress_te_backup_paths

dictionary

Backup-path for Egress-TE peer interface failure.

peer_addr

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.

template

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

  • no
  • yes

Set use IP-forward backup path for Egress TE.

path_name

string

Name of Egress-TE backup path.

egress_te_set_segment

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

The BGP-Peer-Set segment name.

egress_te_sid_stats

boolean

  • no
  • yes

Create BGP-Peer-SID sensor.

enforce_first_as

boolean

  • 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

  • no
  • yes

Disable graceful restart.

dont_help_shared_fate_bfd_down

boolean

  • 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

  • no
  • yes

As for a route reflector client.

from_fib

boolean

  • 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

  • no
  • yes

Set Advertise stale routes to non-LLGR neighbors.

set

boolean

  • no
  • yes

Set Advertise stale routes to non-LLGR neighbors.

receiver_disable

boolean

  • no
  • yes

Disable receiver (helper) functionality.

restart_time

integer

Restart time used when negotiating with a peer.

set

boolean

  • 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.

holddown_all_stale_labels

boolean

  • 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

  • no
  • yes

Idle the peer until the user intervenes.

timeout

integer

Specify timeout value, in seconds, for starting peer after switch over.

import

string

Specify import policy.

include_mp_next_hop

boolean

  • no
  • yes

Include NEXT-HOP attribute in multiprotocol updates.

ipsec_sa

string

Specify IPSec SA name.

keep

string

  • 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

  • no
  • yes

Treat this AS as an alias to the system AS.

as_num

string

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

  • no
  • yes

Maximum number of times this AS can be in an AS path.

private

boolean

  • no
  • yes

Hide this local AS in paths learned from this peering.

set

boolean

  • no
  • yes

Set local autonomous system number.

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

  • 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

  • no
  • yes

Delay updating MED when IGP metric increases.

metric_offset

integer

Specify metric offset for MED.

set

boolean

  • 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

  • no
  • yes

Set track the minimum IGP metric.

mtu_discovery

boolean

  • no
  • yes

Enable TCP path MTU discovery.

multihop

dictionary

Configure an EBGP multihop session.

no_nexthop_change

boolean

  • no
  • yes

Do not change next hop to self in advertisements.

set

boolean

  • 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

  • no
  • yes

Disable Multipath.

multiple_as

boolean

  • no
  • yes

Disable Multipath.

set

boolean

  • no
  • yes

Set allow load sharing among multiple BGP paths.

multipath_build_priority

string

  • low
  • medium

Configure the multipath build priority.

no_advertise_peer_as

boolean

  • no
  • yes

Allows to not advertise routes received from the same autonomous system.

no_aggregator_id

boolean

  • no
  • yes

Set router ID in aggregator path attribute to 0.

no_client_reflect

boolean

  • no
  • yes

Disable intracluster route redistribution.

no_precision_timers

boolean

  • 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

  • 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

  • no
  • yes

Honor IPv4 prefix filters.

inet6

boolean

  • no
  • yes

Honor IPv6 prefix filters.

set

boolean

  • no
  • yes

Set honor Prefix-based ORFs from remote peers.

set

boolean

  • 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

  • no
  • yes

Expedited queue; highest priority.

priority

boolean

  • no
  • yes

Specify output queue priorit.

low

dictionary

Assign the 'low' priority class to this output-queue.

expedited

boolean

  • no
  • yes

Expedited queue; highest priority.

priority

boolean

  • no
  • yes

Specify output queue priorit.

medium

dictionary

Assign the 'medium' priority class to this output-queue.

expedited

boolean

  • no
  • yes

Expedited queue; highest priority.

priority

boolean

  • no
  • yes

Specify output queue priorit.

expedited

dictionary

Expedited queue; highest priority.

set

boolean

  • no
  • yes

Set expedited queue; highest priority.

update_tokens

integer

Specify Number of tokens.

priority

integer

Output queue priority; higher is better.

passive

boolean

  • no
  • yes

Specify to not send open messages to a peer.

path_selection

dictionary

Configure path selection strategy.

always_compare_med

boolean

  • no
  • yes

Compare MED on paths from different AS.

as_path_ignore

boolean

  • no
  • yes

Ignore AS path comparison during path selection.

cisco_non_deterministic

boolean

  • no
  • yes

Use Cisco IOS nondeterministic path selection algorithm.

external_router_id

boolean

  • no
  • yes

Compare router ID on BGP externals.

l2vpn_use_bgp_rules

boolean

  • 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.

peer_as

string

Specify Autonomous system number in plain number or 'higher 16bits'.'Lower 16 bits' format.

precision_timers

boolean

  • no
  • yes

Use precision timers for scheduling keepalives.

preference

string

Specify preference value.

remove_private

dictionary

Remove well-known private AS numbers.

all

boolean

  • no
  • yes

Remove all private AS numbers and do not stop at the first public AS number.

no_peer_loop_check

boolean

  • no
  • yes

Remove peer loop-check.

replace

dictionary

Specify private AS replacement.

nearest

boolean

  • no
  • yes

Use closest public AS number to replace a private AS number.

set

boolean

  • no
  • yes

Replace private AS numbers with the BGP Group's local AS number.

set

boolean

  • no
  • yes

Remove well-known private AS numbers.

rfc6514_compliant_safi129

boolean

  • no
  • yes

Specify Compliance with RFC6514 SAFI129 format.

route_server_client

boolean

  • no
  • yes

Enable route server client behavior.

send_addpath_optimization

boolean

  • no
  • yes

Enable BGP addpath advertisement optimization.

snmp_options

dictionary

Customize SNMP behaviors specifically for BGP MIBs.

backward_traps_only_from_established

boolean

  • no
  • yes

Limit traps for backward transitions to only those moving from Established state.

emit_inet_address_length_in_oid

boolean

  • 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

  • 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.

file_name

string

Specify name of file in which to write trace information.

files

integer

Specify maximum number of trace files.

no_world_readable

boolean

  • no
  • yes

Don't allow any user to read the log file.

size

integer

Specify maximum trace file size.

world_readable

boolean

  • no
  • yes

Allow any user to read the log file.

flag

dictionary

Specify tracing parameters.

add_path

dictionary

Specify trace add-path events.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set trace add-path events.

all

dictionary

Specify to trace everything.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set Trace everything.

bfd

dictionary

Trace BFD events.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set BFD events.

byte_as

dictionary

Specify trace 4 byte AS events.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set trace 4 byte AS events.

damping

dictionary

Trace BGP damping information.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

filter

dictionary

Filter to apply to this flag.

match_on_prefix

boolean

  • no
  • yes

Specify filter based on prefix.

policy

string

Specify filter policy.

set

boolean

  • no
  • yes

Set filter to apply to this flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set Trace BGP damping information.

egress_te

dictionary

Specify Egress Peering Traffic-Engineering events.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set Egress Peering Traffic-Engineering events.

general

dictionary

Trace general events.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set trace general events.

graceful_restart

dictionary

Trace Graceful Restart events.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set Trace Graceful Restart events.

keepalive

dictionary

Trace BGP keepalive packets.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set Trace BGP keepalive packets.

normal

dictionary

Trace normal events.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set Trace normal events.

nsr_synchronization

dictionary

Trace NSR synchronization events.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set Trace NSR synchronization events.

open

dictionary

Trace BGP open packets.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set Trace BGP open packets.

packets

dictionary

Trace all BGP protocol packets.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set Trace all BGP protocol packets.

policy

dictionary

Trace policy processing.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set Trace policy processing.

refresh

dictionary

Trace BGP refresh packets.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set Trace BGP refresh packets.

route

dictionary

Trace routing information.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

filter

dictionary

Filter to apply to this flag.

match_on_prefix

boolean

  • no
  • yes

Specify filter based on prefix.

policy

string

Specify filter policy.

set

boolean

  • no
  • yes

Set filter to apply to this flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set Trace routing information.

state

dictionary

Trace state transitions.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set Trace state transitions.

thread_io

dictionary

Trace threaded I/O processing.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set Trace threaded I/O processing.

thread_update_io

dictionary

Trace threaded update I/O processing.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set Trace threaded update I/O processing.

timer

dictionary

Trace routing protocol timer processing.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Set Trace routing protocol timer processing.

update

dictionary

Trace BGP update packets.

detail

boolean

  • no
  • yes

Trace detailed information.

disable

boolean

  • no
  • yes

Disable this trace flag.

receive

boolean

  • no
  • yes

Trace received packets.

send

boolean

  • no
  • yes

Trace transmitted packets.

set

boolean

  • no
  • yes

Trace BGP update packets.

traffic_statistics_labeled_path

dictionary

Collect periodic ingress labeled statistics for BGP label-switched paths.

file

dictionary

Specify statistics file options.

file_name

string

Specify name of file in which to write trace information.

files

integer

Specify maximum number of trace files.

no_world_readable

boolean

  • no
  • yes

Don't allow any user to read the log file.

size

integer

Specify maximum trace file size.

world_readable

boolean

  • 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

  • no
  • yes

Specify BGP unconfigured peer graceful restart options.

vpn_apply_export

boolean

  • 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 NX-OS device by executing the command show running-config | section '^router 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

  • purged
  • merged

  • replaced
  • deleted
  • gathered
  • parsed
  • rendered

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

- name: Merge Junos BGP interfaces config
  junipernetworks.junos.junos_bgp_global:
    config:
      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 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 replaced
#
# 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;
# }
# 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;


#
# Using deleted
#
# 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: Delete Junos BGP global config
  junipernetworks.junos.junos_bgp_global:
    config:
    state: deleted

# After state
# -----------


# admin# show protocols bgp
# 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
# 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: Purge Junos BGP global config
  junipernetworks.junos.junos_bgp_global:
    config:
    state: purged

# After state
# ----------

# 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,
#         "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:

[' md5 This is configured with Junos_bgp resource module 5 2 4 10 automatic 20000000 enable ', 'xml 2', 'xml 3']




Authors

  • Rohit Thakur (@rohitthakur)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/junipernetworks/junos/junos_bgp_global_module.html