首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用DPDK从internet/远程主机接收和捕获数据包?

如何使用DPDK从internet/远程主机接收和捕获数据包?
EN

Stack Overflow用户
提问于 2022-03-08 07:35:43
回答 1查看 665关注 0票数 0

我希望从任何主机上捕获原始数据包,并在一个像"recieved.pcap“这样的绕过内核的文件中捕获它们。为此,我使用了一个虚拟ec2实例。为了绕过内核,我已经在我的实例上设置了DPDK。我是新的网络和任何帮助将不胜感激!

我有:

  1. DPDK版本: 19.11.5安装在Amazon 2 ec2实例上。
  2. NIC绑定到DPDK : Amazon
  3. 我安装了libpcap。

我运行了testpmd应用程序,下面是输出:

代码语言:javascript
复制
[ec2-user@ip-172-31-82-187 app]$ sudo ./testpmd -l 0-3 -n 4 -- -i
EAL: Detected 8 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: No available hugepages reported in hugepages-1048576kB
EAL: Probing VFIO support...
EAL: PCI device 0000:00:05.0 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 1d0f:ec20 net_ena
EAL: PCI device 0000:00:06.0 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 1d0f:ec20 net_ena
Interactive-mode selected
testpmd: create a new mbuf pool <mbuf_pool_socket_0>: n=171456, size=2176, socket=0
testpmd: preferred mempool ops selected: ring_mp_mc

Warning! port-topology=paired and odd forward ports number, the last port will pair with itself.

Configuring Port 0 (socket 0)
Port 0: 16:61:BE:67:49:75
Checking link statuses...
Done
Error during enabling promiscuous mode for port 0: Operation not supported - ignore
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-08 15:47:27

根据拦截场景,有四个选项可以解决这个问题。

DPDK选项-1:远程终止使用带有MAC VLAN地址的单DPDK端口modification.

  • Option-2:用于远程终止使用两个没有MAC地址的DPDK端口用于本地终端使用DPDK终止到主机/客户操作系统,没有用于本地终端的数据包MAC\VLAN modification.

  • Option-4:使用DPDK从内核接口拦截数据包,不修改数据包MAC VLAN。

请按照以下步骤适当地捕捉流量。为

备选方案-1:

destination

  • Start
  1. 使用1 DPDK端口创建VM。
  2. 使用testpmd或示例应用程序l2fwd (用DPDK rte_pdump_init修改)捕获并回放到端口。
  3. 是因为MAC-address
  4. VLAN被修改为可以从远程主机转发到所需的dpdk应用程序的适当规则,例如sudo ./build/app/dpdk-pdump -- --pdump 'port=0,queue=*,tx-dev=./tx.pcap'。这将捕获从外部进入并写入tx.pcap.

的数据包。

备选方案-2:

使用两个DPDK端口创建VM,--no-mac-updating.

  • Start

  • 启动DPDK修改的应用程序(使用dpdk rte_pdump_init),或者骨架或l2fwd。

  • 用于l2fwd使用选项

dpdk应用程序,示例sudo ./build/app/dpdk-pdump -- --pdump 'port=0,queue=*,tx-dev=./tx.pcap'。这将捕获从外部进入并写入tx.pcap的数据包。

备选方案-3:

sudo ./build/basicfwd -l 2 --vdev=net_tap0,mac="mac address of DPDK port" -a <PCIe BDF>.

  • Within

  • 使用1 DPDK端口(AMAZON )

  • 创建VM,用适当的UIO驱动程序

  • 启动DPDK应用程序(如basicfwd linux终端

  • 添加所需的路由入口)绑定所需的DPDK端口(WAN)。

  • 使用linux、python或任何数据包捕获应用程序从dtap0接口抓取RX\TX或双向的数据包。

G 253

备选案文-4:

使用1 DPDK端口(AMAZON )创建VM,确保接口与内核driver.

  • ensure绑定,接口能够使用ping -I <interface name> stackoverflow.com

  • run dpdk修改后的应用程序(如basicfwd或l2fwd与rte_pdump_init )绑定到外部网络(例如,使用DPDK应用程序./build/l2fwd -l 2 --vdev=net_pcap0,iface=<interface name> -- -p 1 -T 1 --no-mac-updating)

  • capture数据包)。示例:sudo ./build/app/dpdk-pdump -- --pdump 'port=0,queue=*,tx-dev=./tx.pcap'

注意:

case.

  • recommendation
  • 指的是使用for use DPDK PDUMP option 3,因为它消除了对DPDK辅助进程的需求,并禁用了ASLR.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71391465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档