fortinet.fortimanager.fmgr_wanprof_system_sdwan – Configure redundant internet connections using SD-WAN

Note

This plugin is part of the fortinet.fortimanager collection (version 2.1.3).

To install it use: ansible-galaxy collection install fortinet.fortimanager.

To use it in a playbook, specify: fortinet.fortimanager.fmgr_wanprof_system_sdwan.

New in version 2.10: of fortinet.fortimanager

Synopsis

  • This module is able to configure a FortiManager device.

  • Examples include all parameters and values which need to be adjusted to data sources before usage.

Parameters

Parameter Choices/Defaults Comments
adom
string / required
the parameter (adom) in requested url
bypass_validation
boolean
    Choices:
  • no ←
  • yes
only set to True when module schema diffs with FortiManager API structure, module continues to execute without validating parameters
enable_log
boolean
    Choices:
  • no ←
  • yes
Enable/Disable logging for task
proposed_method
string
    Choices:
  • update
  • set
  • add
The overridden method for the underlying Json RPC request
rc_failed
list / elements=string
the rc codes list with which the conditions to fail will be overriden
rc_succeeded
list / elements=string
the rc codes list with which the conditions to succeed will be overriden
state
string / required
    Choices:
  • present
  • absent
the directive to create, update or delete an object
wanprof
string / required
the parameter (wanprof) in requested url
wanprof_system_sdwan
dictionary
the top level parameters set
duplication
list / elements=string
no description
dstaddr
string
Destination address or address group names.
dstaddr6
string
Destination address6 or address6 group names.
dstintf
string
Outgoing (egress) interfaces or zones.
id
integer
Duplication rule ID (1 - 255).
packet-de-duplication
string
    Choices:
  • disable
  • enable
Enable/disable discarding of packets that have been duplicated.
packet-duplication
string
    Choices:
  • disable
  • force
  • on-demand
