防火墙设备互联-总结
1.1 二层接口与Vlanif
实验整体拓扑

配置防火墙二层接口与Vlanif


“二层接口+三层VLANIF”的标准配置流程
把防火墙的一个物理接口
G1/0/4当成交换机接口来用,接内网PC。内网PC属于VLAN 5,网关是防火墙上的Vlanif5(5.5.5.254)。防火墙再把Vlanif5加入Trust区域,这样内网PC和防火墙之间就能通了。
关键点:G1/0/4是二层口(类似交换机),Vlanif5是它的三层网关口(类似交换机的VLANIF接口)。

逐条命令拆解
第1步:创建VLAN 5
vlan 5
含义:在防火墙的“VLAN数据库”里创建一个编号为5的VLAN。这只是逻辑上声明存在VLAN 5,还没把任何接口划进去。
底层逻辑:华为防火墙本质是一个融合设备(路由+交换+安全)。创建VLAN后,防火墙就有了一个“虚拟的二层广播域”。
第2步:将G1/0/4转为二层接口
interface GigabitEthernet1/0/4
portswitch
含义:portswitch命令将G1/0/4从三层模式切换到二层模式。
-
三层模式(默认):接口可以直接配IP地址,像路由器接口。
-
二层模式:接口只能配VLAN信息,像交换机接口,不能直接配IP。
为什么要这一步:防火墙的物理接口默认是三层口(可以配IP)。如果要把这个接口接PC,并且通过VLAN隔离,必须先把它变成二层口。不敲portswitch,后面所有VLAN配置都不生效。
第3步:配置描述、开启端口
description To-InsidePC
undo shutdown
-
description:给接口加个备注,方便维护。无实际功能。
-
undo shutdown:开启接口。华为接口默认是
shutdown状态,必须手动开启。
第4步:配置Access接口并划入VLAN 5
port link-type access
port default vlan 5
-
port link-type access:将接口模式设置为Access模式,只能属于一个VLAN,通常连接终端设备(PC、打印机等)。 -
port default vlan 5:把这个接口的默认VLAN设置为5。也就是说,从这个接口进入的无标签数据帧,都会被标记上VLAN 5;从防火墙发往这个接口的数据帧,也会剥离VLAN标签后发出。
效果:PC接到G1/0/4上,PC不需要知道VLAN(网卡不支持VLAN),但防火墙会自动把PC的流量归入VLAN 5。
第5步:创建Vlanif5三层接口
interface Vlanif5
含义:VLAN是二层概念(广播域),如果要让VLAN内的设备通信,需要一个三层网关。Vlanif5就是这个VLAN 5的虚拟三层接口。
底层逻辑:VLAN 5内的所有二层流量,需要路由时,会走到Vlanif5接口。这个接口就像交换机的“网关接口”。

第8步:将Vlanif5加入Trust区域
firewall zone trust
add interface Vlanif5
含义:把Vlanif5这个三层接口加入Trust区域。
为什么要配:防火墙的安全策略是基于区域的。不把接口加入任何区域,该接口的流量不会经过安全策略处理。通常内网接口加入Trust,外网接口加入Untrust。
注意:G1/0/4本身是二层接口,不加入任何区域。只有三层接口(Vlanif5)才加入区域。

问题1:为什么要把Vlanif加入安全区域,而不是把物理口G1/0/4加入?
一、困惑
-
为什么要把Vlanif加入安全区域,而不是把物理口G1/0/4加入?
-
为什么没有写安全策略,Ping也能通?
这两个问题其实指向同一个答案:在防火墙眼里,流量是从哪个三层接口进来的,那个接口才算是“入口”。







问题2:接口划分区域的知识点






