vSRX 虚拟防火墙 3.0 上的 Geneve Flow 基础架构
本主题提供 vSRX 虚拟防火墙 3.0 上 Geneve 流基础架构的概述和配置。
概述
通用网络虚拟化封装 (Geneve) 是由互联网工程任务组 (IETF) 开发的一种网络封装协议。
Geneve 协议支持数据中心环境的网络虚拟化用例。在此类环境中,Geneva 隧道充当在云部署(例如 Amazon Web Services (AWS) 或 VMware 部署)上运行的虚拟网络功能 (VNF) 的背板。
从 Junos OS 23.1R1 版开始,vSRX 虚拟防火墙 3.0(瞻博网络® vSRX 虚拟防火墙 虚拟防火墙的当前版本)支持用于 Geneve 隧道数据包处理的 Geneve 流基础架构。借助此支持,您可以使用 vSRX 虚拟防火墙 3.0 执行以下作:
借助 Geneve flow 基础架构支持,vSRX 虚拟防火墙 3.0 可以:
-
在各种云部署中执行中转路由器或隧道端点设备的功能。
例如,您可以通过 AWS Gateway 负载均衡器 (GWLB) 服务部署 vSRX 虚拟防火墙 3.0,该服务使用 Geneve 协议封装实现透明负载平衡和数据包路由。
-
对接收到的 Geneve 隧道数据包进行封装和解封装。
-
对内部流量应用第 4 层 (L4) 和第 7 层 (L7) 服务。
vSRX 虚拟防火墙 3.0 在任何云部署中作为隧道端点,在其第 3 层 (L3) 接口接收 Geneve 数据包,并(经检测)将数据包转发至同一目标端点。
您必须使用检查配置文件附加策略,该配置文件可确定:
-
vSRX 虚拟防火墙 3.0 处理的日内瓦流量类型。
-
vSRX 虚拟防火墙 3.0 应用于内部流量的策略。
您可以在 vSRX 虚拟防火墙 3.0 上配置常规安全策略,以便对内部流量应用 L4 和 L7 服务。
在收到没有任何更改的 L3 封装流量后, vSRX 虚拟防火墙 3.0:
- 对接收到的 Geneve 隧道数据包进行解封装。
- 分析隧道标头。
- 对内部 IP 数据包执行 L4 和 L7 检测。
- 封装流量。
- 将流量转发至目标隧道端点。
Geneve Flow 基础架构支持的优势
-
数据封装 — 提供支持网络虚拟化隧道的框架。
-
多租户支持 — 提供支持网络虚拟化隧道的框架。AWS 等多租户云提供商可以使用 Geneve 协议执行透明的负载平衡。
-
执行数据包的透明路由 — GWLB 和 vSRX 虚拟防火墙 3.0 使用 Geneve 封装相互交换应用流量,这使得 GWLB 能够保留原始流量的内容。
-
运行状况检查 — 供应商(例如 AWS)可以通过 Geneve 隧道执行运行状况探测,以确定虚拟机 (VM) 的状态。
为 Geneve 数据包流通道检测启用安全策略
使用此配置可在 vSRX 虚拟防火墙 3.0 上启用安全策略,以便进行日内瓦数据包流隧道检测。
借助对 vSRX 虚拟防火墙 3.0 实例的 Geneve 支持,您可以使用 vSRX3.0 执行以下作:
-
连接园区、数据中心和公共云环境中的端点及其边界。
-
通过嵌入式安全性保护这些环境。
要求
此示例使用以下硬件和软件组件:
-
vSRX 虚拟防火墙 3.0
-
Junos OS 23.1R1 版
开始之前:
-
确保您了解日内瓦协议的工作原理。
概述
使用此配置,您可以:
-
启用安全策略以处理日内瓦隧道封装的 L3 数据包。
-
根据 VNI 和供应商 TLV 属性为 Geneve 流量创建不同的配置文件 - 策略一旦附加到检查配置文件,即可指定要处理的 Geneve 流量类型以及要应用于内部流量的策略。
-
在 vSRX 虚拟防火墙 3.0 上配置常规安全策略,以在内部流量上应用 L4 和 L7 服务。
配置(vSRX 虚拟防火墙 3.0 作为隧道端点)
使用 AWS GWLB 和 vSRX 虚拟防火墙 3.0 作为隧道端点的简化日内瓦流量拓扑
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层 [edit] 级的 CLI 中,然后从配置模式进入 commit 。
定义信任和不信任区域以允许所有主机流量。
set security tunnel-inspection inspection-profile ti-vendor geneve g-rule policy-set ps-vendorset security tunnel-inspection inspection-profile ti-vendor geneve g-rule vni vni-vendorset security tunnel-inspection vni vni-vendor vni-id 0set security policies from-zone vtepc to-zone junos-host policy self match application junos-geneveset security policies from-zone vtepc to-zone junos-host policy self match source-address anyset security policies from-zone vtepc to-zone junos-host policy self match destination-address anyset security policies from-zone vtepc to-zone junos-host policy self then permit tunnel-inspection ti-vendorset security policies default-policy deny-allset security policies policy-set ps-vendor policy self match source-address anyset security policies policy-set ps-vendor policy self match destination-address anyset security policies policy-set ps-vendor policy self match application anyset security policies policy-set ps-vendor policy self then permitset interfaces ge-0/0/1 mtu 9000set interfaces ge-0/0/1 unit 0 family inet address anyset interfaces ge-0/0/1 unit 0 family inet6 address any
程序
分步过程
下面的示例要求您在各个配置层级中进行导航。有关作说明,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器。
要在 vSRX 虚拟防火墙 3.0 上配置隧道检测的日内瓦流支持:
-
定义信任和不信任区域以允许层次结构下 [edit security zones] 的所有主机流量。
-
定义
tunnel-inspection配置文件。[edit security tunnel-inspection] user@host# set security tunnel-inspection inspection-profile ti-vendor geneve g-rule policy-set ps-vendor user@host# set security tunnel-inspection inspection-profile ti-vendor geneve g-rule vni vni-vendor user@host# set security tunnel-inspection vni vni-vendor vni-id 0
-
为外部数据包定义外部会话策略,并附加引用的隧道检测配置文件
注意:在策略配置中,
to-zonevSRX 虚拟防火墙 3.0 作为隧道端点的外部策略必须为junos-host,这是一个用于处理流量的内置(保留标识符)区域。[edit security policies] user@host# set security policies from-zone vtepc to-zone junos-host policy self match source-address any user@host# set security policies from-zone vtepc to-zone junos-host policy self match destination-address any user@host# set security policies from-zone vtepc to-zone junos-host policy self match application junos-geneve user@host# set security policies from-zone vtepc to-zone junos-host policy self then permit tunnel-inspection ti-vendor user@host# set security policies default-policy deny-all
-
定义一个内部策略,
policy-set用于处理解封装的数据包。[edit security policies] user@host# set security policies policy-set ps-vendor policy self match source-address any user@host# set security policies policy-set ps-vendor policy self match destination-address any user@host# set security policies policy-set ps-vendor policy self match application any user@host# set security policies policy-set ps-vendor policy self then permit
-
配置与
from-zone虚拟隧道端点客户端 (VTEPC) 关联的接口,以接收日内瓦封装的数据包和运行状况检查数据包。[edit] user@host# set interfaces ge-0/0/1 mtu 9000 user@host# set interfaces ge-0/0/1 unit 0 family inet address any user@host# set interfaces ge-0/0/1 unit 0 family inet6 address any
结果
在配置模式下,输入 show security policies 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@host# show security policies
from-zone trust to-zone untrust {
policy p1 {
match {
source-address any;
destination-address any;
application any;
}
then {
permit {
application-services {
application-traffic-control {
rule-set ftp-test1;
}
}
}
}
}
policy internet-access {
match {
source-address any;
destination-address any;
application any;
}
then {
permit;
}
}
}
from-zone untrust to-zone trust {
policy dst-nat-pool-access {
match {
source-address any;
destination-address 233.252.0.1/21;
application any;
}
then {
permit;
}
}
}
from-zone vtepc to-zone junos-host {
policy self {
match {
source-address any;
destination-address any;
application junos-geneve;
}
then {
permit {
tunnel-inspection {
ti-vendor;
}
}
}
}
}
policy-set ps-vendor {
policy self {
match {
source-address any;
destination-address any;
application any;
}
then {
permit;
}
}
}
default-policy {
deny-all;
}
user@host# show security tunnel-inspection
inspection-profile ti-vendor {
geneve g-rule {
policy-set ps-vendor;
vni vni-vendor;
}
}
vni v1 {
vni-id 0;
}
vni vni-vendor {
vni-id 0;
}
在设备上完成功能配置后,从配置模式输入 commit 。
验证隧道检测配置文件和 VNI
目的
验证是否已配置 tunnel-inspection 配置文件和 VXLAN 网络标识符 (VNI)。
行动
在作模式下,输入 show security tunnel-inspection profiles ti-vendor 和 show security tunnel-inspection vnis 命令。
user@host> show security tunnel-inspection profiles ti-vendor
--------------------------------------------------------------------------
Logical system: root-logical-system
Profile count: 1
Profile: ti-vendor
Type: Geneve
geneve count: 1
geneve name: g-rule
VNI count: 1
VNI: vni-vendor
Policy set: ps-vendor
Inspection level: 1
user@host> show security tunnel-inspection vnis
--------------------------------------------------------------------------
Logical system: root-logical-system
VNI count: 1
VNI name: vni-vendor
VNI id count: 0
意义
输出显示 Geneve 隧道检查配置文件已启用,并且 VXLAN 网络标识符 (VNI) 已配置。
验证隧道检测配置文件和 VNI
目的
验证是否已配置 tunnel-inspection 配置文件和 VXLAN 网络标识符 (VNI)。
行动
在作模式下,输入 show security tunnel-inspection profiles ti-vendor 和 show security tunnel-inspection vnis 命令。
user@host> show security tunnel-inspection profiles ti-vendor
--------------------------------------------------------------------------
Logical system: root-logical-system
Profile count: 1
Profile: ti-vendor
Type: Geneve
geneve count: 1
geneve name: g-rule
VNI count: 1
VNI: vni-vendor
Policy set: ps-vendor
Inspection level: 1
user@host> show security tunnel-inspection vnis
--------------------------------------------------------------------------
Logical system: root-logical-system
VNI count: 1
VNI name: vni-vendor
VNI id count: 0
意义
输出显示 Geneve 隧道检查配置文件已启用,并且 VXLAN 网络标识符 (VNI) 已配置。
配置(vSRX 虚拟防火墙 3.0 作为过渡路由器)
简化的日内瓦流量拓扑 vSRX 虚拟防火墙 3.0 作为中转路由器
在此部署模式下,虚拟隧道端点客户端 (vtepc)(日内瓦隧道端点)必须确保发往客户端和服务器的数据包都能通过虚拟隧道端点服务器 (VTEP)(vSRX 虚拟防火墙 3.0)。源端口由虚拟隧道端点 (VTEP) 选择。
的简化拓扑
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层 [edit] 级的 CLI 中,然后从配置模式进入 commit 。
set security tunnel-inspection vni r1 vni-range 1 to 100set security tunnel-inspection vni r1 vni-id 500set security tunnel-inspection profile inspection-profile ti-vendor geneve geneve1 vni r1set security tunnel-inspection profile inspection-profile ti-vendor geneve geneve1 policy-set pset1set security tunnel-inspection vni r2 vni-range 200 to 400set security tunnel-inspection vni r2 vni-id 500set security tunnel-inspection profile inspection-profile ti-vendor geneve geneve2 vni r2set security tunnel-inspection profile inspection-profile ti-vendor geneve geneve2 policy-set pset2set security policies from-zone vtepc to-zone vteps policy p1 match application junos-geneveset security policies from-zone vtepc to-zone vteps policy p1 match source-address anyset security policies from-zone vtepc to-zone vteps policy p1 match destination-address anyset security policies from-zone vtepc to-zone vteps policy p1 then permit tunnel-inspection ti-vendorset security policies from-zone vteps to-zone vtepc policy p1 match application junos-geneveset security policies from-zone vteps to-zone vtepc policy p1 match source-address anyset security policies from-zone vteps to-zone vtepc policy p1 match destination-address anyset security policies from-zone vteps to-zone vtepc policy p1 then permit tunnel-inspection ti-vendorset security policies default-policy deny-allset security policies policy-set pset1 policy pset_p1 match source-address anyset security policies policy-set pset1 policy pset_p1 match destination-address anyset security policies policy-set pset1 policy pset_p1 match application anyset security policies policy-set pset1 policy pset_p1 then permitset interfaces ge-0/0/1 mtu 9000set interfaces ge-0/0/1 unit 0 family inet address anyset interfaces ge-0/0/1 unit 0 family inet6 address any
程序
分步过程
下面的示例要求您在各个配置层级中进行导航。有关作说明,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器。
要为 vSRX 虚拟防火墙 3.0(vSRX 虚拟防火墙 3.0 作为中转路由器)上的隧道检测配置日内瓦流支持:
-
定义信任和不信任区域以允许层次结构下 [edit security zones] 的所有主机流量。
-
定义
tunnel-inspection配置文件。[edit security tunnel-inspection] user@host# set security tunnel-inspection vni r1 vni-range 1 to 100 user@host# set security tunnel-inspection vni r1 vni-id 500 user@host# set security tunnel-inspection profile inspection-profile ti-vendor geneve geneve1 vni r1 user@host# set security tunnel-inspection profile inspection-profile ti-vendor geneve geneve1 policy-set pset1 user@host# set security tunnel-inspection vni r2 vni-range 200 to 400 user@host# set security tunnel-inspection vni r2 vni-id 500 user@host# set security tunnel-inspection profile inspection-profile ti-vendor geneve geneve2 vni r2 user@host# set security tunnel-inspection profile inspection-profile ti-vendor geneve geneve2 policy-set pset2
-
定义外部会话策略。
注意:对于作为过渡路由器的 vSRX 虚拟防火墙 3.0,每个方向都需要两个策略。
from-zone和to-zone是必须在接口下定义的相应区域。[edit security policies] user@host# set security policies from-zone vtepc to-zone vteps policy p1 match source-address any user@host# set security policies from-zone vtepc to-zone vteps policy p1 match destination-address any user@host# set security policies from-zone vtepc to-zone vteps policy p1 match application junos-geneve user@host# set security policies from-zone vtepc to-zone vteps policy p1 then permit tunnel-inspection ti-vendor user@host# set security policies from-zone vteps to-zone vtepc policy p1 match application junos-geneve user@host# set security policies from-zone vteps to-zone vtepc policy p1 match source-address any user@host# set security policies from-zone vteps to-zone vtepc policy p1 match destination-address any user@host# set security policies from-zone vteps to-zone vtepc policy p1 then permit tunnel-inspection ti-vendor user@host#set security policies default-policy deny-all
-
定义一个内部策略,
policy-set用于处理解封装的数据包。[edit security policies] user@host# set security policies policy-set pset1 policy pset_p1 match source-address any user@host# set security policies policy-set pset1 policy pset_p1 match destination-address any user@host# set security policies policy-set pset1 policy pset_p1 match application any user@host# set security policies policy-set pset1 policy pset_p1 then permit
-
配置与
from-zone虚拟隧道端点客户端 (VTEPC) 关联的接口,以接收日内瓦封装的数据包和运行状况检查数据包。注意:在采用中转模式的情况下,vSRX 虚拟防火墙 3.0 必须配置两个用于入口和出口的 L3 接口。
[edit] user@host# set interfaces ge-0/0/1 mtu 9000 user@host# set interfaces ge-0/0/1 unit 0 family inet address any user@host# set interfaces ge-0/0/1 unit 0 family inet6 address any
结果
在配置模式下,输入 show security policies 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@host# show security policies
from-zone trust to-zone untrust {
policy p1 {
match {
source-address any;
destination-address any;
application any;
}
then {
permit {
application-services {
application-traffic-control {
rule-set ftp-test1;
}
}
}
}
}
}
from-zone vtepc to-zone vteps {
policy p1 {
match {
source-address any;
destination-address any;
application junos-geneve;
}
then {
permit {
tunnel-inspection {
ti-vendor;
}
}
}
}
}
from-zone vteps to-zone vtepc {
policy p1 {
match {
source-address any;
destination-address any;
application junos-geneve;
}
then {
permit {
tunnel-inspection {
ti-vendor;
}
}
}
}
}
policy-set pset1 {
policy pset_p1 {
match {
source-address any;
destination-address any;
application any;
}
then {
permit;
}
}
}
default-policy {
deny-all;
}}
user@host# show security tunnel-inspection
inspection-profile ti-vendor {
geneve g-rule {
policy-set ps-vendor;
vni vni-vendor;
}
}
inspection-profile pro1;
vni r1 {
vni-id 500;
}
vni r2 {
vni-id 500;
}
}
在设备上完成功能配置后,从配置模式输入 commit 。