研發(fā)干貨 | LS1028A開(kāi)發(fā)板網(wǎng)絡(luò)應(yīng)用測(cè)試
本文硬件平臺(tái)以飛凌嵌入式OK1028A-C開(kāi)發(fā)板為基礎(chǔ)進(jìn)行講解,其它LS1028產(chǎn)品,由于各個(gè)廠家設(shè)置不同會(huì)有所差異,請(qǐng)參考使用。本文檔主要介紹 NXP LS1028A開(kāi)發(fā)板網(wǎng)絡(luò)中的應(yīng)用測(cè)試。包括 DPDK基本環(huán)境測(cè)試、 IPSEC基本環(huán)境測(cè)試、OpenSSL基本環(huán)境測(cè)試、Lighttpd測(cè)試、Samba測(cè)試。
LS1028A開(kāi)發(fā)板網(wǎng)絡(luò)應(yīng)用測(cè)試
OK1028A-C平臺(tái)基于NXP LS1028A處理器設(shè)計(jì),雙核ARM Cortex-A72,主頻最高1.5GHz,板載2GB DDR4 RAM,8GB ROM;原生支持6個(gè)Gbit Ethernet,支持TSN的以太網(wǎng)交換機(jī)和以太網(wǎng)控制器,可支持融合的IT和OT網(wǎng)絡(luò);
OK1028A-C所采用的CPU屬于NXP Layerscape?通信處理器,在網(wǎng)絡(luò)吞吐性能方面更具優(yōu)勢(shì),而且原生網(wǎng)口數(shù)量也比較多,下面對(duì)LS1028A開(kāi)發(fā)板在網(wǎng)絡(luò)中的應(yīng)用進(jìn)行測(cè)試。
一、 Samba測(cè)試
Samba是在Linux和UNIX系統(tǒng)上實(shí)現(xiàn)SMB協(xié)議的一個(gè)免費(fèi)軟件,由服務(wù)器及客戶端程序構(gòu)成。SMB(Server Messages Block,信息服務(wù)塊)是一種在局域網(wǎng)上共享文件和打印機(jī)的一種通信協(xié)議,它為局域網(wǎng)內(nèi)的不同計(jì)算機(jī)之間提供文件及打印機(jī)等資源的共享服務(wù)。SMB協(xié)議是客戶機(jī)/服務(wù)器型協(xié)議,客戶機(jī)通過(guò)該協(xié)議可以訪問(wèn)服務(wù)器上的共享文件系統(tǒng)、打印機(jī)及其他資源。通過(guò)設(shè)置“NetBIOS over TCP/IP”使得Samba不但能與局域網(wǎng)絡(luò)主機(jī)分享資源,還能與全世界的電腦分享資源。
飛凌LS1028A平臺(tái)默認(rèn)安裝samba服務(wù),可以通過(guò)網(wǎng)絡(luò)訪問(wèn)OK1028A-C的sata硬盤等存儲(chǔ)設(shè)備。
安裝samba
root@forlinx:~# apt-get install samba
創(chuàng)建用戶及共享目錄
root@forlinx:~# groupadd share
root@forlinx:~# useradd share -g share
root@forlinx:~# smbpasswd -a share
根據(jù)提示輸入密碼
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
如果您對(duì)配置文件有修改,請(qǐng)重啟samba:
root@forlinx:~# systemctl restart smbd.service
Windows訪問(wèn)測(cè)試:
查看開(kāi)發(fā)板IP:
在同一局域網(wǎng)內(nèi)的windows上打開(kāi)運(yùn)行,輸入\\192.168.1.200
訪問(wèn)用戶名和密碼,即可看到文件系統(tǒng)/share目錄中的文件
二、 Lighttpd測(cè)試
飛凌LS1028平臺(tái)lighttpd服務(wù)默認(rèn)開(kāi)機(jī)啟動(dòng),為matrix桌面提供WEB服務(wù)。輸入開(kāi)發(fā)板IP,即可將matrix桌面顯示在瀏覽器中。
三、 OpenSSL基本環(huán)境測(cè)試
安全套接字層(Ssl)協(xié)議是應(yīng)用最廣泛的應(yīng)用協(xié)議,通過(guò)使用諸如aes、des和3des等密碼算法對(duì)數(shù)據(jù)進(jìn)行加密,在傳輸過(guò)程中對(duì)數(shù)據(jù)進(jìn)行保護(hù)。
測(cè)試對(duì)稱加密rsa速度
root@forlinx:~# openssl speed rsa1024
測(cè)試AES對(duì)稱加密算法:
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
測(cè)試DES對(duì)稱加密算法:
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
四、 IPSEC基本環(huán)境測(cè)試
該項(xiàng)功能設(shè)置較為復(fù)雜,建議在一定網(wǎng)絡(luò)基礎(chǔ)上開(kāi)展。需要打開(kāi)內(nèi)核netfilter match ipsec功能,否則iptables不能被正常設(shè)置;如果提示raw表失敗,可以不導(dǎo)入raw表,或者內(nèi)核配置加raw表。
Gateway moon為OK1028A-Ceno0 swp0網(wǎng)口。其它c(diǎn)lient為標(biāo)準(zhǔn)pc機(jī)。
網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu):
子網(wǎng)192.168.0.0/24使用ipsec加密通信,子網(wǎng)192.168.1.0/24使用明文通信。
重新配置內(nèi)核
[*] 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的主機(jī)及網(wǎng)關(guān)均需安裝,非root權(quán)限需要加sudo。
Gateway moon設(shè)置
/etc/ipsec.conf
/etc/ipsec.secrets
/etc/strongswan.conf
/etc/ipsec.d/
ipsec.d目錄存放CA證書(shū)、私鑰和公鑰
1 路徑:OK1028A-C(Linux)用戶資料\工具\(yùn)ipsec
moon相關(guān)文件參照moon_server.tar.bz2
導(dǎo)入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設(shè)置
/etc/ipsec.conf
/etc/ipsec.secrets
/etc/strongswan.conf
/etc/ipsec.d/
ipsec.d目錄存放CA證書(shū)、私鑰和公鑰
1 路徑:OK1028A-C(Linux)用戶資料\工具\(yùn)ipsec
相關(guān)文件見(jiàn)carol_client.tar.bz2
導(dǎo)入iptables
sudo iptables-restore < carol_iptables.txt
sudo ifconfig eth0 192.168.0.100
Client alice設(shè)置
alice位于192.168.1.0/24網(wǎng)段內(nèi),需要設(shè)置192.168.0.0/24網(wǎng)關(guān)地址
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
啟動(dòng)ipsec
a、在moon網(wǎng)關(guān)上執(zhí)行
ipsec restart
b、在carol主機(jī)上執(zhí)行
ipsec restart
ipsec up home
出現(xiàn)connection 'home' established successfully表示ipsec認(rèn)證完成。
carol和alice的ping通信
目前位于不同網(wǎng)段的carol和alice具備通信功能,且carol所在子網(wǎng)內(nèi)使用加密通信。
carol主機(jī)對(duì)alice主機(jī)的ping。
在網(wǎng)關(guān)192.168.0.1和192.168.0.100之間傳遞的是ESP密文,經(jīng)過(guò)解析產(chǎn)生了192.168.1.107對(duì)192.168.0.100回復(fù)的明文。
五、 DPDK基本環(huán)境測(cè)試
DPDK是用戶空間包處理的框架,專注于網(wǎng)絡(luò)應(yīng)用中數(shù)據(jù)包的高性能處理,具體體現(xiàn)在DPDK應(yīng)用程序是運(yùn)行在用戶空間上,利用自身提供的數(shù)據(jù)平面庫(kù)來(lái)收發(fā)數(shù)據(jù)包,繞過(guò)了Linux內(nèi)核協(xié)議棧對(duì)數(shù)據(jù)包的處理過(guò)程。OK1028A-C平臺(tái)支持完整的DPDK環(huán)境,同時(shí)支持OVS-DPDK,底層基于DPDK的Open VSwitch。
DPDK的知識(shí)庫(kù):
http://doc.dpdk.org/guides-17.05/linux_gsg/index.html
下面以二層轉(zhuǎn)發(fā)和三層轉(zhuǎn)發(fā)為例,測(cè)試OK1028A-C平臺(tái)的DPDK環(huán)境。首先,使用DPDK環(huán)境,需要修改設(shè)備樹(shù),將網(wǎng)絡(luò)配置到用戶態(tài)。需要使用到的設(shè)備樹(shù)文件:
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
測(cè)試DPDK完成后恢復(fù)默認(rèn)配置方法:
cp /boot/OK1028A-C.dtb.bak /boot/OK1028A-C.dtb
reboot
1、 二層轉(zhuǎn)發(fā)測(cè)試
二層轉(zhuǎn)發(fā)網(wǎng)絡(luò)拓?fù)淙缦聢D所示:
使用OK1028A-C平臺(tái)eno0和swp0,對(duì)Linux Host和OK1012A-C之間的數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)。Linux Host和OK1012A-C您可以替換成其他的網(wǎng)絡(luò)設(shè)備。
配置OK1028A-C:
l2fwd -c 0x3 -n 1 -- -p 0x3 -q 1 --no-mac-updating
參數(shù) |
說(shuō)明 |
-c |
Core mask 0xf使用2核 |
-n |
內(nèi)存通道數(shù) |
-p |
Port mask 0xc二進(jìn)制0011使用port1 port0 |
-q |
每個(gè)核的隊(duì)列數(shù)量默認(rèn)為1 |
--no-mac-updating |
轉(zhuǎn)換后不替換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
注意:如果您的主機(jī)不含有pktgen驅(qū)動(dòng),請(qǐng)自行配置內(nèi)核編譯驅(qū)動(dòng)。
查看OK1028A-C:
查看OK1012A-C:
2、 三層轉(zhuǎn)發(fā)測(cè)試
三層轉(zhuǎn)發(fā)網(wǎng)絡(luò)拓?fù)淙缦聢D所示:
使用OK1028A-C對(duì)192.168.1.0網(wǎng)段和192.168.2.0網(wǎng)段之間的數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)。
配置OK1028A-C:
DPDK中自帶的l3fwd lpm路由表與我們的網(wǎng)絡(luò)拓?fù)洵h(huán)境不一致,因此需要修改代碼,修改OK1028-linux-fs/flexbuild/packages/apps/dpdk/examples/l3fwd/l3fwd_lpm.c
修改說(shuō)明:
收到的192.168.1.0/24網(wǎng)段數(shù)據(jù)使用port0輸出
收到的192.168.2.0/24網(wǎng)段數(shù)據(jù)使用port1輸出
在flex-build環(huán)境中使用flex-builder -c dpdk -a arm64 -m ls1028ardb 命令進(jìn)行編譯。將編譯完的可執(zhí)行程序packages/apps/dpdk/examples/l3fwd/build/l3fwd拷貝到開(kāi)發(fā)板根目錄。
/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
參數(shù) |
說(shuō)明 |
-c |
Core Mask |
-n |
內(nèi)存通道數(shù) |
-p |
Port Mask |
-P |
promiscuous mode |
-L |
使用LPM |
--config |
(Port, Queue, Core)綁定端口隊(duì)列cpu核 |
--eth-dest |
輸出端口對(duì)應(yīng)的目的MAC地址 |
配置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:
六、 OVS-DPDK基本環(huán)境測(cè)試
注意:LS1028A開(kāi)發(fā)板測(cè)試openvswitch時(shí)需要開(kāi)啟內(nèi)核CONFIG_OPENVSWITCH配置。
本節(jié)簡(jiǎn)單介紹利用ovs-dpdk搭建如下圖的二層交換環(huán)境。
測(cè)試前請(qǐng)確保使用的是支持DPDK的設(shè)備樹(shù),同時(shí)執(zhí)行過(guò)./dpdk_configure_1028ardb.sh
使用網(wǎng)線連接Host1、OK1028A-C、Host2,使用以下命令測(cè)試轉(zhuǎn)發(fā)性能:
Host1:iperf3 -s
Host2:iperf3 -c 192.168.1.120 -i 1 -t 60
七、 TSN測(cè)試
1、 Enetc PTP對(duì)時(shí)測(cè)試
注意:ptp測(cè)試時(shí)需要先使用apt-get install linuxptp命令安裝測(cè)試工具,默認(rèn)內(nèi)核沒(méi)有開(kāi)啟enetc的硬件時(shí)間戳,測(cè)試時(shí)請(qǐng)打開(kāi)內(nèi)核FSL_ENETC_HW_TIMESTAMPING配置項(xiàng)。
將兩塊ls1028的eno0使用網(wǎng)線直連,并分別設(shè)置以下參數(shù):
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
保證網(wǎng)絡(luò)能夠ping通,查看內(nèi)核配置是否正確,是否支持硬件時(shí)間戳
環(huán)境設(shè)置完成之后進(jìn)行如下測(cè)試:
Ls1028-A:
ptp4l -i eno0 -m -2
Ls1028-B:
ptp4l -i eno0 -s -m -2
master offset值表示從主設(shè)備測(cè)量的偏移量(以納秒為單位);
s0,s1,s2表示時(shí)鐘伺服器的不同狀態(tài),s0表示未鎖定,s1表示正在同步,s2表示鎖定,鎖定狀態(tài)表示不會(huì)再發(fā)生階躍行同步,只是緩慢調(diào)整。
2、Switch PTP對(duì)時(shí)測(cè)試
注意:ptp測(cè)試時(shí)需要先使用apt-get install linuxptp命令安裝測(cè)試工具。
將兩塊ls1028的swp0使用網(wǎng)線直連,并分別設(shè)置以下參數(shù):
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
保證網(wǎng)絡(luò)能夠ping通,查看內(nèi)核配置是否正確,是否支持硬件時(shí)間戳
環(huán)境設(shè)置完成之后進(jìn)行如下測(cè)試:
Ls1028-A:
ptp4l -i swp0 -m -2
Ls1028-B:
ptp4l -i swp0 -m -2 -s
master offset值表示從主設(shè)備測(cè)量的偏移量(以納秒為單位);
s0,s1,s2表示時(shí)鐘伺服器的不同狀態(tài),s0表示未鎖定,s1表示正在同步,s2表示鎖定,鎖定狀態(tài)表示不會(huì)再發(fā)生階躍行同步,只是緩慢調(diào)整。
? Enetc Qbv測(cè)試
tc qdisc add dev eno0 root handle 1: mqprio num_tc 8 map 0 1 2 3 4 5 6 7 hw 1
測(cè)試前保證eno0的網(wǎng)絡(luò)暢通
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
可見(jiàn)所有的gate關(guān)閉之后,網(wǎng)絡(luò)已經(jīng)不通。
TSN關(guān)于更詳細(xì)的測(cè)試內(nèi)容請(qǐng)參考NXP LSDKUG_Rev20.04.pdf
相關(guān)產(chǎn)品 >
-
OK1028A-C開(kāi)發(fā)板
LS028A 系列-LS1028開(kāi)發(fā)板 雙核Cortex-A72 設(shè)計(jì) TSN網(wǎng)絡(luò)支持 ,工業(yè)級(jí) LS1028A開(kāi)發(fā)板 提供了一個(gè)用于設(shè)計(jì)和評(píng)估LS1028A處理器設(shè)計(jì)核心板的平臺(tái)。支持TSN的以太網(wǎng)交換機(jī)和以太網(wǎng)控制器,可支持融合的IT和OT網(wǎng)絡(luò);支持CANFD、UART 、USB3.0、PCIe3.0、SATA3.0、IIS、IIC、SPI 等常用總線接口,并支持一個(gè)最大分辨率4K的DP接口。ls1028a 適用于工業(yè)路由器、TSN、SD-WAN、 5G CPE 、邊緣計(jì)算網(wǎng)關(guān) 、IP-PBX等產(chǎn)品,以及工業(yè)互聯(lián)、智慧工廠、工業(yè)安全、信息安全、智慧交通、能源物聯(lián)網(wǎng) 等應(yīng)用領(lǐng)域。 了解詳情 -
FET1028A-C核心板
LS1028A-C核心板基于NXP LS1028A處理器設(shè)計(jì),雙核ARM Cortex - A72,主頻最高1.6GHz,板載2GB DDR4 RAM,8GB ROM;原生支持6個(gè)Gbit Ethernet,支持TSN的以太網(wǎng)交換機(jī)和以太網(wǎng)控制器,可支持融合的IT和OT網(wǎng)絡(luò);支持CAN FD、UART、USB3.0、PCIe3.0、SATA3.0、IIS、IIC、SPI等常用總線接口,并支持一個(gè)最大分辨率4K的DP接口。適用于工業(yè)路由器、TSN、SD-WAN、5G CPE、邊緣計(jì)算網(wǎng)關(guān)、IP-PBX等產(chǎn)品,以及工業(yè)互聯(lián)網(wǎng)、智慧工廠、工業(yè)安全、信息安全、智慧交通、能源物聯(lián)網(wǎng)等應(yīng)用領(lǐng)域。 了解詳情