问题3:二层,三层接口跟防火墙安全区域安全策略知识点
一、先记住一条铁律(任何时候不要忘)
防火墙执行安全策略时,只认“三层接口”所属的区域。
也就是说:IP包从哪个三层接口进来,就查那个三层接口的区域。
二层口(没有IP地址的接口)永远不会被防火墙直接当作“入接口”去匹配安全策略。
这条铁律是华为防火墙的底层设计,永远不会变。
二、那么“二层口直接加入区域”是什么意思?
它只是一种配置上的便捷写法,不是底层处理逻辑。
当你在一个二层口上敲了:
firewall zone trust
add interface GigabitEthernet1/0/4
实际上发生的事情是:
防火墙会自动把这个二层口所属的VLAN对应的Vlanif(如果存在)的区域设为Trust。
如果这个VLAN还没有创建Vlanif,这个配置暂时无效(因为没有三层接口可以承载区域)。
一旦你后续创建了Vlanif5,Vlanif5会继承这个二层口的区域设定。
打个比方:
-
二层口 = 一个投票代理人
-
Vlanif = 真正的投票人
-
你让代理人去投票(配置二层口区域),最终票还是算在真正的投票人头上。如果真正的投票人自己直接投票(Vlanif自己配置区域),代理人的票就作废。
三、为什么老师会说“二层需要划区域”?
因为早期华为防火墙版本(或者某些老师习惯的教学顺序)中,会先配置二层口区域,再创建Vlanif,这样Vlanif会自动继承区域,少敲一条命令。这是一种教学上的简化,不是必须的逻辑。
但现代认证考试和实际运维中,都推荐直接配置Vlanif的区域,因为:
-
更清晰:一眼看出哪个三层接口属于哪个区域。
-
避免歧义:如果有多个二层口属于同一个VLAN,各自配了不同区域,以哪个为准?容易乱。
-
排错更容易:
display zone直接看到Vlanif,不需要去查二层口的继承关系。
四、用你的实验具体说明(消除矛盾)
你的实验配置(正确做法):
interface Vlanif5
ip address 5.5.5.254 24
firewall zone trust
add interface Vlanif5
-
这里物理口G1/0/4没有配置任何区域。
-
数据从G1/0/4进入,上升到Vlanif5,Vlanif5说“我在Trust区域”,安全策略匹配Trust → Local,通。
-
完全符合铁律:只看三层接口的区域。
另一种配置(也合法,但啰嗦):
interface GigabitEthernet1/0/4
portswitch
port default vlan 5
firewall zone trust
add interface GigabitEthernet1/0/4
interface Vlanif5
ip address 5.5.5.254 24
# 注意:Vlanif5没有单独配置区域
-
这里物理口配了区域,Vlanif没配。
-
防火墙内部处理时,Vlanif5会继承物理口的Trust区域。
-
最终效果和上面一模一样。
-
依然符合铁律:真正被用来匹配安全策略的还是Vlanif5这个三层接口,只是它的区域是从物理口继承来的。
五、为什么我说“物理口不加入任何区域,只有Vlanif加入”?
因为那是最佳实践推荐,不是“物理口不能配区域”。
我那样说的目的是为了避免你混淆,因为很多初学者看到物理口也能配区域,就以为防火墙会把二层口当作安全策略的入接口,那就大错特错了。我直接告诉你“别去管物理口,只配Vlanif”,是为了让你养成正确习惯,少踩坑。
如果你非要问“物理口配区域到底有没有用”:
-
有用,但前提是该VLAN没有Vlanif直接配置区域。
-
一旦Vlanif自己配了区域,物理口的区域配置就被忽略。
-
所以最清晰、最不容易出错的写法就是:只配Vlanif的区域,物理口不配。
问题4:三层子接口
子接口,就是为了解决你老师提到的“三层需要划区域”里最经典、也最省钱的那个场景:在只有一台二层交换机的环境里,用防火墙的一个物理口,同时给多个部门(VLAN)做网关。 这是一个非常经典的HCIA-Security综合实验。
知识点背景:我们为什么要用子接口?
子接口的存在是为了解决一个实际矛盾:硬件接口太少,但需要划分的网段(VLAN)太多。
假设现在有一个小公司,财务部和市场部需要网络隔离,但他们只有一台二层交换机和一台防火墙。这种情况下,交换机只能做VLAN隔离,而防火墙作为所有PC的网关,就需要同时连接这两个VLAN。但墙上的接口不够了。
“单臂路由”技术就是为了解决这个难题,让一个物理接口“身兼数职”。子接口就是在一个物理口上创建的多个逻辑接口。每个子接口只处理一个VLAN的流量,相当于物理接口被逻辑地“切”成了几块,各自独立工作。
核心定义:什么是子接口?
子接口是基于一个物理以太网接口创建的、能识别和处理带有VLAN Tag数据帧的逻辑三层接口。
它的工作原理是VLAN终结。当交换机通过Trunk口传来一个带VLAN 10标签的数据帧时,防火墙收到后会直接交给G1/0/0.10这个子接口来处理,并在此处剥离VLAN标签,还原出原始的IP包,然后交给CPU进行三层路由。
底层逻辑拆解:数据包的“认亲”之旅
当PC1(财务部,IP 10.1.10.2)想要访问公司内的服务器(市场部,IP 10.1.20.2)时,数据包的处理流程如下:
-
PC1封装数据帧:源IP
10.1.10.2,目的IP10.1.20.2;源MAC为自身,目的MAC为其网关10.1.10.254。 -
交换机处理:从
Access口收到无标签帧后,打上VLAN 10的Tag,然后从Trunk口转发给防火墙。 -
防火墙接收与分发:防火墙物理口收到带
VLAN 10标签的帧,发现VLAN 10,便将该帧交给G1/0/0.10子接口。 -
子接口终结VLAN:
G1/0/0.10剥离VLAN标签,还原出原始IP包。 -
防火墙查表转发:防火墙根据目的IP
10.1.20.2查找路由表,找到匹配项10.1.20.0/24,出接口为G1/0/0.20子接口。 -
再次封装与发送:子接口为数据包添加新的二层头部,打上
VLAN 20的标签,通过物理口发回给交换机。 -
交换机最终转发:交换机根据
VLAN 20的Tag,将帧转发给服务器。
华为设备落地:经典“单臂路由”实验
下面我们以华为eNSP模拟器为例,带你手把手完成这个实验。
1. 实验拓扑
-
防火墙(FW1):接口
G1/0/0连接交换机。 -
二层交换机(LSW1):
-
GE0/0/1:Trunk口,连接防火墙。 -
GE0/0/10:Access VLAN 10,连接PC1。 -
GE0/0/20:Access VLAN 20,连接PC2。
-
-
PC1:IP
10.1.10.2/24,网关10.1.10.254。 -
PC2:IP
10.1.20.2/24,网关10.1.20.254。
2. 实验配置
第一步:配置二层交换机
<Huawei> system-view
[Huawei] sysname LSW1
[LSW1] vlan batch 10 20 // 创建VLAN 10和20
[LSW1] interface gigabitethernet 0/0/1
[LSW1-GigabitEthernet0/0/1] port link-type trunk // 上联口配置为Trunk
[LSW1-GigabitEthernet0/0/1] port trunk allow-pass vlan 10 20 // 允许VLAN 10和20通过
[LSW1-GigabitEthernet0/0/1] quit
[LSW1] interface gigabitethernet 0/0/10
[LSW1-GigabitEthernet0/0/10] port link-type access // 下联PC口配置为Access
[LSW1-GigabitEthernet0/0/10] port default vlan 10 // 划入VLAN 10
[LSW1-GigabitEthernet0/0/10] quit
[LSW1] interface gigabitethernet 0/0/20
[LSW1-GigabitEthernet0/0/20] port link-type access // 下联PC口配置为Access
[LSW1-GigabitEthernet0/0/20] port default vlan 20 // 划入VLAN 20
[LSW1-GigabitEthernet0/0/20] quit
第二步:配置防火墙
<USG> system-view
[USG] sysname FW1
[FW1] interface GigabitEthernet 1/0/0
[FW1-GigabitEthernet1/0/0] undo shutdown // 开启物理接口
[FW1-GigabitEthernet1/0/0] quit
// 配置子接口 .10,处理VLAN 10的流量[reference:4]
[FW1] interface GigabitEthernet 1/0/0.10
[FW1-GigabitEthernet1/0/0.10] vlan-type dot1q 10 // 关键命令:终结VLAN 10的Tag[reference:5]
[FW1-GigabitEthernet1/0/0.10] ip address 10.1.10.254 255.255.255.0 // 配置VLAN 10的网关
[FW1-GigabitEthernet1/0/0.10] quit
// 配置子接口 .20,处理VLAN 20的流量
[FW1] interface GigabitEthernet 1/0/0.20
[FW1-GigabitEthernet1/0/0.20] vlan-type dot1q 20 // 关键命令:终结VLAN 20的Tag
[FW1-GigabitEthernet1/0/0.20] ip address 10.1.20.254 255.255.255.0 // 配置VLAN 20的网关
[FW1-GigabitEthernet1/0/0.20] quit
// 将子接口加入安全区域,并放行ICMP管理流量
[FW1] firewall zone trust
[FW1-zone-trust] add interface GigabitEthernet 1/0/0.10
[FW1-zone-trust] add interface GigabitEthernet 1/0/0.20
[FW1-zone-trust] quit
[FW1] interface GigabitEthernet 1/0/0.10
[FW1-GigabitEthernet1/0/0.10] service-manage ping permit
[FW1-GigabitEthernet1/0/0.10] quit
[FW1] interface GigabitEthernet 1/0/0.20
[FW1-GigabitEthernet1/0/0.20] service-manage ping permit
[FW1-GigabitEthernet1/0/0.20] quit
第三步:配置安全策略
内网PC属于Trust区域,防火墙自己属于Local区域。PC访问自己的网关,本质是Trust → Local的流量。需要配置安全策略放行Ping。
[FW1] security-policy
[FW1-policy-security] rule name trust_to_local_icmp
[FW1-policy-security-rule-trust_to_local_icmp] source-zone trust
[FW1-policy-security-rule-trust_to_local_icmp] destination-zone local
[FW1-policy-security-rule-trust_to_local_icmp] action permit
[FW1-policy-security-rule-trust_to_local_icmp] quit
[FW1-policy-security] quit
第四步:验证结果
配置完成后,分别在PC1和PC2上测试连通性:
-
PC1 Ping 网关(10.1.10.254):能通。这是
Trust → Local区域流量,安全策略已放行。 -
PC2 Ping 网关(10.1.20.254):能通。同上。
-
PC1 Ping PC2(10.1.20.2):能通!这表明防火墙成功在不同子接口间转发了流量,实现了跨VLAN三层互通。
-
查看会话表:执行
display firewall session table,你将看到从Trust区域(子接口.10)到Trust区域(子接口.20)的会话。
问题5:IEEE 802 标准
| 标准工作组 | 主要职责 | 你最常见的名字 | 核心解决问题 |
|---|---|---|---|
| 802.3 | 定义有线网络(以太网)的物理层和数据链路层 | 以太网、网线、光纤 | 设备如何通过线缆连接和通信 |
| 802.11 | 定义无线局域网(WLAN) | Wi-Fi、无线网 | 设备如何通过无线电波连接和通信 |
| 802.1 | 定义局域网/城域网的架构、桥接和管理 | VLAN、STP、LLDP | 如何组织和互连多个网络(无论是有线还是无线),并对其进行管理 |
| 802.15 | 定义无线个人局域网(WPAN) | 蓝牙、ZigBee | 设备如何在短距离内低功耗地连接 |
| 802.16 | 定义无线城域网(WMAN) | WiMAX | 提供城市级的远距离无线宽带接入 |
问题6:hybrid的用法
| 铁律 | 说明 |
|---|---|
| 铁律1 | 交换机内部处理数据帧时,一律看标签。没有标签的帧,会被打上PVID(端口默认VLAN ID)后再处理。 |
| 铁律2 | 交换机外部的设备(如PC、打印机),绝大多数不认识带标签的帧。你给它一个带802.1Q标签的帧,它直接丢弃。 |
所以问题来了:交换机内部需要标签来区分VLAN,但外部设备不认识标签。怎么办?
答案:出交换机的时候,把标签撕掉(untagged);进交换机的时候,如果没标签,就给它打上PVID。
这就是Hybrid接口存在的根本原因。
三种接口类型对比(从“标签处理”角度)
| 接口类型 | 收到无标签帧时 | 收到有标签帧时 | 发出帧时是否带标签 |
|---|---|---|---|
| Access | 打上PVID | 只有标签=PVID才收,否则丢 | 永远不带标签(全撕掉) |
| Trunk | 一般丢弃(通常不收无标签帧) | 标签在允许列表中则收 | 只有PVID对应的VLAN不带标签,其他VLAN都带标签 |
| Hybrid | 打上PVID | 标签在允许列表中则收 | 可以精细控制:哪些VLAN带标签(tagged),哪些VLAN不带标签(untagged) |
关键点:Trunk的“不带标签”是固定的,只有PVID对应的那一个VLAN不带标签。
Hybrid的“不带标签”是可配置的,你可以指定多个VLAN在发出时都不带标签。
先灵魂一问:已经有 Access、Trunk 了,为什么还要搞出 Hybrid?


