community.network.ce_evpn_bd_vni 模块 – 在华为 CloudEngine 交换机上管理 EVPN VXLAN 网络标识符 (VNI)。

注意

此模块是 community.network 集合 (版本 5.1.0) 的一部分。

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

要安装它,请使用: ansible-galaxy collection install community.network

要在剧本中使用它,请指定: community.network.ce_evpn_bd_vni

注意

community.network 集合已被弃用,并将从 Ansible 12 中移除。有关更多信息,请参见 讨论主题

已弃用

在以下版本中移除:

6.0.0 版本

原因:

此集合及其中的所有内容均未维护且已弃用。

替代方案:

未知。

概要

  • 管理华为 CloudEngine 交换机上的以太网虚拟专用网络 (EVPN) VXLAN 网络标识符 (VNI) 配置。

别名:network.cloudengine.ce_evpn_bd_vni

参数

参数

注释

bridge_domain_id

字符串 / 必需

指定一个已存在的桥接域 (BD)。值是一个范围从 1 到 16777215 的整数。

evpn

字符串

在 BD 视图中创建或删除 VXLAN 的 EVPN 实例。

选项

  • "enable" ← (默认)

  • "disable"

route_distinguisher

字符串

配置 BD EVPN 实例的路由区分符 (RD)。RD 的格式如下:

  1. 2 字节 AS 号:4 字节用户定义的号码,例如 1:3。AS 号是范围从 0 到 65535 的整数,用户定义的号码是范围从 0 到 4294967295 的整数。AS 号和用户定义的号码不能同时为 0。这意味着 RD 不能为 0:0。

  2. 4 字节整数 AS 号:2 字节用户定义的号码,例如 65537:3。AS 号是范围从 65536 到 4294967295 的整数,用户定义的号码是范围从 0 到 65535 的整数。

  3. 点分十进制表示的 4 字节 AS 号:2 字节用户定义的号码,例如 0.0:3 或 0.1:0。点分十进制表示的 4 字节 AS 号格式为 x.y,其中 x 和 y 是范围从 0 到 65535 的整数。

  4. 用户定义的号码是范围从 0 到 65535 的整数。AS 号和用户定义的号码不能同时为 0。这意味着 RD 不能为 0.0:0。

  5. 32 位 IP 地址:2 字节用户定义的号码。例如,192.168.122.15:1。IP 地址范围从 0.0.0.0 到 255.255.255.255,用户定义的号码是范围从 0 到 65535 的整数。

  6. ‘auto’ 指定自动生成的 RD。

state

字符串

管理资源的状态。

选项

  • "present" ← (默认)

  • "absent"

vpn_target_both

字符串

将 VPN 目标添加到 BD EVPN 实例的导入和导出 VPN 目标列表中。格式与 route_distinguisher 相同。

vpn_target_export

字符串

将 VPN 目标添加到 BD EVPN 实例的导出 VPN 目标列表中。格式与 route_distinguisher 相同。

vpn_target_import

字符串 / 必需

将 VPN 目标添加到 BD EVPN 实例的导入 VPN 目标列表中。格式与 route_distinguisher 相同。

备注

注意

  • 当 state 为 present 时,确保已配置 EVPN 作为 VXLAN 控制平面。

  • 当 state 为 present 时,确保已存在桥接域 (BD)。

  • 当 state 为 present 时,确保已创建 VNI 并将其与广播域 (BD) 关联。

  • 如果您配置 evpn:false 来删除 EVPN 实例,则 EVPN 实例中的所有配置都将被删除。

  • 在 BD 视图中创建 EVPN 实例后,可以使用 BD-EVPN 实例视图中的 route_distinguisher 参数配置 RD。

  • 在为 BD EVPN 实例配置 VPN 目标之前,请确保已为 BD EVPN 实例配置 RD。

  • 如果您取消配置 route_distinguisher,则 BD EVPN 实例的所有 VPN 目标属性将同时被移除。

  • 使用 state:absent 时,evpn 不受支持,并将被忽略。

  • 使用 state:absent 删除 VPN 目标属性时,请确保 VPN 目标属性的配置已存在,否则会报告错误。

  • 此模块要求在被管理的远程设备上启用 netconf 系统服务。

  • 推荐的连接是 netconf

  • 此模块也适用于旧版剧本的 local 连接。

示例

