ansible.builtin.fortios_router_multicast (v2.8.20) — module

Configure router multicast in Fortinet's FortiOS and FortiGate.

| "added in version" 2.8 of ansible.builtin"

Authors: Miguel Angel Munoz (@mamunozgonzalez), Nicolas Thomas (@thomnico)

preview | supported by community

Install Ansible via pip

Install with pip install ansible==2.8.20

Description

This module is able to configure a FortiGate or FortiOS by allowing the user to set and modify router feature and multicast category. Examples include all parameters and values need to be adjusted to datasources before usage. Tested with FOS v6.0.2


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- hosts: localhost
  vars:
   host: "192.168.122.40"
   username: "admin"
   password: ""
   vdom: "root"
  tasks:
  - name: Configure router multicast.
    fortios_router_multicast:
      host:  "{{ host }}"
      username: "{{ username }}"
      password: "{{ password }}"
      vdom:  "{{ vdom }}"
      https: "False"
      router_multicast:
        interface:
         -
            bfd: "enable"
            cisco-exclude-genid: "enable"
            dr-priority: "6"
            hello-holdtime: "7"
            hello-interval: "8"
            igmp:
                access-group: "<your_own_value> (source router.access-list.name)"
                immediate-leave-group: "<your_own_value> (source router.access-list.name)"
                last-member-query-count: "12"
                last-member-query-interval: "13"
                query-interval: "14"
                query-max-response-time: "15"
                query-timeout: "16"
                router-alert-check: "enable"
                version: "3"
            join-group:
             -
                address: "<your_own_value>"
            multicast-flow: "<your_own_value> (source router.multicast-flow.name)"
            name: "default_name_22 (source system.interface.name)"
            neighbour-filter: "<your_own_value> (source router.access-list.name)"
            passive: "enable"
            pim-mode: "sparse-mode"
            propagation-delay: "26"
            rp-candidate: "enable"
            rp-candidate-group: "<your_own_value> (source router.access-list.name)"
            rp-candidate-interval: "29"
            rp-candidate-priority: "30"
            state-refresh-interval: "31"
            static-group: "<your_own_value> (source router.multicast-flow.name)"
            ttl-threshold: "33"
        multicast-routing: "enable"
        pim-sm-global:
            accept-register-list: "<your_own_value> (source router.access-list.name)"
            accept-source-list: "<your_own_value> (source router.access-list.name)"
            bsr-allow-quick-refresh: "enable"
            bsr-candidate: "enable"
            bsr-hash: "40"
            bsr-interface: "<your_own_value> (source system.interface.name)"
            bsr-priority: "42"
            cisco-crp-prefix: "enable"
            cisco-ignore-rp-set-priority: "enable"
            cisco-register-checksum: "enable"
            cisco-register-checksum-group: "<your_own_value> (source router.access-list.name)"
            join-prune-holdtime: "47"
            message-interval: "48"
            null-register-retries: "49"
            register-rate-limit: "50"
            register-rp-reachability: "enable"
            register-source: "disable"
            register-source-interface: "<your_own_value> (source system.interface.name)"
            register-source-ip: "<your_own_value>"
            register-supression: "55"
            rp-address:
             -
                group: "<your_own_value> (source router.access-list.name)"
                id:  "58"
                ip-address: "<your_own_value>"
            rp-register-keepalive: "60"
            spt-threshold: "enable"
            spt-threshold-group: "<your_own_value> (source router.access-list.name)"
            ssm: "enable"
            ssm-range: "<your_own_value> (source router.access-list.name)"
        route-limit: "65"
        route-threshold: "66"

Inputs

    
host:
    description:
    - FortiOS or FortiGate ip address.
    required: true

vdom:
    default: root
    description:
    - 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.

https:
    default: true
    description:
    - Indicates if the requests towards FortiGate must use HTTPS protocol
    type: bool

password:
    default: ''
    description:
    - FortiOS or FortiGate password.

username:
    description:
    - FortiOS or FortiGate username.
    required: true