Hybrid 最核心的两条命令(吃透这两句,你就全会了)
port hybrid tagged vlan 10
port hybrid untagged vlan 20

Hybrid 三大「经典必用场景」

int g0/0/1
port link-type hybrid
port hybrid pvid vlan 20 // PC无标签上来,默认划入vlan20
port hybrid untagged vlan 20 // 电脑流量剥标签
port hybrid tagged vlan 10 // 电话流量保留标签
为什么 Access/Trunk 做不到?
- Access:只能一个 VLAN,无法同时语音 + 办公
- Trunk:VLAN20 也会带标签,PC 拒收报文,直接断网


| 老师的话 | 底层逻辑 | 注意事项 |
|---|---|---|
| 一个VLAN只能属于一个VLANIF | VLANIF是VLAN的唯一三层网关,多个网关会导致路由冲突 | 不能为同一VLAN创建多个VLANIF,也不能同时存在VLANIF和同VID的子接口 |
| 二层口不需要访问控制 | 防火墙的访问控制(安全策略、Service-Manage)基于IP,二层口不处理IP,故无效 | 二层口可以做MAC过滤等二层控制,但与防火墙的“访问控制”概念不同 |
1.2 Eth-Trunk与子接口


问题:企业里有两台服务器,分别属于VLAN10和VLAN20。它们都接在思科交换机上。防火墙需要同时作为这两个VLAN的网关,并且要求防火墙和交换机之间的链路有冗余和带宽聚合(防止单条链路故障,同时提升吞吐量)。传统做法是用两根独立的网线分别跑两个VLAN,但浪费端口且无冗余。怎么办?
核心瓶颈:
-
两根独立链路:一根断,半个网络瘫痪。
-
普通Trunk:可以跑多VLAN,但没有链路冗余和负载分担。
-
需要链路聚合(Eth-Trunk/Port-channel)+ VLAN终结(子接口)同时实现。
| 方案 | 冗余性 | 带宽提升 | 多VLAN支持 | 防火墙作为网关 | 跨厂商兼容 |
|---|---|---|---|---|---|
| 单根Trunk | ❌ 无 | ❌ 无 | ✅ 有 | ✅ 有 | ✅ 可 |
| 两根独立Access | ✅ 有(每VLAN一根) | ❌ 无 | ❌ 各VLAN独占链路 | ✅ 有 | ✅ 可 |
| Eth-Trunk + 子接口 | ✅ 有 | ✅ 有 | ✅ 有 | ✅ 有 | ⚠️ 需配置一致 |
结论:只有链路聚合+子接口方案能同时满足冗余、带宽、多VLAN、网关四大需求。跨厂商(华为LACP主动/思科LACP被动)是现网常见场景,必须掌握。
一、实验整体目的
-
链路聚合:将防火墙的两个物理口捆绑成一个逻辑口Eth-Trunk,提高带宽和冗余。
-
子接口:在一个Trunk接口上划分多个逻辑子接口,每个子接口对应一个VLAN的网关。
-
跨厂商互通:华为防火墙与思科交换机通过LACP协议协商Trunk。
-
服务器接入:交换机下挂两台服务器,分属不同VLAN,都能通过防火墙上网或互访。
二、实验逻辑拓扑与流量路径
[ 服务器A ] [ 服务器B ]
(VLAN10) (VLAN20)
| |
+------+------------+------+
| 思科交换机 SW1 |
| (Port-channel10 Trunk) |
+----------E0/2,E0/3------+
|
(Eth-Trunk10)
|
+----------G1/0/2,G1/0/3--+
| 华为防火墙 USG |
| Eth-Trunk10.10 (GW 10.10.10.254)
| Eth-Trunk10.20 (GW 20.20.20.254)
+-------------------------+
|
Internet / 其他区域
-
服务器A(VLAN10)的默认网关 → 防火墙子接口
.10 -
服务器B(VLAN20)的默认网关 → 防火墙子接口
.20 -
交换机与防火墙之间跑Trunk,允许VLAN 10和20通过。
三、华为防火墙配置详解(逐条重点)
1. 创建VLAN和Eth-Trunk
vlan 10
vlan 20
interface Eth-Trunk10
description To-Cisco-SW1-Channel10
mode lacp-static # 静态LACP模式,思科侧需配active/passive
-
难点:
mode lacp-static表示防火墙主动发送LACP协商报文。思科侧如果配passive,可以被动协商成功。
2. 将物理口加入Eth-Trunk
interface GigabitEthernet1/0/2
undo shutdown
eth-trunk 10
-
注意:加入聚合组后,物理口不能再配IP或VLAN,所有配置都在聚合口上做。
3. 配置子接口(关键难点)
interface Eth-Trunk10.10
vlan-type dot1q 10 # 802.1Q封装,VLAN ID=10
ip address 10.10.10.254 255.255.255.0
service-manage enable
service-manage ping permit # 允许从该子接口ping通防火墙
-
重点:
-
子接口是逻辑接口,必须用
vlan-type dot1q指明对应哪个VLAN。 -
service-manage是防火墙特有功能,默认关闭。如果不开启ping permit,你在服务器上ping网关会不通(这是初学者最容易踩的坑)。 -
子接口IP就是该VLAN内服务器的默认网关。
-
4. 加入安全区域
firewall zone dmz
add interface Eth-Trunk10.10
add interface Eth-Trunk10.20
-
含义:这两个子接口都属于DMZ区域。同一个区域内的接口之间默认放行(取决于安全策略,但同区域通常信任)。如果想让VLAN10和VLAN20互访,不需要额外策略;如果隔离,则需配包过滤。
5. 查看状态(Down的原因)
display trunkmembership eth-trunk 10
Operate status: down
Number Of Up Ports in Trunk = 0
-
为什么Down? 因为交换机侧还没配Port-channel,LACP协商不成功。等交换机配完并连线正确,状态会变为UP。
四、思科交换机配置详解(重点与差异点)
1. 创建VLAN和Port-channel
interface Port-channel 10
switchport trunk encapsulation dot1q # 思科默认trunk封装
switchport mode trunk
-
注意:思科交换机上,Port-channel本身也要配trunk模式,否则物理口trunk无效。
**************************************************************************************************************
Port-channel 是什么?
-
Port-channel 是思科对链路聚合的逻辑接口名称,等同于华为的 Eth-Trunk。
-
作用:将多个物理口(如 Ethernet0/2、E0/3)捆绑成一个逻辑口,提高带宽和冗余。
-
一旦创建 Port-channel,物理口上的二层配置(如 trunk、access)都应该在 Port-channel 接口下统一配置,物理口只需加入 channel-group 并保持一致的配置即可。
| 封装类型 | 说明 | 现状 |
|---|---|---|
| ISL(Inter-Switch Link) | 思科私有协议,在原始帧外加一个头部 | 老旧设备使用 |
| dot1q(802.1Q) | 国际标准,在帧中插入 4 字节 VLAN 标签 | 现在绝大多数网络使用 |
华为对比:华为是在 Eth-Trunk 接口下直接配置子接口或 VLAN,而思科习惯在 Port-channel 下直接配置二层属性(如 trunk 或 access)。
switchport mode trunk 的作用
-
将接口(这里是 Port-channel10)设置为 Trunk 模式。
-
Trunk 模式允许接口通过多个 VLAN 的流量(每个帧带 VLAN 标签)。
-
对比 Access 模式:Access 口只属于一个 VLAN,且帧不带标签。
为什么必须在 Port-channel 下配置 trunk?
因为物理口(E0/2, E0/3)加入 Port-channel 后,它们的二层属性由 Port-channel 接口统一决定。如果你只在物理口下配 trunk,而不在 Port-channel 下配,逻辑聚合口依然不知道自己是 trunk,可能导致 VLAN 不通。
华为对比:华为不需要在 Eth-Trunk 下直接配 trunk 模式,而是通过创建子接口(Eth-Trunk.10)并指定 vlan-type dot1q 10 来实现 Trunk 的功能。思路略有不同:
-
华为:聚合口本身不配置二层模式,而是依赖子接口做 VLAN 终结。
-
思科:聚合口直接配置为 Trunk,然后通过允许 VLAN 列表(
switchport trunk allowed vlan)来控制哪些 VLAN 通过。
**************************************************************************************************************
关于Eth-Trunk的一些问题
“配置 trunk 口不放行 vlan 怎么能通?”
关键事实:在思科交换机上,当你把 Port-channel 配置为 switchport mode trunk 后,默认情况下它会允许所有 VLAN(1-4094)通过。
所以并不是“不放行”,而是隐式放行了所有 VLAN。
除非你手动敲了 switchport trunk allowed vlan 来限制,否则就是全放行。
因此,实验中交换机的 trunk 口是放行 VLAN 10 和 20 的(因为默认全允许)。
老师没写 allowed vlan 是因为这不是实验重点,默认行为已经满足需求。
为什么防火墙侧不配置 trunk 模式,也不配 port trunk allow-pass?
1. 华为防火墙的 Eth-Trunk 接口本质是 二层接口 还是 三层接口?
在华为 USG 防火墙上,物理接口(包括 Eth-Trunk)默认是 三层模式(可以配 IP)。
如果你直接给 Eth-Trunk 配 IP,那它就像一个路由口,不能处理带 VLAN tag 的帧。
要让防火墙处理带 tag 的帧,必须创建 子接口,并在子接口上指定 vlan-type dot1q 10。
这个命令的作用:
-
告诉防火墙:这个子接口只接收 VLAN ID=10 的 tagged 帧。
-
收到 tagged 帧后,剥掉 tag,交给三层处理。
-
发送时,给帧打上 VLAN 10 的 tag,再发出去。
因此,防火墙侧根本不需要一个“trunk 模式”的概念。
子接口的 vlan-type 就同时起到了“放行该 VLAN”和“处理该 VLAN”的作用。
如果你想放行 VLAN 10 和 20,就创建两个子接口;不想放行 VLAN 30,就不创建对应的子接口。
这比传统的 trunk + allowed vlan 更安全、更直观(默认拒绝所有 VLAN,只开放显式创建的子接口)。
2. 那 Eth-Trunk 本身在干什么?
Eth-Trunk 仅仅负责:
-
将 G1/0/2 和 G1/0/3 两个物理口捆绑,提供链路聚合、负载分担、冗余。
-
它像一个 管道,上面跑的是带 VLAN tag 的帧(因为子接口会打 tag)。
-
它不关心 tag 是什么,也不检查 VLAN ID。
所有 tag 都被原封不动地传给子接口去处理。
类比:
Eth-Trunk = 一根多车道隧道
子接口 = 隧道里的收费站,每个收费站只放行一种颜色的车(VLAN tag)
隧道本身不需要设置“允许红色车、蓝色车”,因为收费站会处理。
对比你熟悉的场景:交换机之间做 Eth-Trunk + trunk
你说的一般场景:
交换机A -- Eth-Trunk -- 交换机B
双方都要:
interface Eth-Trunk1
port link-type trunk
port trunk allow-pass vlan 10 20
为什么交换机之间必须这样配置?
因为交换机的 Eth-Trunk 是二层交换接口,它的作用就是转发二层帧。
你需要告诉交换机:
-
这个接口是 trunk 模式(处理 tagged 帧)
-
允许哪些 VLAN 通过(
allow-pass)
如果不配置 allow-pass,默认允许所有 VLAN(华为交换机默认也是允许所有)。
但为了安全和减少广播,通常都会显式指定。
关键区别:
-
交换机的 Eth-Trunk 本身参与 VLAN 转发决策(基于 MAC 地址表)。
-
防火墙的 Eth-Trunk 只是一个物理管道,不参与 VLAN 转发,转发决策在子接口(三层)完成。

