立即注册
查看: 2378|回复: 0

[原创] 干货 | LS1028A开发板网络应用测试

已绑定手机
发表于 2020-12-16 13:27:46 | 显示全部楼层 |阅读模式 来自 河北省保定市
本文硬件平台以飞凌嵌入式OK1028A-C开发板为基础进行讲解,其它LS1028产品,由于各个厂家设置不同会有所差异,请参考使用。本文档主要介绍 NXP LS1028A开发板网络中的应用测试。包括 DPDK基本环境测试、 IPSEC基本环境测试、OpenSSL基本环境测试、Lighttpd测试、Samba测试。

LS1028A开发板网络应用测试

OK1028A-C平台基于NXP LS1028A处理器设计,双核ARM Cortex-A72,主频最高1.5GHz,板载2GB DDR4 RAM,8GB ROM;原生支持6个Gbit Ethernet,支持TSN的以太网交换机和以太网控制器,可支持融合的IT和OT网络;

OK1028A-C所采用的CPU属于NXP Layerscape®通信处理器,在网络吞吐性能方面更具优势,而且原生网口数量也比较多,下面对LS1028A开发板在网络中的应用进行测试。
一、 Samba测试

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

飞凌LS1028A平台默认安装samba服务,可以通过网络访问OK1028A-C的SATA硬盘等存储设备。

安装samba

root@forlinx:~# apt-get install samba

创建用户及共享目录

root@forlinx:~# groupadd share

root@forlinx:~# useradd share -g share

root@forlinx:~# smbpasswd -a share

根据提示输入密码

root@forlinx:~# chmod 777 -R /share

修改配置文件:

root@forlinx:~# vi /etc/samba/smb.conf

文件末尾加上如下

[share]

comment = Share Folder require password

browseable = yes

path = /share

create mask = 0777

directory mask = 0777

valid users = share

force user = nobody

force group = nogroup

public = yes

writable = yes

available = yes

如果您对配置文件有修改,请重启samba:

root@forlinx:~# systemctl restart smbd.service

Windows访问测试:

查看开发板IP:

在同一局域网内的windows上打开运行,输入\\192.168.1.200

65d7e2344c62fd0bb4ec9ae4d23a8758.png

629a1425ce8cec5ed137b61f0eca5820.png

访问用户名和密码,即可看到文件系统/share目录中的文件
二、 Lighttpd测试

飞凌LS1028平台lighttpd服务默认开机启动,为matrix桌面提供Web服务。输入开发板IP,即可将matrix桌面显示在浏览器中。

c98e922c15b9db3c56fb4f1db6c76a4a.png
三、 OpenSSL基本环境测试

安全套接字层(Ssl)协议是应用最广泛的应用协议,通过使用诸如aes、des和3des等密码算法对数据进行加密,在传输过程中对数据进行保护。

测试对称加密rsa速度

root@forlinx:~# openssl speed rsa1024

ede344b3fa330f22c9230736f7b55dae.png

测试AES对称加密算法:

root@forlinx:~# dd if=/dev/urandom of=test bs=1 count=5922

root@forlinx:~# openssl enc -aes-128-cbc -e -in test -out test.enc -pass pass:123 -pbkdf2

root@forlinx:~# openssl enc -aes-128-cbc -d -in test.enc -out test.dec -pass pass:123 -pbkdf2

root@forlinx:~# diff test test.dec

171f512715e21972c90f635ce60a5357.png

测试DES对称加密算法:

root@forlinx:~# dd if=/dev/urandom of=test bs=1 count=5922

root@forlinx:~# openssl enc -des-ede3-cbc -e -in test -out test.enc -pass pass:123 -pbkdf2

root@forlinx:~# openssl enc -des-ede3-cbc -d -in test.enc -out test.dec -pass pass:123 -pbkdf2

root@forlinx:~# diff test test.dec

c4f22bb0a1974cb30d901d220f80c154.png

四、 IPSEC基本环境测试