router_multicast:
    default: null
    description:
    - Configure router multicast.
    suboptions:
      interface:
        description:
        - PIM interfaces.
        suboptions:
          bfd:
            choices:
            - enable
            - disable
            description:
            - Enable/disable Protocol Independent Multicast (PIM) Bidirectional Forwarding
              Detection (BFD).
          cisco-exclude-genid:
            choices:
            - enable
            - disable
            description:
            - Exclude GenID from hello packets (compatibility with old Cisco IOS).
          dr-priority:
            description:
            - DR election priority.
          hello-holdtime:
            description:
            - Time before old neighbor information expires (0 - 65535 sec, default = 105).
          hello-interval:
            description:
            - Interval between sending PIM hello messages (0 - 65535 sec, default = 30).
          igmp:
            description:
            - IGMP configuration options.
            suboptions:
              access-group:
                description:
                - Groups IGMP hosts are allowed to join. Source router.access-list.name.
              immediate-leave-group:
                description:
                - Groups to drop membership for immediately after receiving IGMPv2 leave.
                  Source router.access-list.name.
              last-member-query-count:
                description:
                - Number of group specific queries before removing group (2 - 7, default
                  = 2).
              last-member-query-interval:
                description:
                - Timeout between IGMPv2 leave and removing group (1 - 65535 msec, default
                  = 1000).
              query-interval:
                description:
                - Interval between queries to IGMP hosts (1 - 65535 sec, default = 125).
              query-max-response-time:
                description:
                - Maximum time to wait for a IGMP query response (1 - 25 sec, default
                  = 10).
              query-timeout:
                description:
                - Timeout between queries before becoming querier for network (60 - 900,
                  default = 255).
              router-alert-check:
                choices:
                - enable
                - disable
                description:
                - Enable/disable require IGMP packets contain router alert option.
              version:
                choices:
                - 3
                - 2
                - 1
                description:
                - Maximum version of IGMP to support.
          join-group:
            description:
            - Join multicast groups.
            suboptions:
              address:
                description:
                - Multicast group IP address.
                required: true
          multicast-flow:
            description:
            - Acceptable source for multicast group. Source router.multicast-flow.name.
          name:
            description:
            - Interface name. Source system.interface.name.
            required: true
          neighbour-filter:
            description:
            - Routers acknowledged as neighbor routers. Source router.access-list.name.
          passive:
            choices:
            - enable
            - disable
            description:
            - Enable/disable listening to IGMP but not participating in PIM.
          pim-mode:
            choices:
            - sparse-mode
            - dense-mode
            description:
            - PIM operation mode.
          propagation-delay:
            description:
            - Delay flooding packets on this interface (100 - 5000 msec, default = 500).
          rp-candidate:
            choices:
            - enable
            - disable
            description:
            - Enable/disable compete to become RP in elections.
          rp-candidate-group:
            description:
            - Multicast groups managed by this RP. Source router.access-list.name.
          rp-candidate-interval:
            description:
            - RP candidate advertisement interval (1 - 16383 sec, default = 60).
          rp-candidate-priority:
            description:
            - Router's priority as RP.
          state-refresh-interval:
            description:
            - Interval between sending state-refresh packets (1 - 100 sec, default = 60).
          static-group:
            description:
            - Statically set multicast groups to forward out. Source router.multicast-flow.name.
          ttl-threshold:
            description:
            - Minimum TTL of multicast packets that will be forwarded (applied only to
              new multicast routes) (1 - 255, default = 1).
      multicast-routing:
        choices:
        - enable
        - disable
        description:
        - Enable/disable IP multicast routing.
      pim-sm-global:
        description:
        - PIM sparse-mode global settings.
        suboptions:
          accept-register-list:
            description:
            - Sources allowed to register packets with this Rendezvous Point (RP). Source
              router.access-list.name.
          accept-source-list:
            description:
            - Sources allowed to send multicast traffic. Source router.access-list.name.
          bsr-allow-quick-refresh:
            choices:
            - enable
            - disable
            description:
            - Enable/disable accept BSR quick refresh packets from neighbors.
          bsr-candidate:
            choices:
            - enable
            - disable
            description:
            - Enable/disable allowing this router to become a bootstrap router (BSR).
          bsr-hash:
            description:
            - BSR hash length (0 - 32, default = 10).
          bsr-interface:
            description:
            - Interface to advertise as candidate BSR. Source system.interface.name.
          bsr-priority:
            description:
            - BSR priority (0 - 255, default = 0).
          cisco-crp-prefix:
            choices:
            - enable
            - disable
            description:
            - Enable/disable making candidate RP compatible with old Cisco IOS.
          cisco-ignore-rp-set-priority:
            choices:
            - enable
            - disable
            description:
            - Use only hash for RP selection (compatibility with old Cisco IOS).
          cisco-register-checksum:
            choices:
            - enable
            - disable
            description:
            - Checksum entire register packet(for old Cisco IOS compatibility).
          cisco-register-checksum-group:
            description:
            - Cisco register checksum only these groups. Source router.access-list.name.
          join-prune-holdtime:
            description:
            - Join/prune holdtime (1 - 65535, default = 210).
          message-interval:
            description:
            - Period of time between sending periodic PIM join/prune messages in seconds
              (1 - 65535, default = 60).
          null-register-retries:
            description:
            - Maximum retries of null register (1 - 20, default = 1).
          register-rate-limit:
            description:
            - Limit of packets/sec per source registered through this RP (0 - 65535, default
              = 0 which means unlimited).
          register-rp-reachability:
            choices:
            - enable
            - disable
            description:
            - Enable/disable check RP is reachable before registering packets.
          register-source:
            choices:
            - disable
            - interface
            - ip-address
            description:
            - Override source address in register packets.
          register-source-interface:
            description:
            - Override with primary interface address. Source system.interface.name.
          register-source-ip:
            description:
            - Override with local IP address.
          register-supression:
            description:
            - Period of time to honor register-stop message (1 - 65535 sec, default =
              60).
          rp-address:
            description:
            - Statically configure RP addresses.
            suboptions:
              group:
                description:
                - Groups to use this RP. Source router.access-list.name.
              id:
                description:
                - ID.
                required: true
              ip-address:
                description:
                - RP router address.
          rp-register-keepalive:
            description:
            - Timeout for RP receiving data on (S,G) tree (1 - 65535 sec, default = 185).
          spt-threshold:
            choices:
            - enable
            - disable
            description:
            - Enable/disable switching to source specific trees.
          spt-threshold-group:
            description:
            - Groups allowed to switch to source tree. Source router.access-list.name.
          ssm:
            choices:
            - enable
            - disable
            description:
            - Enable/disable source specific multicast.
          ssm-range:
            description:
            - Groups allowed to source specific multicast. Source router.access-list.name.
      route-limit:
        description:
        - Maximum number of multicast routes.
      route-threshold:
        description:
        - Generate warnings when the number of multicast routes exceeds this number, must
          not be greater than route-limit.

Outputs

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