Configure packet duplication method.
service
string
Service and service group name.
service-id
string
SD-WAN service rule ID list.
srcaddr
string
Source address or address group names.
srcaddr6
string
Source address6 or address6 group names.
srcintf
string
Incoming (ingress) interfaces or zones.
duplication-max-num
integer
Maximum number of interface members a packet is duplicated in the SD-WAN zone (2 - 4, default = 2; if set to 3, the original p...
fail-detect
string
    Choices:
  • disable
  • enable
Enable/disable SD-WAN Internet connection status checking (failure detection).
health-check
list / elements=string
no description
_dynamic-server
string
no description
addr-mode
string
    Choices:
  • ipv4
  • ipv6
Address mode (IPv4 or IPv6).
detect-mode
string
    Choices:
  • active
  • passive
  • prefer-passive
The mode determining how to detect the server.
diffservcode
string
Differentiated services code point (DSCP) in the IP header of the probe packet.
dns-match-ip
string
Response IP expected from DNS server if the protocol is DNS.
dns-request-domain
string
Fully qualified domain name to resolve for the DNS probe.
failtime
integer
Number of failures before server is considered lost (1 - 3600, default = 5).
ftp-file
string
Full path and file name on the FTP server to download for FTP health-check to probe.
ftp-mode
string
    Choices:
  • passive
  • port
FTP mode.
ha-priority
integer
HA election priority (1 - 50).
http-agent
string
String in the http-agent field in the HTTP header.
http-get
string
URL used to communicate with the server if the protocol if the protocol is HTTP.
http-match
string
Response string expected from the server if the protocol is HTTP.
interval
integer
Status check interval in milliseconds, or the time between attempting to connect to the server (500 - 3600*1000 msec, ...
members
string
Member sequence number list.
name
string
Status check or health check name.
packet-size
integer
Packet size of a twamp test session,
password
string
no description
port
integer
Port number used to communicate with the server over the selected protocol (0-65535, default = 0, auto select. http, t...
probe-count
integer
Number of most recent probes that should be used to calculate latency and jitter (5 - 30, default = 30).
probe-packets
string
    Choices:
  • disable
  • enable
Enable/disable transmission of probe packets.
probe-timeout
integer
Time to wait before a probe packet is considered lost (500 - 3600*1000 msec, default = 500).
protocol
string
    Choices:
  • ping
  • tcp-echo
  • udp-echo
  • http
  • twamp
  • ping6
  • dns
  • tcp-connect
  • ftp
Protocol used to determine if the FortiGate can communicate with the server.
quality-measured-method
string
    Choices:
  • half-close
  • half-open
Method to measure the quality of tcp-connect.
recoverytime
integer
Number of successful responses received before server is considered recovered (1 - 3600, default = 5).
security-mode
string
    Choices:
  • none
  • authentication
Twamp controller security mode.
server
string
no description
sla
list / elements=string
no description
id
integer
SLA ID.
jitter-threshold
integer
Jitter for SLA to make decision in milliseconds. (0 - 10000000, default = 5).
latency-threshold
integer
Latency for SLA to make decision in milliseconds. (0 - 10000000, default = 5).
link-cost-factor
list / elements=string
    Choices:
  • latency
  • jitter
  • packet-loss
no description
packetloss-threshold
integer
Packet loss for SLA to make decision in percentage. (0 - 100, default = 0).
sla-fail-log-period
integer
Time interval in seconds that SLA fail log messages will be generated (0 - 3600, default = 0).
sla-pass-log-period
integer
Time interval in seconds that SLA pass log messages will be generated (0 - 3600, default = 0).
system-dns
string
    Choices:
  • disable
  • enable
Enable/disable system DNS as the probe server.
threshold-alert-jitter
integer
Alert threshold for jitter (ms, default = 0).
threshold-alert-latency
integer
Alert threshold for latency (ms, default = 0).
threshold-alert-packetloss
integer
Alert threshold for packet loss (percentage, default = 0).
threshold-warning-jitter
integer
Warning threshold for jitter (ms, default = 0).
threshold-warning-latency
integer
Warning threshold for latency (ms, default = 0).
threshold-warning-packetloss
integer
Warning threshold for packet loss (percentage, default = 0).
update-cascade-interface
string
    Choices:
  • disable
  • enable
Enable/disable update cascade interface.
update-static-route
string
    Choices:
  • disable
  • enable
Enable/disable updating the static route.
user
string
The user name to access probe server.
load-balance-mode
string
    Choices:
  • source-ip-based
  • weight-based
  • usage-based
  • source-dest-ip-based
  • measured-volume-based
Algorithm or mode to use for load balancing Internet traffic to SD-WAN members.
members
list / elements=string
no description
_dynamic-member
string
no description
comment
string
Comments.
cost
integer
Cost of this interface for services in SLA mode (0 - 4294967295, default = 0).
gateway
string
The default gateway for this interface. Usually the default gateway of the Internet service provider that this interfa...
gateway6
string
IPv6 gateway.
ingress-spillover-threshold
integer
Ingress spillover threshold for this interface (0 - 16776000 kbit/s). When this traffic volume threshold is reached, n...
interface
string
Interface name.
priority
integer
Priority of the interface (0 - 65535). Used for SD-WAN rules or priority rules.
priority6
integer
Priority of the interface for IPv6 (1 - 65535, default = 1024). Used for SD-WAN rules or priority rules.
seq-num
integer
Sequence number(1-512).
source
string
Source IP address used in the health-check packet to the server.
source6
string
Source IPv6 address used in the health-check packet to the server.
spillover-threshold
integer
Egress spillover threshold for this interface (0 - 16776000 kbit/s). When this traffic volume threshold is reached, ne...
status
string
    Choices:
  • disable
  • enable
Enable/disable this interface in the SD-WAN.
volume-ratio
integer
Measured volume ratio (this value / sum of all values = percentage of link volume, 1 - 255).
weight
integer
Weight of this interface for weighted load balancing. (1 - 255) More traffic is directed to interfaces with higher wei...
zone
string
Zone name.
neighbor
list / elements=string
no description
health-check
string
SD-WAN health-check name.
ip
string
IP/IPv6 address of neighbor.
member
string
Member sequence number.
role
string
    Choices:
  • primary
  • secondary
  • standalone
Role of neighbor.
sla-id
integer
SLA ID.
neighbor-hold-boot-time
integer
Waiting period in seconds when switching from the primary neighbor to the secondary neighbor from the neighbor start. (0 - 100...
neighbor-hold-down
string
    Choices:
  • disable
  • enable
Enable/disable hold switching from the secondary neighbor to the primary neighbor.
neighbor-hold-down-time
integer
Waiting period in seconds when switching from the secondary neighbor to the primary neighbor when hold-down is disabled. (0 - ...
service
list / elements=string
no description
addr-mode
string
    Choices:
  • ipv4
  • ipv6
Address mode (IPv4 or IPv6).
bandwidth-weight
integer
Coefficient of reciprocal of available bidirectional bandwidth in the formula of custom-profile-1.
default
string
    Choices:
  • disable
  • enable
Enable/disable use of SD-WAN as default service.
dscp-forward
string
    Choices:
  • disable
  • enable
Enable/disable forward traffic DSCP tag.
dscp-forward-tag
string
Forward traffic DSCP tag.
dscp-reverse
string
    Choices:
  • disable
  • enable
Enable/disable reverse traffic DSCP tag.
dscp-reverse-tag
string
Reverse traffic DSCP tag.
dst
string
Destination address name.
dst-negate
string
    Choices:
  • disable
  • enable
Enable/disable negation of destination address match.
dst6
string
Destination address6 name.
end-port
integer
End destination port number.
gateway
string
    Choices:
  • disable
  • enable
Enable/disable SD-WAN service gateway.
groups
string
User groups.
hash-mode
string
    Choices:
  • round-robin
  • source-ip-based
  • source-dest-ip-based
  • inbandwidth
  • outbandwidth
  • bibandwidth
Hash algorithm for selected priority members for load balance mode.
health-check
string
Health check list.
hold-down-time
integer
Waiting period in seconds when switching from the back-up member to the primary member (0 - 10000000, default = 0).
id
integer
SD-WAN rule ID (1 - 4000).
input-device
string
Source interface name.
input-device-negate
string
    Choices:
  • disable
  • enable
Enable/disable negation of input device match.
internet-service
string
    Choices:
  • disable
  • enable
Enable/disable use of Internet service for application-based load balancing.
internet-service-app-ctrl
integer
no description
internet-service-app-ctrl-group
string
Application control based Internet Service group list.
internet-service-custom
string
Custom Internet service name list.
internet-service-custom-group
string
Custom Internet Service group list.
internet-service-group
string
Internet Service group list.
internet-service-name
string
Internet service name list.
jitter-weight
integer
Coefficient of jitter in the formula of custom-profile-1.
latency-weight
integer
Coefficient of latency in the formula of custom-profile-1.
link-cost-factor
string
    Choices:
  • latency
  • jitter
  • packet-loss
  • inbandwidth
  • outbandwidth
  • bibandwidth
  • custom-profile-1
Link cost factor.
link-cost-threshold
integer
Percentage threshold change of link cost values that will result in policy route regeneration (0 - 10000000, default =...
minimum-sla-meet-members
integer
Minimum number of members which meet SLA.
mode
string
    Choices:
  • auto
  • manual
  • priority
  • sla
  • load-balance
Control how the SD-WAN rule sets the priority of interfaces in the SD-WAN.
name
string
SD-WAN rule name.
packet-loss-weight
integer
Coefficient of packet-loss in the formula of custom-profile-1.
priority-members
string
Member sequence number list.
protocol
integer
Protocol number.
quality-link
integer
Quality grade.
role
string
    Choices:
  • primary
  • secondary
  • standalone
Service role to work with neighbor.
route-tag
integer
IPv4 route map route-tag.
sla
list / elements=string
no description
health-check
string
SD-WAN health-check.
id
integer
SLA ID.
sla-compare-method
string
    Choices:
  • order
  • number
Method to compare SLA value for SLA mode.
src
string
Source address name.
src-negate
string
    Choices:
  • disable
  • enable
Enable/disable negation of source address match.
src6
string
Source address6 name.
standalone-action
string
    Choices:
  • disable
  • enable
Enable/disable service when selected neighbor role is standalone while service role is not standalone.
start-port
integer
Start destination port number.
status
string
    Choices:
  • disable
  • enable
Enable/disable SD-WAN service.
tie-break
string
    Choices:
  • zone
  • cfg-order
  • fib-best-match
Method of selecting member if more than one meets the SLA.
tos
string
Type of service bit pattern.
tos-mask
string
Type of service evaluated bits.
use-shortcut-sla
string
    Choices:
  • disable
  • enable
Enable/disable use of ADVPN shortcut for quality comparison.
users
string
User name.
status
string
    Choices:
  • disable
  • enable
Enable/disable SD-WAN.
zone
list / elements=string
no description
name
string
Zone name.
service-sla-tie-break
string
    Choices:
  • cfg-order
  • fib-best-match
Method of selecting member if more than one meets the SLA.
workspace_locking_adom
string
the adom to lock for FortiManager running in workspace mode, the value can be global and others including root
workspace_locking_timeout
integer
Default:
300
the maximum time in seconds to wait for other user to release the workspace lock

Notes

Note

  • Running in workspace locking mode is supported in this FortiManager module, the top level parameters workspace_locking_adom and workspace_locking_timeout help do the work.

  • To create or update an object, use state present directive.

  • To delete an object, use state absent directive.

  • Normally, running one module can fail when a non-zero rc is returned. you can also override the conditions to fail or succeed with parameters rc_failed and rc_succeeded

Examples

- hosts: fortimanager-inventory
  collections:
    - fortinet.fortimanager
  connection: httpapi
  vars:
     ansible_httpapi_use_ssl: True
     ansible_httpapi_validate_certs: False
     ansible_httpapi_port: 443
  tasks:
   - name: Configure redundant internet connections using SD-WAN
     fmgr_wanprof_system_sdwan:
        bypass_validation: False
        workspace_locking_adom: <value in [global, custom adom including root]>
        workspace_locking_timeout: 300
        rc_succeeded: [0, -2, -3, ...]
        rc_failed: [-2, -3, ...]
        adom: <your own value>
        wanprof: <your own value>
        wanprof_system_sdwan:
           duplication:
             -
                 dstaddr: <value of string>
                 dstaddr6: <value of string>
                 dstintf: <value of string>
                 id: <value of integer>
                 packet-de-duplication: <value in [disable, enable]>
                 packet-duplication: <value in [disable, force, on-demand]>
                 service: <value of string>
                 srcaddr: <value of string>
                 srcaddr6: <value of string>
                 srcintf: <value of string>
                 service-id: <value of string>
           duplication-max-num: <value of integer>
           fail-detect: <value in [disable, enable]>
           health-check:
             -
                 _dynamic-server: <value of string>
                 addr-mode: <value in [ipv4, ipv6]>
                 diffservcode: <value of string>
                 dns-match-ip: <value of string>
                 dns-request-domain: <value of string>
                 failtime: <value of integer>
                 ftp-file: <value of string>
                 ftp-mode: <value in [passive, port]>
                 ha-priority: <value of integer>
                 http-agent: <value of string>
                 http-get: <value of string>
                 http-match: <value of string>
                 interval: <value of integer>
                 members: <value of string>
                 name: <value of string>
                 packet-size: <value of integer>
                 password: <value of string>
                 port: <value of integer>
                 probe-count: <value of integer>
                 probe-packets: <value in [disable, enable]>
                 probe-timeout: <value of integer>
                 protocol: <value in [ping, tcp-echo, udp-echo, ...]>
                 quality-measured-method: <value in [half-close, half-open]>
                 recoverytime: <value of integer>
                 security-mode: <value in [none, authentication]>
                 server: <value of string>
                 sla:
                   -
                       id: <value of integer>
                       jitter-threshold: <value of integer>
                       latency-threshold: <value of integer>
                       link-cost-factor:
                         - latency
                         - jitter
                         - packet-loss
                       packetloss-threshold: <value of integer>
                 sla-fail-log-period: <value of integer>
                 sla-pass-log-period: <value of integer>
                 system-dns: <value in [disable, enable]>
                 threshold-alert-jitter: <value of integer>
                 threshold-alert-latency: <value of integer>
                 threshold-alert-packetloss: <value of integer>
                 threshold-warning-jitter: <value of integer>
                 threshold-warning-latency: <value of integer>
                 threshold-warning-packetloss: <value of integer>
                 update-cascade-interface: <value in [disable, enable]>
                 update-static-route: <value in [disable, enable]>
                 user: <value of string>
                 detect-mode: <value in [active, passive, prefer-passive]>
           load-balance-mode: <value in [source-ip-based, weight-based, usage-based, ...]>
           members:
             -
                 _dynamic-member: <value of string>
                 comment: <value of string>
                 cost: <value of integer>
                 gateway: <value of string>
                 gateway6: <value of string>
                 ingress-spillover-threshold: <value of integer>
                 interface: <value of string>
                 priority: <value of integer>
                 seq-num: <value of integer>
                 source: <value of string>
                 source6: <value of string>
                 spillover-threshold: <value of integer>
                 status: <value in [disable, enable]>
                 volume-ratio: <value of integer>
                 weight: <value of integer>
                 zone: <value of string>
                 priority6: <value of integer>
           neighbor:
             -
                 health-check: <value of string>
                 ip: <value of string>
                 member: <value of string>
                 role: <value in [primary, secondary, standalone]>
                 sla-id: <value of integer>
           neighbor-hold-boot-time: <value of integer>
           neighbor-hold-down: <value in [disable, enable]>
           neighbor-hold-down-time: <value of integer>
           service:
             -
                 addr-mode: <value in [ipv4, ipv6]>
                 bandwidth-weight: <value of integer>
                 default: <value in [disable, enable]>
                 dscp-forward: <value in [disable, enable]>
                 dscp-forward-tag: <value of string>
                 dscp-reverse: <value in [disable, enable]>
                 dscp-reverse-tag: <value of string>
                 dst: <value of string>
                 dst-negate: <value in [disable, enable]>
                 dst6: <value of string>
                 end-port: <value of integer>
                 gateway: <value in [disable, enable]>
                 groups: <value of string>
                 hash-mode: <value in [round-robin, source-ip-based, source-dest-ip-based, ...]>
                 health-check: <value of string>
                 hold-down-time: <value of integer>
                 id: <value of integer>
                 input-device: <value of string>
                 input-device-negate: <value in [disable, enable]>
                 internet-service: <value in [disable, enable]>
                 internet-service-app-ctrl: <value of integer>
                 internet-service-app-ctrl-group: <value of string>
                 internet-service-custom: <value of string>
                 internet-service-custom-group: <value of string>
                 internet-service-group: <value of string>
                 internet-service-name: <value of string>
                 jitter-weight: <value of integer>
                 latency-weight: <value of integer>
                 link-cost-factor: <value in [latency, jitter, packet-loss, ...]>
                 link-cost-threshold: <value of integer>
                 minimum-sla-meet-members: <value of integer>
                 mode: <value in [auto, manual, priority, ...]>
                 name: <value of string>
                 packet-loss-weight: <value of integer>
                 priority-members: <value of string>
                 protocol: <value of integer>
                 quality-link: <value of integer>
                 role: <value in [primary, secondary, standalone]>
                 route-tag: <value of integer>
                 sla:
                   -
                       health-check: <value of string>
                       id: <value of integer>
                 sla-compare-method: <value in [order, number]>
                 src: <value of string>
                 src-negate: <value in [disable, enable]>
                 src6: <value of string>
                 standalone-action: <value in [disable, enable]>
                 start-port: <value of integer>
                 status: <value in [disable, enable]>
                 tos: <value of string>
                 tos-mask: <value of string>
                 users: <value of string>
                 tie-break: <value in [zone, cfg-order, fib-best-match]>
                 use-shortcut-sla: <value in [disable, enable]>
           status: <value in [disable, enable]>
           zone:
             -
                 name: <value of string>
                 service-sla-tie-break: <value in [cfg-order, fib-best-match]>

Return Values

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

Key Returned Description
request_url
string
always
The full url requested

Sample:
/sys/login/user
response_code
integer
always
The status of api request

response_message
string
always
The descriptive message of the api response

Sample:
OK.


Authors

  • Link Zheng (@chillancezen)

  • Jie Xue (@JieX19)

  • Frank Shen (@fshen01)

  • Hongbin Lu (@fgtdev-hblu)