fortios_vpn_ipsec_phase2 – Configure VPN autokey tunnel in Fortinet’s FortiOS and FortiGate.

New in version 2.0.0.

Synopsis

  • This module is able to configure a FortiGate or FortiOS (FOS) device by allowing the user to set and modify vpn_ipsec feature and phase2 category. Examples include all parameters and values need to be adjusted to datasources before usage. Tested with FOS v6.0.0

Requirements

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

  • ansible>=2.15

Tips

Using member operation to add an element to an existing object.

FortiOS Version Compatibility

Supported Version Ranges: v6.0.0 -> 7.4.3

Parameters

  • access_token - Token-based authentication. Generated from GUI of Fortigate. type: str required: false
  • enable_log - Enable/Disable logging for task. type: bool required: false default: False
  • vdom - Virtual domain, among those defined previously. A vdom is a virtual instance of the FortiGate that can be configured and used as a different unit. type: str default: root
  • member_path - Member attribute path to operate on. type: str
  • member_state - Add or delete a member under specified attribute path. type: str choices: present, absent
  • state - Indicates whether to create or remove the object. type: str required: true choices: present, absent
  • vpn_ipsec_phase2 - Configure VPN autokey tunnel. type: dict more...
    • add_route - Enable/disable automatic route addition. type: str choices: phase1, enable, disable more...
    • auto_negotiate - Enable/disable IPsec SA auto-negotiation. type: str choices: enable, disable more...
    • comments - Comment. type: str more...
    • dhcp_ipsec - Enable/disable DHCP-IPsec. type: str choices: enable, disable more...
    • dhgrp - Phase2 DH group. type: list choices: 1, 2, 5, 14, 15, 16, 17, 18, 19, 20, 21, 27, 28, 29, 30, 31, 32 more...
    • diffserv - Enable/disable applying DSCP value to the IPsec tunnel outer IP header. type: str choices: enable, disable more...
    • diffservcode - DSCP value to be applied to the IPsec tunnel outer IP header. type: str more...
    • dst_addr_type - Remote proxy ID type. type: str choices: subnet, range, ip, name more...
    • dst_end_ip - Remote proxy ID IPv4 end. type: str more...
    • dst_end_ip6 - Remote proxy ID IPv6 end. type: str more...
    • dst_name - Remote proxy ID name. Source firewall.address.name firewall.addrgrp.name. type: str more...
    • dst_name6 - Remote proxy ID name. Source firewall.address6.name firewall.addrgrp6.name. type: str more...
    • dst_port - Quick mode destination port (1 - 65535 or 0 for all). type: int more...
    • dst_start_ip - Remote proxy ID IPv4 start. type: str more...
    • dst_start_ip6 - Remote proxy ID IPv6 start. type: str more...
    • dst_subnet - Remote proxy ID IPv4 subnet. type: str more...
    • dst_subnet6 - Remote proxy ID IPv6 subnet. type: str more...
    • encapsulation - ESP encapsulation mode. type: str choices: tunnel-mode, transport-mode more...
    • inbound_dscp_copy - Enable/disable copying of the DSCP in the ESP header to the inner IP header. type: str choices: phase1, enable, disable more...
    • initiator_ts_narrow - Enable/disable traffic selector narrowing for IKEv2 initiator. type: str choices: enable, disable more...
    • ipv4_df - Enable/disable setting and resetting of IPv4 "Don"t Fragment" bit. type: str choices: enable, disable more...
    • keepalive - Enable/disable keep alive. type: str choices: enable, disable more...
    • keylife_type - Keylife type. type: str choices: seconds, kbs, both more...
    • keylifekbs - Phase2 key life in number of kilobytes of traffic (5120 - 4294967295). type: int more...
    • keylifeseconds - Phase2 key life in time in seconds (120 - 172800). type: int more...
    • l2tp - Enable/disable L2TP over IPsec. type: str choices: enable, disable more...
    • name - IPsec tunnel name. type: str required: true more...
    • pfs - Enable/disable PFS feature. type: str choices: enable, disable more...
    • phase1name - Phase 1 determines the options required for phase 2. Source vpn.ipsec.phase1.name. type: str more...
    • proposal - Phase2 proposal. type: list choices: null-md5, null-sha1, null-sha256, null-sha384, null-sha512, des-null, des-md5, des-sha1, des-sha256, des-sha384, des-sha512, 3des-null, 3des-md5, 3des-sha1, 3des-sha256, 3des-sha384, 3des-sha512, aes128-null, aes128-md5, aes128-sha1, aes128-sha256, aes128-sha384, aes128-sha512, aes128gcm, aes192-null, aes192-md5, aes192-sha1, aes192-sha256, aes192-sha384, aes192-sha512, aes256-null, aes256-md5, aes256-sha1, aes256-sha256, aes256-sha384, aes256-sha512, aes256gcm, chacha20poly1305, aria128-null, aria128-md5, aria128-sha1, aria128-sha256, aria128-sha384, aria128-sha512, aria192-null, aria192-md5, aria192-sha1, aria192-sha256, aria192-sha384, aria192-sha512, aria256-null, aria256-md5, aria256-sha1, aria256-sha256, aria256-sha384, aria256-sha512, seed-null, seed-md5, seed-sha1, seed-sha256, seed-sha384, seed-sha512 more...
    • protocol - Quick mode protocol selector (1 - 255 or 0 for all). type: int more...
    • replay - Enable/disable replay detection. type: str choices: enable, disable more...
    • route_overlap - Action for overlapping routes. type: str choices: use-old, use-new, allow more...
    • selector_match - Match type to use when comparing selectors. type: str choices: exact, subset, auto more...
    • single_source - Enable/disable single source IP restriction. type: str choices: enable, disable more...
    • src_addr_type - Local proxy ID type. type: str choices: subnet, range, ip, name more...
    • src_end_ip - Local proxy ID end. type: str more...
    • src_end_ip6 - Local proxy ID IPv6 end. type: str more...
    • src_name - Local proxy ID name. Source firewall.address.name firewall.addrgrp.name. type: str more...
    • src_name6 - Local proxy ID name. Source firewall.address6.name firewall.addrgrp6.name. type: str more...
    • src_port - Quick mode source port (1 - 65535 or 0 for all). type: int more...
    • src_start_ip - Local proxy ID start. type: str more...
    • src_start_ip6 - Local proxy ID IPv6 start. type: str more...
    • src_subnet - Local proxy ID subnet. type: str more...
    • src_subnet6 - Local proxy ID IPv6 subnet. type: str more...
    • use_natip - Enable to use the FortiGate public IP as the source selector when outbound NAT is used. type: str choices: enable, disable more...