- name: EVPN BD VNI test
  hosts: cloudengine
  connection: local
  gather_facts: false
  vars:
    cli:
      host: "{{ inventory_hostname }}"
      port: "{{ ansible_ssh_port }}"
      username: "{{ username }}"
      password: "{{ password }}"
      transport: cli

  tasks:

  - name: "Configure an EVPN instance for a VXLAN in BD view"
    community.network.ce_evpn_bd_vni:
      bridge_domain_id: 20
      evpn: enable
      provider: "{{ cli }}"

  - name: "Configure a route distinguisher (RD) for a BD EVPN instance"
    community.network.ce_evpn_bd_vni:
      bridge_domain_id: 20
      route_distinguisher: '22:22'
      provider: "{{ cli }}"

  - name: "Configure VPN targets to both the import and export VPN target lists of a BD EVPN instance"
    community.network.ce_evpn_bd_vni:
      bridge_domain_id: 20
      vpn_target_both: 22:100,22:101
      provider: "{{ cli }}"

  - name: "Configure VPN targets to the import VPN target list of a BD EVPN instance"
    community.network.ce_evpn_bd_vni:
      bridge_domain_id: 20
      vpn_target_import: 22:22,22:23
      provider: "{{ cli }}"

  - name: "Configure VPN targets to the export VPN target list of a BD EVPN instance"
    community.network.ce_evpn_bd_vni:
      bridge_domain_id: 20
      vpn_target_export: 22:38,22:39
      provider: "{{ cli }}"

  - name: "Unconfigure VPN targets to both the import and export VPN target lists of a BD EVPN instance"
    community.network.ce_evpn_bd_vni:
      bridge_domain_id: 20
      vpn_target_both: '22:100'
      state: absent
      provider: "{{ cli }}"

  - name: "Unconfigure VPN targets to the import VPN target list of a BD EVPN instance"
    community.network.ce_evpn_bd_vni:
      bridge_domain_id: 20
      vpn_target_import: '22:22'
      state: absent
      provider: "{{ cli }}"

  - name: "Unconfigure VPN targets to the export VPN target list of a BD EVPN instance"
    community.network.ce_evpn_bd_vni:
      bridge_domain_id: 20
      vpn_target_export: '22:38'
      state: absent
      provider: "{{ cli }}"

  - name: "Unconfigure a route distinguisher (RD) of a BD EVPN instance"
    community.network.ce_evpn_bd_vni:
      bridge_domain_id: 20
      route_distinguisher: '22:22'
      state: absent
      provider: "{{ cli }}"

  - name: "Unconfigure an EVPN instance for a VXLAN in BD view"
    community.network.ce_evpn_bd_vni:
      bridge_domain_id: 20
      evpn: disable
      provider: "{{ cli }}"

返回值

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

描述

changed

布尔值

检查设备上是否进行了更改

返回值:始终返回

示例: true

end_state

字典

设备上最终属性的键值对

返回值:始终返回

示例: {"bridge_domain_id": "2", "evpn": "enable", "route_distinguisher": "22:22", "vpn_target_both": ["22:100", "22:101"], "vpn_target_export": ["22:38", "22:39"], "vpn_target_import": ["22:22", "22:23"]}

existing

字典

设备上现有属性的键值对

返回值:始终返回

示例: {"bridge_domain_id": "2", "evpn": "disable", "route_distinguisher": null, "vpn_target_both": [], "vpn_target_export": [], "vpn_target_import": []}

proposed

字典

传递到模块的参数的键值对

返回值:始终返回

示例: {"bridge_domain_id": "2", "evpn": "enable", "route_distinguisher": "22:22", "state": "present", "vpn_target_both": ["22:100", "22:101"], "vpn_target_export": ["22:38", "22:39"], "vpn_target_import": ["22:22", "22:23"]}

updates

列表 / 元素=字符串

发送到设备的命令列表

返回值:始终返回

示例: ["bridge-domain 2", "  evpn", "    route-distinguisher 22:22", "    vpn-target 22:38 export-extcommunity", "    vpn-target 22:39 export-extcommunity", "    vpn-target 22:100 export-extcommunity", "    vpn-target 22:101 export-extcommunity", "    vpn-target 22:22 import-extcommunity", "    vpn-target 22:23 import-extcommunity", "    vpn-target 22:100 import-extcommunity", "    vpn-target 22:101 import-extcommunity"]

状态

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

  • 更多信息请参见 已弃用

作者

  • 周志金 (@QijunPan)