TLDK基础篇-0

发布于 2022-08-10  89 次阅读


TLDK基础

TLDK是传输层的协议栈, 其利用DPDK来负责数据链路层和网络层通信.

编译TLDK

编译后的二进制文件l4fwd在x86_64-native-linuxapp-gcc/build/examples/l4fwd/l4fwd.

git clone git@github.com:FDio/tldk.git && cd tldk
make all

搭建L4FWD运行的拓扑环境

如下图所示搭建网络拓扑.

网络拓扑

client

设置客户端网口的IP地址, 静态路由和静态ARP.

ifconfig ens4 172.16.0.2/24
route add -net 172.16.1.0/24 gw 172.16.0.1
arp -s 172.16.0.1 0c:01:38:0a:dc:01

proxy

设置代理客户端的防火墙安全组, 放行对应端口(这里将所有规则清空).

iptables -F
iptables -X

server

设置服务端网口的IP地址, 静态路由和静态ARP.

ifconfig ens4 172.16.1.2/24
route add -net 172.16.0.0/24 gw 172.16.1.1
arp -s 172.16.1.1 0c:01:38:0a:dc:02

配置l4fwd的输入文件

be

be配置文件主要负责配置网口的二三层信息(mac地址, 网段).

port=0,masklen=24,addr=172.16.0.0,mac=0c:01:38:b4:67:01
port=1,masklen=24,addr=172.16.1.0,mac=0c:01:38:27:da:01

fe

fe配置文件主要负责配置与客户端和服务端之间通信的流的信息(IP和端口号).

lcore=2,op=fwd,laddr=172.16.0.1,lport=6666,raddr=0.0.0.0,rport=0,fwladdr=0.0.0.0,fwlport=0,fwraddr=172.16.1.2,fwrport=6666

放行客户端所有IP加端口, 可从TLDK任意IP加端口传至服务端.

bash

下面是运行命令.

./l4fwd -l 0-2 -w 00:04.0 -w 00:05.0 -- --promisc --rbufs 0x100 --sbufs 0x100 --streams 0x100 --fecfg ~/tldk/config/fe.conf --becfg ~/tldk/config/be.conf -T -L port=0,lcore=0,rx_offload=0,tx_offload=0,ipv4=172.16.0.1 port=1,lcore=1,rx_offload=0,tx_offload=0,ipv4=172.16.1.1 

人生如逆旅,我亦是行人。