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


Comments | NOTHING