pktgen 常用命令

以下是 pktgen 常用命令的分类整理和详细说明:


一、基本配置命令

命令格式说明
pktgen.set("all", "count", 0) 设置发送包数(0=无限发送)
pktgen.set("0", "size", 64) 设置端口0的包大小为64字节
pktgen.set_ipaddr("0", "dst", "10.0.0.2") 设置端口0的目标IP地址
pktgen.set_mac("0", "dst", "00:11:22:33:44:55") 设置端口0的目标MAC地址
pktgen.vlan("0", "enable") 在端口0启用VLAN标签

二、流量控制命令

命令格式说明
pktgen.start("0") 启动端口0的流量发送
pktgen.stop("all") 停止所有端口的流量发送
pktgen.set("0", "rate", 50) 设置端口0的发送速率为最大能力的50%
pktgen.pause("Message", 2000) 显示消息并暂停2秒

三、统计信息命令

命令格式说明
pktgen.port_stats("all", "port") 显示所有端口的实时统计(包数/带宽)
pktgen.portStats(0, "port") 获取端口0的统计对象(Lua脚本中使用)
pktgen.clr() 清除所有端口的统计计数器
pktgen.link_state() 显示所有端口的链路状态

四、范围(Range)功能命令

命令格式说明
pktgen.range.dst_ip("0", "start", "10.0.0.1") 设置端口0的目标IP起始地址
pktgen.range.src_port("0", "min", 1000) 设置端口0的源UDP端口起始值
pktgen.range.proto("tcp") 设置生成流量的协议类型
pktgen.range("0", "on") 启用端口0的范围模式(生成多样化流量)

五、协议栈配置命令

命令格式说明
pktgen.arp("all", "enable") 在所有端口启用ARP协议
pktgen.set_proto("0", "udp") 设置端口0使用UDP协议
pktgen.set_type("0", "ipv4") 设置端口0生成IPv4报文

六、调试与信息命令

命令格式说明
pktgen.screen("off") 关闭屏幕刷新(提升性能)
pktgen.delay(500) 延迟500毫秒(Lua脚本中使用)
pktgen.page("0") 切换到主信息页面
pktgen.help() 显示内置命令帮助

七、高级功能命令

命令格式说明
pktgen.load("test.lua") 加载并执行Lua脚本
pktgen.set("all", "burst", 64) 设置突发包数量为64
pktgen.mac_from_arp("enable") 自动从ARP表获取MAC地址

八、退出命令

命令格式说明
pktgen.quit() 安全退出pktgen程序

典型使用场景示例:

  1. 快速启动测试
bash
 
pktgen -l 0-3 -n 4 -- -P -m "[1:2].0" # 绑定CPU核心
set 0 rate 30      # 设置端口0速率为30%
start 0            # 开始发送
  1. 查看实时统计
bash
 
page stats          # 切换到统计页面
page port 0         # 查看端口0详细信息
  1. Lua脚本控制
lua
 
pktgen.set("all", "burst", 128)
pktgen.delay(1000)  -- 延迟1秒

重点说明:

  1. 速率单位set rate命令的百分比基于理论最大值(如10G端口100%=10Gbps)
  2. 突发传输:较大的burst值可以提高吞吐量,但会增加延迟
  3. 范围模式:通过range命令生成多IP/多端口的流量模式,用于:
    • 测试负载均衡设备
    • 模拟真实网络流量
    • 绕过交换机的流表限制

建议结合-f参数使用预定义流配置文件,或通过Lua脚本实现复杂测试逻辑。

posted @ 2025-03-20 14:16  你说夕阳很美  阅读(29)  评论(0)    收藏  举报