该项功能设置较为复杂,建议在一定网络基础上开展。需要打开内核netfilter match ipsec功能,否则iptables不能被正常设置;如果提示raw表失败,可以不导入raw表,或者内核配置加raw表。

Gateway moon为OK1028A-Ceno0 swp0网口。其它client为标准pc机。

网络拓扑结构:

8a97a59c4a7a014b00c0a30ca321f752.png

子网192.168.0.0/24使用ipsec加密通信,子网192.168.1.0/24使用明文通信。

重新配置内核

Networking support --->

Networking options --->
Network packet filtering Framework (Netfilter) --->

Core Netfilter Configuration --->
<*> IPsec "policy" match support
Networking support --->

Networking options --->
Network packet filtering framework (Netfilter) --->

IP: Netfilter Configuration --->

<*> raw table support (required for NOTRACK/TRACE)

安装Strongswan

apt-get install strongswan

所有使用ipsec的主机及网关均需安装,非root权限需要加sudo。

Gateway moon设置

/etc/ipsec.conf

/etc/ipsec.secrets

/etc/strongswan.conf

/etc/ipsec.d/

ipsec.d目录存放CA证书、私钥和公钥

44dc1885900fa36f42da5c11147cb14c.png

1 路径:OK1028A-C(Linux)用户资料\工具\ipsec

moon相关文件参照moon_server.tar.bz2

导入iptables

iptables-restore < moon_iptables_1028.txt

ifconfig eno2 up

ifconfig swp0 up

ifconfig swp0 192.168.0.1

ifconfig eno0 192.168.1.250

Roadwarrior carol设置

/etc/ipsec.conf

/etc/ipsec.secrets

/etc/strongswan.conf

/etc/ipsec.d/

ipsec.d目录存放CA证书、私钥和公钥

f5425a523f322c5710b5e9b547118e30.png

1 路径:OK1028A-C(Linux)用户资料\工具\ipsec

相关文件见carol_client.tar.bz2

导入iptables

sudo iptables-restore < carol_iptables.txt

sudo ifconfig eth0 192.168.0.100

Client alice设置

alice位于192.168.1.0/24网段内,需要设置192.168.0.0/24网关地址

sudo ifconfig eth0 192.168.1.107

sudo route add -net 192.168.0.0/24 dev eth0

sudo route add -net 192.168.0.0 gw 192.168.0.1 netmask 255.255.255.0

启动ipsec

a、在moon网关上执行

ipsec restart

b、在carol主机上执行

ipsec restart

ipsec up home

3fa641cf7a60dbab0a7aded64f4a1a9c.png

出现connection 'home' established successfully表示ipsec认证完成。

carol和alice的ping通信

目前位于不同网段的carol和alice具备通信功能,且carol所在子网内使用加密通信。

carol主机对alice主机的ping。

5d22bdc65892f99780d4103f969cff32.png

在网关192.168.0.1和192.168.0.100之间传递的是ESP密文,经过解析产生了192.168.1.107对192.168.0.100回复的明文。

五、 DPDK基本环境测试

DPDK是用户空间包处理的框架,专注于网络应用中数据包的高性能处理,具体体现在DPDK应用程序是运行在用户空间上,利用自身提供的数据平面库来收发数据包,绕过了Linux内核协议栈对数据包的处理过程。OK1028A-C平台支持完整的DPDK环境,同时支持OVS-DPDK,底层基于DPDK的Open VSwitch。

DPDK的知识库:

http://doc.dpdk.org/guides-17.05/linux_gsg/index.html

下面以二层转发和三层转发为例,测试OK1028A-C平台的DPDK环境。首先,使用DPDK环境,需要修改设备树,将网络配置到用户态。需要使用到的设备树文件:

mv /boot/OK1028A-C.dtb /boot/OK1028A-C.dtb.bak
cp /boot/OK1028A-C-DPDK.dtb /boot/OK1028A-C.dtb
reboot
cd /usr/local/dpdk/enetc/
./dpdk_configure_1028ardb.sh
测试DPDK完成后恢复默认配置方法:
cp /boot/OK1028A-C.dtb.bak /boot/OK1028A-C.dtb
reboot

1、 二层转发测试
二层转发网络拓扑如下图所示:

756ddf385751712c568b5f5bf96d8306.png

使用OK1028A-C平台eno0和swp0,对Linux Host和OK1012A-C之间的数据进行转发。Linux Host和OK1012A-C您可以替换成其他的网络设备。

配置OK1028A-C:
l2fwd -c 0x3 -n 1 -- -p 0x3 -q 1 --no-mac-updating
参数说明-cCore mask 0xf使用2核-n内存通道数-pPort mask 0xc二进制0011使用port1 port0-q每个核的队列数量默认为1--no-mac-updating转换后不替换MAC

配置OK1012A-C:
ifconfig eth0 192.168.1.200
tcpdump -i eth0 -vv -n -e

配置Linux Host:
ifconfig eth0 192.168.1.120
sudo modprobe pktgen.ko
echo "add_device eth0" > /proc/net/pktgen/kpktgend_0
echo "dst_mac 6e:56:7d:85:ce:4d" > /proc/net/pktgen/eth0
echo "dst 192.168.1.200" > /proc/net/pktgen/eth0
echo "pkt_size 64" > /proc/net/pktgen/eth0
echo "count 1000000" > /proc/net/pktgen/eth0
echo "start" > /proc/net/pktgen/pgctrl
注意:如果您的主机不含有pktgen驱动,请自行配置内核编译驱动。

查看OK1028A-C:

c2274b8c6842e339d7b24a08f509e09e.png

查看OK1012A-C:

3baf9407fc400e4a8d80f57065d9512c.png

2、 三层转发测试

三层转发网络拓扑如下图所示:

23278c19dccad2f0853377564ea6edf5.png

使用OK1028A-C对192.168.1.0网段和192.168.2.0网段之间的数据进行转发。

配置OK1028A-C:

DPDK中自带的l3fwd lpm路由表与我们的网络拓扑环境不一致,因此需要修改代码,修改OK1028-linux-fs/flexbuild/packages/apps/dpdk/examples/l3fwd/l3fwd_lpm.c

dc27cebd9a9a39d92ea88c992455ef8e.png

修改说明:
收到的192.168.1.0/24网段数据使用port0输出
收到的192.168.2.0/24网段数据使用port1输出

在flex-build环境中使用flex-builder -c dpdk -a arm64 -m ls1028ardb 命令进行编译。将编译完的可执行程序packages/apps/dpdk/examples/l3fwd/build/l3fwd拷贝到开发板根目录。

/l3fwd -c 0x3 -n 1 -- -p 0x3 -P -L --config="(0,0,0),(1,0,1)" \
--eth-dest=0,74:27:ea:f7:8e:10 --eth-dest=1,6e:56:7d:85:ce:4d

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NwZWFyODAw,size_16,color_FFFFFF,t_70.jpg

配置OK1012A-C:
ifconfig eth0 192.168.2.2
tcpdump -i eth0 -vv -n -e

配置Linux Host:
ifconfig eth0 192.168.1.120
modprobe pktgen.ko
echo "add_device eth0" > /proc/net/pktgen/kpktgend_0
echo "dst_mac E2:1C:5E:C0:19:88" > /proc/net/pktgen/eth0
echo "dst 192.168.2.2" > /proc/net/pktgen/eth0
echo "pkt_size 64" > /proc/net/pktgen/eth0
echo "count 1000000" > /proc/net/pktgen/eth0
echo "start" > /proc/net/pktgen/pgctrl

查看OK1012A-C:

4e88e0f520c50c7d92045bd0ea598a09.png

六、 OVS-DPDK基本环境测试

注意:LS1028A开发板测试openvswitch时需要开启内核CONFIG_OPENVSWITCH配置。