**************************************************************************************************************
2. 服务器接口(Access模式)
interface Ethernet0/0
switchport access vlan 10
switchport mode access
-
这里服务器接口是Access口,不是Trunk。服务器网卡一般不需要打VLAN标签(除非特殊配置)。
3. 将物理口加入Port-channel(LACP被动模式)
interface Ethernet0/2
switchport trunk encapsulation dot1q
switchport mode trunk
channel-protocol lacp
channel-group 10 mode passive # 被动协商,等待防火墙主动
-
难点:思科
passive+ 华为lacp-static= 可成功协商。如果两边都active或都passive会有问题。 -
验证命令:
show etherchannel 10 summary看到Po10(SU)表示成功(S=Layer2,U=Up)。
关于Eth-Trunk与子接口实验的一些思考








1.3 三层接口






2.1 华为防火墙OSPF报文交互与安全策略影响

一、OSPF邻居建立过程回顾(聚焦Exstart状态)
OSPF邻居从 Down → Init → 2-Way → Exstart → Exchange → Loading → Full。其中 Exstart 状态是主从关系协商和DD报文交换的起点。
在Exstart状态下,邻居双方通过发送空的DD报文(Database Description,数据库描述报文)来选举主从(基于Router ID大小),并确定初始序列号。只有DD报文能够正常收发,才能进入后续的Exchange状态。
二、DD报文的本质与传输方式
-
DD报文:OSPF用于描述LSDB(链路状态数据库)摘要的报文,包含LSA头部信息。
-
在广播型网络(如以太网)中:
-
邻居发现使用组播(224.0.0.5 或 224.0.0.6)。
-
但DD报文、LSR、LSU、LSAck在邻居建立后,使用单播发送(直接发往邻居的IP地址)。
-
-
关键点:DD报文是单播IP报文,协议号89(OSPF)。
三、防火墙安全策略对OSPF流量的影响
华为防火墙默认启用基于安全区域的包过滤。任何跨区域的流量(包括单播OSPF报文)都必须经过安全策略检查:
-
如果未配置允许OSPF的策略,单播的DD报文会被防火墙丢弃。
-
组播OSPF报文(Hello等)通常由防火墙的组播转发或本地发起的组播处理,可能不受相同策略限制,但单播报文必须显式放行。
一、核心知识点
华为防火墙默认会拦截OSPF的单播报文(如DD报文),导致邻居卡在Exstart状态。
不同产品默认行为不同:虚拟USG默认放行(不拦截),AI防火墙6000系列默认拦截。
控制命令:firewall packet-filter basic-protocol enable
二、实操时你需要重点关注什么?
-
看到OSPF邻居卡在 Exstart 状态 → 立即怀疑是防火墙安全策略拦截了DD报文。
-
检查基础协议过滤是否开启
display firewall packet-filter basic-protocol
-
如果显示
enabled→ 需要配置安全策略放行OSPF。 -
如果显示
disabled或没有该命令 → 默认放行,无需额外配置
3. 如何放行OSPF(针对AI防火墙6000):
security-policy
rule name permit_ospf
source-zone trust (你的实际区域)
destination-zone untrust
service ospf (华为内置服务,对应协议89)
action permit
4. 如果不想配置安全策略(仅限实验环境):
undo firewall packet-filter basic-protocol enable
但生产环境不推荐,会降低安全性。
三、考试/面试最可能问什么?

