cisco.meraki.meraki_mx_nat 模块 – 管理 Meraki 云中的 NAT 规则

注意

此模块是 cisco.meraki 集合(版本 2.18.3)的一部分。

如果您正在使用 ansible 包,您可能已经安装了这个集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install cisco.meraki

要在 playbook 中使用它,请指定:cisco.meraki.meraki_mx_nat

已弃用

已在以下版本中删除:

版本 3.0.0

原因:

更新的模块发布时增加了功能

替代方案:

cisco.meraki.networks_appliance_firewall_one_to_many_nat_rules

概要

  • 允许在 Meraki 中创建、管理和查看 NAT 规则(1:1、1:多、端口转发)。

参数

参数

注释

auth_key

字符串 / 必需

仪表板提供的身份验证密钥。如果未设置环境变量 MERAKI_KEY,则为必需。

host

字符串

Meraki 仪表板的主机名。

可用于访问区域性 Meraki 环境,例如中国。

默认值: "api.meraki.com"

internal_error_retry_time

整数

如果服务器返回内部服务器错误,则重试的秒数。

默认值: 60

net_id

字符串

网络的 ID 号。

net_name

别名:name, network

字符串

网络的名称。

one_to_many

列表 / 元素=字典

1:多 NAT 规则的列表。

port_rules

列表 / 元素=字典

关联端口规则的列表。

allowed_ips

列表 / 元素=字符串

允许通过此端口转发规则访问内部资源的远程 IP 地址或范围,或“any”。

local_ip

字符串

流量将转发到的本地 IP 地址。

local_port

字符串

将从 MX 发送到 LAN 上指定主机的转发流量的目标端口。

如果您只想转发流量而不转换端口,则此端口应与公共端口相同。

name

字符串

规则的描述。

protocol

字符串

应用 NAT 规则的协议。

选择

  • "tcp"

  • "udp"

public_port

字符串

到达 WAN 的流量的目标端口。

public_ip

字符串

将用于从 WAN 访问内部资源的 IP 地址。

字符串

流量将到达的物理 WAN 接口。

选择

  • "both"

  • "internet1"

  • "internet2"

one_to_one

列表 / 元素=字典

1:1 NAT 规则的列表。

allowed_inbound

列表 / 元素=字典

此映射将在其上提供访问权限的端口,以及将允许访问该资源的远程 IP。

allowed_ips

列表 / 元素=字符串

允许在指定端口或端口范围上建立入站连接的 WAN IP 地址范围,或“any”。

destination_ports

列表 / 元素=字符串

将转发到 LAN 上主机的端口或端口范围的列表。

protocol

字符串

应用 NAT 规则的协议。

选择

  • "any" ←(默认)

  • "icmp-ping"

  • "tcp"

  • "udp"

lan_ip

字符串

托管您希望在 WAN 上提供的内部资源的服务器或设备的 IP 地址。

name

字符串

规则的描述性名称。

public_ip

字符串

将用于从 WAN 访问内部资源的 IP 地址。

字符串

流量将到达的物理 WAN 接口。

选择

  • "both"

  • "internet1"

  • "internet2"

org_id

字符串

与网络关联的组织的 ID。

org_name

别名:organization

字符串

组织的名称。

output_format

字符串

指示模块响应键应为蛇形命名(例如 net_id)还是驼峰命名(例如 netId)。

选择

  • "snakecase" ←(默认)

  • "camelcase"

output_level

字符串

设置模块执行期间的调试输出量。

选择

  • "debug"

  • "normal" ←(默认)

port_forwarding

列表 / 元素=字典

端口转发规则的列表。

allowed_ips

列表 / 元素=字符串

允许在指定端口或端口范围(或任何端口)上建立入站连接的 WAN IP 地址范围的列表。

lan_ip

字符串

托管您希望在 WAN 上提供的内部资源的服务器或设备的 IP 地址。

local_port

整数

将接收来自 WAN 的转发流量的端口或端口范围。

name

字符串

规则的描述性名称。

protocol

字符串

用于转发流量的协议。

