pktgen工具可以在同一个端口发送不同类型的网络包吗?

Can the pktgen tool be used to send different types of network packets on one port?

最近在用pktgen搭建一个模拟DDoS的网络包发送工具attacks.The我现在写的脚本可以用四个端口发送四种不同类型的网络包。代码如下

package.path = package.path ..";?.lua;test/?.lua;app/?.lua;"
pktgen.ports_per_page(4);

pktgen.range.dst_mac("all", "start", "0011:2233:4455");
pktgen.range.src_mac("all", "start", "0033:2233:4455");

pktgen.range.dst_ip("all", "start", "10.12.0.1");
pktgen.range.dst_ip("all", "inc", "0.0.0.2");
pktgen.range.dst_ip("all", "min", "10.12.0.1");
pktgen.range.dst_ip("all", "max", "10.12.0.64");

pktgen.range.src_ip("all", "start", "10.13.0.1");
pktgen.range.src_ip("all", "inc", "0.0.0.3");
pktgen.range.src_ip("all", "min", "10.13.0.1");
pktgen.range.src_ip("all", "max", "10.13.0.64");

pktgen.range.dst_port("all", "start", 1234);
pktgen.range.dst_port("all", "inc", 4);
pktgen.range.dst_port("all", "min", 1234);
pktgen.range.dst_port("all", "max", 2345);

pktgen.range.vlan_id("all", "start", 1);
pktgen.range.vlan_id("all", "inc", 0);
pktgen.range.vlan_id("all", "min", 1);
pktgen.range.vlan_id("all", "max", 4094);

pktgen.range.pkt_size("all", "start", 128);
pktgen.range.pkt_size("all", "inc", 2);
pktgen.range.pkt_size("all", "min", 64);
pktgen.range.pkt_size("all", "max", 1518);

pktgen.set_range("all", "on");
pktgen.range.ip_proto("0","tcp");
pktgen.range.ip_proto("1","tcp");
pktgen.range.ip_proto("2","udp");
pktgen.range.ip_proto("3","udp");
pktgen.set("all","rate",100);
pktgen.range.tcp_flags("0","0x2");
pktgen.range.tcp_flags("1","0x10");
pktgen.range.tcp_flags("2","0x5");
pktgen.range.tcp_flags("3","0x7");
pktgen.range.pad_fpath("all","/root/pktgen-3.1.2_work/scripts/payload.txt");

如代码所示,我用4个端口构造了不同的TCP和UDP网络packets.I想知道是否可以只用一个端口同时发送TCP和UDP网络包,而不是使用至少两个端口来实现。

是的,您可以使用单个物理 NIC 端口生成一系列数据包 TCP/UDP/NON-IP/SCTP。要执行相同操作,请按照

中的步骤操作
  1. 创建等于各种范围的 VF 端口(在您的用例 2 中,即 TCP 和 UDP)。
  2. Insmod 与 vfdio-pci 或 igb_uio
  3. 将端口作为 2 个 DPDK 端口传递给 pktgen。
  4. main page 中使用 set all rate 50
  5. 将比率设置为 50%
  6. 使用 range page 为端口 0 设置 TCP,为端口 1 设置 UDP。