| 故障现象 | OSPF邻居状态停留在 Exstart |
| 根本原因 | 防火墙安全策略拦截了单播DD报文(协议89) |
| 受影响设备 | AI防火墙6000系列(默认拦截);虚拟USG默认不拦截 |
| 控制命令 | firewall packet-filter basic-protocol enable(开启拦截) |
| 解决方案(推荐) | 安全策略中放行 service ospf |
| 解决方案(应急) | undo firewall packet-filter basic-protocol enable |
| 验证命令 | display ospf peer、display firewall packet-filter basic-protocol |
组播的知识点





2.3 逐包和逐流





一、为什么需要逐包/逐流?—— 等价路由(ECMP)的负载分担
当网络中存在多条等价路由(目的网段相同、优先级相同、开销相同)时,防火墙/路由器可以把流量分散到多条链路上,避免一条链路拥塞、其他链路空闲。这种机制称为负载分担。
负载分担主要有两种模式:逐包(Per-Packet) 和 逐流(Per-Flow)。不同厂商默认模式不同,且各有适用场景。
二、逐包(Per-Packet)负载分担
1. 工作原理
防火墙收到一个数据包,选择第一条等价路由发送;
下一个数据包,选择第二条等价路由发送;
再下一个,选择第三条……轮流交替,与数据包的源/目IP、端口无关。
比喻:发牌员把一叠牌轮流发给三个玩家,不管牌面是什么,按顺序轮流发。
2. 特点
-
每条链路的利用率非常均衡,几乎达到理想负载分担。
-
可能导致乱序:同一个TCP连接的多个包可能走不同路径,由于网络延迟差异,后发的包可能先到达,造成TCP乱序。TCP协议能容忍一定乱序(通过重排),但严重乱序会触发快速重传或性能下降。
-
对防火墙性能要求较高:需要为每个包独立查路由并决策出口。
3. 典型默认设备
-
华三(H3C)防火墙默认采用逐包模式(命令
ip forwarding per-flow实际上是逐包,注意命名可能反直觉)。 -
部分路由器(如Linux默认也是逐包,但可通过配置修改)。
三、逐流(Per-Flow)负载分担
1. 工作原理
防火墙根据五元组(源IP、目的IP、源端口、目的端口、协议) 或其他哈希因子,计算出一个哈希值,然后用该哈希值对等价路由条数取模,决定走哪条链路。
同一个流(相同五元组)的所有数据包,始终走同一条路径,直到流结束或路由变化。
比喻:按身份证号(哈希)分配窗口,同一个人永远去同一个窗口办理业务。
2. 特点
-
保证同一流的报文顺序,不会乱序,对TCP、UDP等传输层协议友好。
-
负载均衡效果取决于流的数量:如果只有几个大流(例如几个大文件下载),可能全部哈希到同一条链路,导致负载不均。流越多,负载越趋均匀。
-
对防火墙性能影响较小:只需第一个包计算哈希并建立会话,后续包直接根据会话表转发,出口固定。
3. 典型默认设备
-
华为(Huawei)防火墙默认采用逐流模式(命令
load-balance flow或ip load-balance flow)。 -
Cisco、Juniper 等也普遍默认逐流。
四、逐包 vs 逐流 —— 对比表
| 维度 | 逐包 | 逐流 |
|---|---|---|
| 分配粒度 | 每个数据包独立选择 | 整个流(会话)选择同一条路径 |
| 负载均衡效果 | 极佳,几乎完美均衡 | 依赖于流的数量,大流可能不均 |
| 报文顺序 | 可能乱序 | 严格保序 |
| 适用协议 | 对乱序不敏感的应用(如UDP大流量) | 对顺序敏感的应用(TCP、VoIP、视频) |
| 防火墙性能 | 较高(每个包决策) | 较低(首包决策,后续会话匹配) |
| 典型厂商 | H3C(默认)、Linux(可配) | Huawei(默认)、Cisco、Juniper |
五、深入理解:为什么厂商选择不同?
-
华为主打企业网络:大部分企业流量是TCP(Web、文件、邮件),乱序会严重影响性能,因此默认逐流保证顺序。
-
华三在某些场景(如运营商、数据中心):可能存在海量短连接,逐包能更好利用链路带宽;且现代CPU处理乱序能力增强,逐包收益更大。
-
考试陷阱:注意“华三防火墙默认逐包”与“华为防火墙默认逐流”是常考点。尤其华三的命令
ip forwarding per-flow名字里有“per-flow”但实际是逐包,容易混淆。
六、实际工作中的关键知识点(考试/面试常问)
1. 如何查看和修改负载分担模式?
华为防火墙:
# 查看当前模式
display load-balance mode
# 修改为逐包(一般不建议,除非明确需要)
load-balance per-packet # 注意:部分版本命令不同
华三防火墙:
# 查看当前模式
display ip forwarding per-flow
# 修改为逐流
undo ip forwarding per-flow # 默认即逐包,undo后变为逐流?需查具体版本
为什么海量短连接下逐包更好?
-
逐流的哈希冲突:大量短连接(尤其是访问同一热门服务器)可能映射到同一条链路,导致该链路拥塞,其他链路空闲 → 总带宽利用率低。
-
逐包的轮询机制:每个包独立轮转,不依赖流数量,能完美打散到所有链路 → 带宽利用率接近100%。
-
短连接乱序代价极低:每个连接只传几个包,接收端重排开销可忽略;现代CPU和TCP SACK机制能高效处理乱序。
为什么运营商/数据中心是海量短连接呢


三、与“长连接”场景的对比
| 特征 | 运营商骨干网(海量短连接) | 数据中心东西向(海量短连接) | 企业网/长连接场景 |
|---|---|---|---|
| 典型业务 | 网页浏览、视频切片、IoT上报 | 微服务RPC调用 | 文件下载、视频流、数据库复制 |
| 连接时长 | 几毫秒到几秒 | 几毫秒到几百毫秒 | 几分钟到几小时 |
| 每连接数据量 | 几KB到几MB | 几KB到几十KB | 几百MB到几GB |
| 并发连接数 | 数百万到数十亿 | 数十万到数百万 | 几千到几万 |
| 对乱序容忍度 | 高(少量包,重排开销小) | 高(同理) | 低(乱序影响吞吐) |
| 负载均衡目标 | 绝对均衡,避免拥塞丢包 | 低延迟,避免哈希冲突 | 保序为主,均衡次要 |
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)