695e9c988d5064fc8bb3bfe940e8351f.png

本节简单介绍利用ovs-dpdk搭建如下图的二层交换环境。

e9a877b12f5a5c9b7a839c259a9d6dd3.png

测试前请确保使用的是支持DPDK的设备树,同时执行过./dpdk_configure_1028ardb.sh

203b9d8999a4713fab02b540b3e78d0b.png

使用网线连接Host1、OK1028A-C、Host2,使用以下命令测试转发性能:
Host1:iperf3 -s
Host2:iperf3 -c 192.168.1.120 -i 1 -t 60

6707f492cd1bfc0a933b313f096c7e32.png

七、 TSN测试

1、 Enetc PTP对时测试

注意:ptp测试时需要先使用apt-get install linuxptp命令安装测试工具,默认内核没有开启enetc的硬件时间戳,测试时请打开内核FSL_ENETC_HW_TIMESTAMPING配置项。

20b49b90fa2ef00adfd9a61f72a83526.png

将两块ls1028的eno0使用网线直连,并分别设置以下参数:
Ls1028-A:
ifconfig eno0 up
ifconfig eno0 192.168.2.2

Ls1028-B:
ifconfig eno0 up
ifconfig eno0 192.168.2.3
ping 192.168.2.2
保证网络能够ping通,查看内核配置是否正确,是否支持硬件时间戳

96cbaf4818cc750d883d7b352d51ac67.png

环境设置完成之后进行如下测试:
Ls1028-A:
ptp4l -i eno0 -m -2

8e2e277959309ec21fd29c3f03f70ebe.png

Ls1028-B:
ptp4l -i eno0 -s -m -2

91123c8b13d9cdcee3eed6a6155e144e.png

master offset值表示从主设备测量的偏移量(以纳秒为单位);
s0,s1,s2表示时钟伺服器的不同状态,s0表示未锁定,s1表示正在同步,s2表示锁定,锁定状态表示不会再发生阶跃行同步,只是缓慢调整。

2、Switch PTP对时测试

注意:ptp测试时需要先使用apt-get install linuxptp命令安装测试工具。

将两块ls1028的swp0使用网线直连,并分别设置以下参数:
Ls1028-A:
ifconfig eno2 up
ifconfig swp0 up
ifconfig swp0 192.168.2.2
Ls1028-B:
ifconfig eno2 up
ifconfig swp0 up
ifconfig swp0 192.168.2.3
ping 192.168.2.2
保证网络能够ping通,查看内核配置是否正确,是否支持硬件时间戳

d8391d6df609b0fef2f7e5a5788c2519.png

环境设置完成之后进行如下测试:
Ls1028-A:
ptp4l -i swp0 -m -2

c7d4c0b4449bd7d2b09bbe0a9515c6f2.png

Ls1028-B:
ptp4l -i swp0 -m -2 -s

a403f6a4382cb62fa3ede42157406505.png

master offset值表示从主设备测量的偏移量(以纳秒为单位);

s0,s1,s2表示时钟伺服器的不同状态,s0表示未锁定,s1表示正在同步,s2表示锁定,锁定状态表示不会再发生阶跃行同步,只是缓慢调整。

&#216; Enetc Qbv测试

tc qdisc add dev eno0 root handle 1: mqprio num_tc 8 map 0 1 2 3 4 5 6 7 hw 1

测试前保证eno0的网络畅通

c10764cffdb0946004f345030dc7edac.png

cat > qbv0.txt << EOF
t0 00000000b 20000
EOF
tsntool
tsntool> verbose
tsntool> qbvset --device eno0 --entryfile ./qbv0.txt
tsntool> quit
ping 192.168.1.1

45083165de05ff966a22efe3f33b4549.png

可见所有的gate关闭之后,网络已经不通。
TSN关于更详细的测试内容请参考NXP LSDKUG_Rev20.04.pdf

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表