选择

  • "tcp"

  • "udp"

public_port

整数

将转发到 LAN 上主机的端口或端口范围。

字符串

流量将到达的物理 WAN 接口。

选择

  • "both"

  • "internet1"

  • "internet2"

rate_limit_retry_time

整数

如果触发速率限制器,则重试的秒数。

默认值: 165

state

字符串

创建或修改组织。

选择

  • "present" ←(默认)

  • "query"

subset

列表 / 元素=字符串

指定要查询的 NAT 组件。

选择

  • "1:1"

  • "1:many"

  • "all" ←(默认)

  • "port_forwarding"

默认值: ["all"]

timeout

整数

HTTP 请求超时的时长。

默认值: 30

use_https

布尔值

如果为 no,它将使用 HTTP。否则,它将使用 HTTPS。

仅对内部 Meraki 开发人员有用。

选择

  • false

  • true ←(默认)

use_proxy

布尔值

如果为 no,即使在目标主机上的环境变量中定义了代理,它也不会使用代理。

选择

  • false ←(默认)

  • true

validate_certs

布尔值

是否验证 HTTP 证书。

选择

  • false

  • true ←(默认)

备注

注意

  • 有关 Meraki API 的更多信息,请访问 https://dashboard.meraki.com/api_docs

  • 某些选项可能仅供 Meraki 内部开发人员使用。

  • 从 Ansible 2.9 开始,Meraki 模块将键输出为蛇形命名法。要使用驼峰命名法,请将 ANSIBLE_MERAKI_FORMAT 环境变量设置为 camelcase

  • Ansible 的 Meraki 模块将在 Ansible 2.13 中停止支持驼峰式输出。请更新你的 playbook。

  • 检查模式会从仪表板下载当前配置,然后将更改与此下载进行比较。如果配置存在差异,检查模式会报告已更改,但不会将更改提交到 API 进行更改验证。

示例

- name: Query all NAT rules
  meraki_nat:
    auth_key: abc123
    org_name: YourOrg
    net_name: YourNet
    state: query
    subset: all
  delegate_to: localhost

- name: Query 1:1 NAT rules
  meraki_nat:
    auth_key: abc123
    org_name: YourOrg
    net_name: YourNet
    state: query
    subset: '1:1'
  delegate_to: localhost

- name: Create 1:1 rule
  meraki_nat:
    auth_key: abc123
    org_name: YourOrg
    net_name: YourNet
    state: present
    one_to_one:
      - name: Service behind NAT
        public_ip: 1.2.1.2
        lan_ip: 192.168.128.1
        uplink: internet1
        allowed_inbound:
          - protocol: tcp
            destination_ports:
              - 80
            allowed_ips:
              - 10.10.10.10
  delegate_to: localhost

- name: Create 1:many rule
  meraki_nat:
    auth_key: abc123
    org_name: YourOrg
    net_name: YourNet
    state: present
    one_to_many:
      - public_ip: 1.1.1.1
        uplink: internet1
        port_rules:
          - name: Test rule
            protocol: tcp
            public_port: 10
            local_ip: 192.168.128.1
            local_port: 11
            allowed_ips:
              - any
  delegate_to: localhost

- name: Create port forwarding rule
  meraki_nat:
    auth_key: abc123
    org_name: YourOrg
    net_name: YourNet
    state: present
    port_forwarding:
      - name: Test map
        lan_ip: 192.168.128.1
        uplink: both
        protocol: tcp
        allowed_ips:
          - 1.1.1.1
        public_port: 10
        local_port: 11
  delegate_to: localhost

返回值

常见的返回值记录在此处,以下是此模块特有的字段

描述

数据

复杂

有关创建或操作的对象的信息。

返回: 成功

one_to_many

复杂

有关 1:多 NAT 对象的信息。

返回: 成功,当任务中存在 1:多 NAT 对象时

规则

复杂

1:多 NAT 规则的列表。

返回: 成功,当任务中存在 1:多 NAT 对象时

端口规则

复杂

NAT 端口规则列表。

