fortios_router_policy – Configure IPv4 routing policies in Fortinet’s FortiOS and FortiGate.

New in version 2.10.

Synopsis

  • This module is able to configure a FortiGate or FortiOS (FOS) device by allowing the user to set and modify router feature and policy 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.9.0

FortiOS Version Compatibility


v6.0.0 v6.0.5 v6.0.11 v6.2.0 v6.2.3 v6.2.5 v6.2.7 v6.4.0 v6.4.1 v6.4.4 v7.0.0
fortios_router_policy yes yes yes yes yes yes yes yes yes yes yes

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
  • state - Indicates whether to create or remove the object. type: str required: True choices: present, absent
  • router_policy - Configure IPv4 routing policies. type: dict more...
    • action - Action of the policy route. type: str choices: deny, permit more...
    • comments - Optional comments. type: str more...
    • dst - Destination IP and mask (x.x.x.x/x). type: list more...
      • subnet - IP and mask. type: str required: True more...
    • dst_negate - Enable/disable negating destination address match. type: str choices: enable, disable more...
    • dstaddr - Destination address name. type: list more...
      • name - Address/group name. Source firewall.address.name firewall.addrgrp.name. type: str required: True more...
    • end_port - End destination port number (0 - 65535). type: int more...
    • end_source_port - End source port number (0 - 65535). type: int more...
    • gateway - IP address of the gateway. type: str more...
    • input_device - Incoming interface name. type: list more...
      • name - Interface name. Source system.interface.name. type: str required: True more...
    • input_device_negate - Enable/disable negation of input device match. type: str choices: enable, disable more...
    • internet_service_custom - Custom Destination Internet Service name. type: list more...
      • name - Custom Destination Internet Service name. Source firewall.internet-service-custom.name. type: str required: True more...
    • internet_service_id - Destination Internet Service ID. type: list more...
      • id - Destination Internet Service ID. Source firewall.internet-service.id. type: int required: True more...
    • output_device - Outgoing interface name. Source system.interface.name. type: str more...
    • protocol - Protocol number (0 - 255). type: int more...
    • seq_num - Sequence number. type: int more...
    • src - Source IP and mask (x.x.x.x/x). type: list more...
      • subnet - IP and mask. type: str required: True more...
    • src_negate - Enable/disable negating source address match. type: str choices: enable, disable more...
    • srcaddr - Source address name. type: list more...
      • name - Address/group name. Source firewall.address.name firewall.addrgrp.name. type: str required: True more...
    • start_port - Start destination port number (0 - 65535). type: int more...
    • start_source_port - Start source port number (0 - 65535). type: int more...
    • status - Enable/disable this policy route. type: str choices: enable, disable more...
    • tos - Type of service bit pattern. type: str more...
    • tos_mask - Type of service evaluated bits. type: str more...

Notes

Note

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

Examples

- hosts: fortigates
  collections:
    - fortinet.fortios
  connection: httpapi
  vars:
   vdom: "root"
   ansible_httpapi_use_ssl: yes
   ansible_httpapi_validate_certs: no
   ansible_httpapi_port: 443
  tasks:
  - name: Configure IPv4 routing policies.
    fortios_router_policy:
      vdom:  "{{ vdom }}"
      state: "present"
      access_token: "<your_own_value>"
      router_policy:
        action: "deny"
        comments: "<your_own_value>"
        dst:
         -
            subnet: "<your_own_value>"
        dst_negate: "enable"
        dstaddr:
         -
            name: "default_name_9 (source firewall.address.name firewall.addrgrp.name)"
        end_port: "10"
        end_source_port: "11"
        gateway: "<your_own_value>"
        input_device:
         -
            name: "default_name_14 (source system.interface.name)"
        input_device_negate: "enable"
        internet_service_custom:
         -
            name: "default_name_17 (source firewall.internet-service-custom.name)"
        internet_service_id:
         -
            id:  "19 (source firewall.internet-service.id)"
        output_device: "<your_own_value> (source system.interface.name)"
        protocol: "21"
        seq_num: "22"
        src:
         -
            subnet: "<your_own_value>"
        src_negate: "enable"
        srcaddr:
         -
            name: "default_name_27 (source firewall.address.name firewall.addrgrp.name)"
        start_port: "28"
        start_source_port: "29"
        status: "enable"
        tos: "<your_own_value>"
        tos_mask: "<your_own_value>"

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.