Notes

Note

  • Legacy fortiosapi has been deprecated, httpapi is the preferred way to run playbooks

Examples

- name: Configure VPN autokey tunnel.
  fortinet.fortios.fortios_vpn_ipsec_phase2:
      vdom: "{{ vdom }}"
      state: "present"
      access_token: "<your_own_value>"
      vpn_ipsec_phase2:
          add_route: "phase1"
          auto_negotiate: "enable"
          comments: "<your_own_value>"
          dhcp_ipsec: "enable"
          dhgrp: "1"
          diffserv: "enable"
          diffservcode: "<your_own_value>"
          dst_addr_type: "subnet"
          dst_end_ip: "<your_own_value>"
          dst_end_ip6: "<your_own_value>"
          dst_name: "<your_own_value> (source firewall.address.name firewall.addrgrp.name)"
          dst_name6: "<your_own_value> (source firewall.address6.name firewall.addrgrp6.name)"
          dst_port: "0"
          dst_start_ip: "<your_own_value>"
          dst_start_ip6: "<your_own_value>"
          dst_subnet: "<your_own_value>"
          dst_subnet6: "<your_own_value>"
          encapsulation: "tunnel-mode"
          inbound_dscp_copy: "phase1"
          initiator_ts_narrow: "enable"
          ipv4_df: "enable"
          keepalive: "enable"
          keylife_type: "seconds"
          keylifekbs: "5120"
          keylifeseconds: "43200"
          l2tp: "enable"
          name: "default_name_29"
          pfs: "enable"
          phase1name: "<your_own_value> (source vpn.ipsec.phase1.name)"
          proposal: "null-md5"
          protocol: "0"
          replay: "enable"
          route_overlap: "use-old"
          selector_match: "exact"
          single_source: "enable"
          src_addr_type: "subnet"
          src_end_ip: "<your_own_value>"
          src_end_ip6: "<your_own_value>"
          src_name: "<your_own_value> (source firewall.address.name firewall.addrgrp.name)"
          src_name6: "<your_own_value> (source firewall.address6.name firewall.addrgrp6.name)"
          src_port: "0"
          src_start_ip: "<your_own_value>"
          src_start_ip6: "<your_own_value>"
          src_subnet: "<your_own_value>"
          src_subnet6: "<your_own_value>"
          use_natip: "enable"

Return Values

Common return values are documented: https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values, the following are the fields unique to this module:

  • build - Build number of the fortigate image returned: always type: str sample: 1547
  • http_method - Last method used to provision the content into FortiGate returned: always type: str sample: PUT
  • http_status - Last result given by FortiGate on last operation applied returned: always type: str sample: 200
  • mkey - Master key (id) used in the last call to FortiGate returned: success type: str sample: id
  • name - Name of the table used to fulfill the request returned: always type: str sample: urlfilter
  • path - Path of the table used to fulfill the request returned: always type: str sample: webfilter
  • revision - Internal revision number returned: always type: str sample: 17.0.2.10658
  • serial - Serial number of the unit returned: always type: str sample: FGVMEVYYQT3AB5352
  • status - Indication of the operation's result returned: always type: str sample: success
  • vdom - Virtual domain used returned: always type: str sample: root
  • version - Version of the FortiGate returned: always type: str sample: v5.6.3

Status

  • This module is not guaranteed to have a backwards compatible interface.

Authors

  • Link Zheng (@chillancezen)

  • Jie Xue (@JieX19)

  • Hongbin Lu (@fgtdev-hblu)

  • Frank Shen (@frankshen01)

  • Miguel Angel Munoz (@mamunozgonzalez)

  • Nicolas Thomas (@thomnico)

Hint

If you notice any issues in this documentation, you can create a pull request to improve it.