返回: 成功,当任务中存在 1:多 NAT 对象时

允许的 IP

列表 / 元素=字符串

要转发的 IP 地址列表。

返回: 成功,当任务中存在 1:1 NAT 对象时

示例: ["10.80.100.0/24"]

本地 IP

字符串

将转发流量的本地 IP 地址。

返回: 成功,当任务中存在 1:1 NAT 对象时

示例: "192.0.2.10"

本地端口

整数

要转发到的目标端口。

返回: 成功,当任务中存在 1:1 NAT 对象时

示例: 443

name

字符串

NAT 对象的名称。

返回: 成功,当任务中存在 1:多 NAT 对象时

示例: "Web 服务器 NAT 后面"

protocol

字符串

应用 NAT 规则的协议。

返回: 成功,当任务中存在 1:1 NAT 对象时

示例: "tcp"

公共端口

整数

在 WAN 上到达的流量的目标端口。

返回: 成功,当任务中存在 1:1 NAT 对象时

示例: 9443

公共 IP

字符串

要映射的公共 IP 地址。

返回: 成功,当任务中存在 1:多 NAT 对象时

示例: "148.2.5.100"

字符串

应用规则的互联网端口。

返回: 成功,当任务中存在 1:多 NAT 对象时

示例: "internet1"

one_to_one

复杂

有关 1:1 NAT 对象的信息。

返回: 成功,当任务中存在 1:1 NAT 对象时

规则

复杂

1:1 NAT 规则的列表。

返回: 成功,当任务中存在 1:1 NAT 对象时

允许入站

复杂

入站转发规则列表。

返回: 成功,当任务中存在 1:1 NAT 对象时

允许的 IP

列表 / 元素=字符串

要转发的 IP 地址列表。

返回: 成功,当任务中存在 1:1 NAT 对象时

示例: ["10.80.100.0/24"]

目标端口

字符串

要应用 NAT 规则的端口。

返回: 成功,当任务中存在 1:1 NAT 对象时

示例: "80"

protocol

字符串

应用 NAT 规则的协议。

返回: 成功,当任务中存在 1:1 NAT 对象时

示例: "tcp"

局域网 IP

字符串

要映射的本地 IP 地址。

返回: 成功,当任务中存在 1:1 NAT 对象时

示例: "192.168.128.22"

name

字符串

NAT 对象的名称。

返回: 成功,当任务中存在 1:1 NAT 对象时

示例: "Web 服务器 NAT 后面"

公共 IP

字符串

要映射的公共 IP 地址。

返回: 成功,当任务中存在 1:1 NAT 对象时

示例: "148.2.5.100"

字符串

应用规则的互联网端口。

返回: 成功,当任务中存在 1:1 NAT 对象时

示例: "internet1"

port_forwarding

复杂

有关端口转发规则的信息。

返回: 成功,当任务中存在端口转发时

规则

复杂

端口转发规则的列表。

返回: 成功,当任务中存在端口转发时

允许的 IP

列表 / 元素=字符串

要转发的 IP 地址列表。

返回: 成功,当任务中存在端口转发时

示例: ["10.80.100.0/24"]

局域网 IP

字符串

要映射的本地 IP 地址。

返回: 成功,当任务中存在端口转发时

示例: "192.168.128.22"

本地端口

整数

要转发到的目标端口。

返回: 成功,当任务中存在端口转发时

示例: 443

name

字符串

NAT 对象的名称。

返回: 成功,当任务中存在端口转发时

示例: "Web 服务器 NAT 后面"

protocol

字符串

应用 NAT 规则的协议。

返回: 成功,当任务中存在端口转发时

示例: "tcp"

公共端口

整数

在 WAN 上到达的流量的目标端口。

返回: 成功,当任务中存在端口转发时

示例: 9443

字符串

应用规则的互联网端口。

返回: 成功,当任务中存在端口转发时

示例: "internet1"

状态

  • 此模块将在 3.0.0 版本中删除。[已弃用]

  • 有关更多信息,请参阅已弃用

作者

  • Kevin Breit (@kbreit)