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

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

已弃用

在以下版本中移除:

版本 3.0.0

原因:

发布了功能增强的更新模块

替代方案:

cisco.meraki.networks_appliance_firewall_one_to_many_nat_rules

概要

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

参数

参数

注释

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

列表 / 元素=字典

一对多 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

列表 / 元素=字典

一对一 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中停止支持驼峰命名法输出。请更新您的剧本。

  • 检查模式会从仪表板下载当前配置,然后将更改与下载的配置进行比较。如果配置存在差异,检查模式将报告已更改,但不会将更改提交到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

返回值

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

描述

data

complex

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

返回:成功

one_to_many

complex

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

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

rules

complex

一对多 NAT 规则列表。

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

portRules

complex

NAT端口规则列表。

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

allowedIps

列表 / 元素=字符串

要转发的IP地址列表。

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

示例:["10.80.100.0/24"]

localIp

字符串

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

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

示例:"192.0.2.10"

localPort

整数

要转发到的目标端口。

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

示例:443

name

字符串

NAT对象的名称。

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

示例:"Web server behind NAT"

protocol

字符串

应用 NAT 规则的协议。

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

示例:"tcp"

publicPort

整数

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

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

示例:9443

publicIp

字符串

要映射的公网IP地址。

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

示例:"148.2.5.100"

字符串

应用规则的互联网端口。

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

示例:"internet1"

one_to_one

complex

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

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

rules

complex

一对一 NAT 规则列表。

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

allowedInbound

complex

入站转发规则列表。

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

allowedIps

列表 / 元素=字符串

要转发的IP地址列表。

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

示例:["10.80.100.0/24"]

destinationPorts

字符串

应用NAT规则的端口。

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

示例:"80"

protocol

字符串

应用 NAT 规则的协议。

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

示例:"tcp"

lanIp

字符串

要映射的本地IP地址。

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

示例:"192.168.128.22"

name

字符串

NAT对象的名称。

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

示例:"Web server behind NAT"

publicIp

字符串

要映射的公网IP地址。

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

示例:"148.2.5.100"

字符串

应用规则的互联网端口。

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

示例:"internet1"

port_forwarding

complex

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

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

rules

complex

端口转发规则列表。

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

allowedIps

列表 / 元素=字符串

要转发的IP地址列表。

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

示例:["10.80.100.0/24"]

lanIp

字符串

要映射的本地IP地址。

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

示例:"192.168.128.22"

localPort

整数

要转发到的目标端口。

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

示例:443

name

字符串

NAT对象的名称。

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

示例:"Web server behind NAT"

protocol

字符串

应用 NAT 规则的协议。

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

示例:"tcp"

publicPort

整数

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

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

示例:9443

字符串

应用规则的互联网端口。

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

示例:"internet1"

状态

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

  • 更多信息请参见已弃用

作者

  • Kevin Breit (@kbreit)