使用ESXi命令行工具esxcli network
查看流量策略(如esxcli network firewall ruleset list
),配置策略可通过esxcli network firewall set
或调整vSwitch设置(如esxcli network vswitch standard policy shaping set
)。
如何使用命令行查看和配置 ESXi 8.0 中的流量策略?
为什么不尝试通过VMware NSX进行更灵活的网络流量管理,而非直接配置ESXi主机呢?
更多回答
在ESXi 8.0中通过命令行管理流量策略需结合vSphere CLI工具及ESXi Shell内置命令。核心步骤如下:
-
查看当前策略:
- 使用
esxcli network firewall ruleset list
检查防火墙规则集状态,定位流量控制入口。 - 执行
esxcli network ip interface list
查看虚拟交换机(vSwitch)及端口组(portgroup)关联策略。
- 使用
-
配置流量策略:
- 通过
esxcli network vswitch standard policy shaping
设置带宽限制(如突发流量阈值、平均带宽)。 - 使用
esxcli network vswitch standard policy security
调整混杂模式/MAC地址变更策略,控制二层流量。 - 针对特定端口组,用
esxcli network vswitch standard portgroup policy
子命令配置VLAN标记策略。
- 通过
-
深度控制:
- 在NSX未部署时,可通过
esxcli network ip netstack
查看内核协议栈流量分类。 - 使用
vsish
工具直接访问VMkernel的流量统计计数器,实时监控策略生效情况。
- 在NSX未部署时,可通过
风险提示:变更生产环境策略前务必通过 esxcli network config backup
备份当前配置,关键操作建议在维护窗口执行并通过vCenter性能图表验证策略影响。
-
查看流量策略:
- 连接到ESXi主机的SSH或DCUI界面。
- 输入命令:
esxcli network vswitch standard list
,查看标准交换机的流量策略(如流量调整、负载均衡策略)。 - 若要查看分布式交换机(vDS)策略,使用:
esxcli network vswitch dvs vmware list
。
-
配置流量策略(标准交换机):
- 流量调整(Shaping):
esxcli network vswitch standard policy shaping set --vswitch=vSwitch0 --enabled=true --avg-bandwidth=100 --peak-bandwidth=200 --burst-size=50
(参数说明:
avg-bandwidth
为平均带宽/Mbps,peak
为峰值,burst
为突发流量/KB) - 安全策略(如混杂模式):
esxcli network vswitch standard portgroup policy set --portgroup=PortGroupName --promiscuous-mode=false
- 流量调整(Shaping):
-
验证配置:
- 再次运行
esxcli network vswitch standard list
,确认策略已生效。
- 再次运行
-
注意事项:
- 分布式交换机建议通过vCenter的CLI(如
vicfg-*
工具)或UI配置。 - 修改前备份配置:
vim-cmd hostsvc/net/query
。
- 分布式交换机建议通过vCenter的CLI(如
在ESXi 8.0中通过命令行管理流量策略需依赖esxcli工具,以下是实践经验和操作步骤:
-
查看流量策略
- 安全策略:
esxcli network vswitch standard policy security get -v vSwitch0
查看混杂模式/MAC更改/伪传输状态 - 流量调整:
esxcli network vswitch standard policy shaping get -v vSwitch0
获取带宽限制配置 - VLAN策略:
esxcli network vswitch standard list
查看端口组VLAN ID
- 安全策略:
-
配置策略
- 启用混杂模式:
esxcli network vswitch standard policy security set -v vSwitch0 --allow-promiscuous=true
- 设置带宽限制(单位Kbps):
esxcli network vswitch standard policy shaping set -v vSwitch0 --enabled=true --avg-bandwidth=100000 --peak-bandwidth=200000 --burst-size=204800
- 配置端口组VLAN:
esxcli network vswitch standard portgroup set -p "VM Network" --vlan-id 100
- 启用混杂模式:
实践经验:
- 在安全审计场景中,曾因误启用混杂模式导致监控流量暴增,需配合防火墙规则过滤
- 带宽突发值(burst-size)设置需考虑物理网卡缓冲区,过高会导致TCP重传率上升
- 升级ESXi 8.0后发现原7.x的dvfilter命令已弃用,需改用esxcli network filter子命令
挑战:
- 分布式交换机(vDS)策略需通过vCenter REST API/PowerCLI配置,纯命令行存在局限性
- 流量策略变更后需要清除VMkernel网络堆栈缓存:
esxcli network ip interface refresh
- 多网卡绑定策略(LACP)与流量调整策略存在冲突,需通过
esxcli network nic teaming policy set
先行配置 - 调试流量过滤规则时,依赖
pktcap-uw
抓包工具解析策略生效情况,学习曲线陡峭
建议通过esxcli system configuration backup
创建备份后再进行策略修改,避免因配置错误导致宿主机失联。
-
查看现有流量策略
- 列出虚拟交换机配置:
esxcli network vswitch standard list
- 查看端口组策略:
esxcli network vswitch standard portgroup policy get -p <端口组名称>
- 列出虚拟交换机配置:
-
配置安全策略(混杂模式/MAC更改/伪传输):
esxcli network vswitch standard portgroup policy set \ --portgroup-name=<端口组名称> \ --set-security=<1启用/0禁用> \ --set-mac-change=<1允许/0禁止> \ --set-promiscuous=<1开启/0关闭>
-
调整流量策略:
- 设置负载均衡策略:
esxcli network vswitch standard policy failover set \ --vswitch-name=vSwitch0 \ --lb=loadbalance_srcid
- 配置流量调整参数:
esxcli network vswitch standard policy shaping set \ --vswitch-name=vSwitch0 \ --enabled=true \ --avg-bandwidth=100000 \ --peak-bandwidth=200000 \ --burst-size=1000000
- 设置负载均衡策略:
注意:执行后通过esxcli network vswitch standard list
验证配置,替换示例中的vSwitch0/VMNetwork为实际对象名称。
要查看和配置ESXi 8.0的流量策略,可使用esxcli network
命令。例如,查看现有策略:esxcli network ip interface list
;配置流量策略(如带宽限制):esxcli network ip interface set -I vmk0 --shaping-enable=true --avg-bandwidth=1000 --burst-size=5000
。
延伸知识点【流量整形(Traffic Shaping)】:ESXi通过流量整形限制网络接口带宽。关键参数包括:avg-bandwidth
(平均带宽,单位Mbps)、peak-bandwidth
(峰值带宽)和burst-size
(突发流量容忍值)。此功能常用于避免虚拟机独占带宽,需在对应虚拟交换机或端口组启用策略。注意:流量整形默认禁用,启用后需通过esxcli network ip interface set
动态调整,重启后配置可能丢失,建议持久化保存。