VPP二层接口,不是翻墙

简介: VPP二层接口,不是翻墙

现在我们对VPP的掌握正在逐步深入,但是通过上次的分析,我们应该把VPP主机的网络适配器类型配置为VMXNET3,以最大限度提升网络性能。

所以现在我们把VPP主机网卡数量修改为3个,NIC1用作管理接口,NIC2用作WAN口,NIC3用于LAN口。

1677236124193.jpg

这里有没有发现一个问题,那就是分明配置了VPP的接口,但是一重启配置就丢了,DPDK纳管的网卡就不见了。

1677236135949.jpg

难道是DPDK配置不见了?不是的,/etc/vpp/startup.conf中关于DPDK的配置还在。

1677236141633.jpg

那是为什么呢?

还要回到/etc/vpp/startup.conf这个启动配置文件上,该文件保存了VPP的启动参数,还有要调用的配置或命令等信息。

1677236151624.jpg

前面我们提到,在默认情况下,为了让VPP将接口绑定到 DPDK,我们需要将对应的接口DOWN掉,然后通过在VPP配置文件中绑定接口对应的PCI地址来绑定到DPDK。但是,前面通过命令操作的配置属于易失性配置,重启之后就不在了,也就是说,即使我们把接口DOWN掉了,但是重启后接口还是会UP起来。


那怎么解决呢?


比较简单的是使用开机自运行脚本,也就是修改/etc/rc.d/rc.local文件。我们在该文件中写入两条命令,用于DOWN掉接口ens224和ens256。

ip link set ens224 down
ifconfig ens256 down

重启主机试一下。

1677236172664.jpg

可以看到,接口ens224已经不见了,因为已经被DPDK纳管了。而接口ens256状态是DOWN,这部分配置还没加。

1677236196010.jpg

这里也可以看到链路速率为10 Gbps,网卡类型为VMXNET3。我们翻一下上次的网卡。

1677236188582.jpg

对比可以看到,使用E1000e时网卡型号显示为Intel 82540EM,速率为1 Gbps,没说错吧?

当然,我们再测试一下另一种方法。网卡随主机一同启动,是因为配置文件中有一行配置ONBOOT=yes,我们把随主机启动修改为no是不是可以呢?


将接口ens224的配置文件/etc/sysconfig/network-scripts/ifcfg-ens224修改如下,ens256类似。

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="no"
IPV4_FAILURE_FATAL="no"
NAME="ens224"
DEVICE="ens224"
ONBOOT=no

修改完成之后重启主机,测试一下。

1677236219131.jpg

翻车了,只是地址没有了,但是接口还是UP的。

好的,我们回到第一种方法。

接下来需要将作为LAN口的ens256也绑定到DPDK中。

dpdk    {
        dev 0000:13:00.0        {
                name eth1
                }
        dev 0000:1b:00.0        {
                name eth2
                }
}

现在接口已经纳管好了。

1677236259053.jpg

但是接口状态还是DOWN的,先配置WAN口eth1。



vppctl set interface state eth1 up
vppctl set interface ip address eth1 192.168.1.88/24


为了配置LAN接口eth2为二层口,首先创建一个环回口loop0。



vppctl loopback create-interface
vppctl set interface l2 bridge loop0 1 bvi
vppctl set interface ip address loop0 192.168.2.89/24
vppctl set interface state loop0 up


然后将接口loop0和eth2绑定到同一个网桥下。



vppctl set interface l2 bridge eth2 1
vppctl set interface state eth2 up

查看接口状态。

1677236292802.jpg

测试一下访问状况。

1677236307484.jpg

核对ARP信息。

1677236312133.jpg

没有问题。

下一个问题,就是VPP中的配置也是易失的,重启之后就没有了,我们要把它写到配置文件中。

[root@localhost ~]# vi /etc/vpp/init.dat
set interface state eth1 up
set interface ip address eth1 192.168.1.88/24
loopback create-interface
set interface l2 bridge loop0 1 bvi
set interface ip address loop0 192.168.2.89/24
set interface state loop0 up
set interface l2 bridge eth2 1
set interface state eth2 up

1677236331523.jpg

重启测试一下。

1677236343986.jpg

OK,状态正常。

相关文章
|
安全 Linux 网络安全
组网神器WireGuard安装与配置教程(超详细)
组网神器WireGuard安装与配置教程(超详细)
38376 2
|
存储 JSON 安全
Elasticsearch索引生命周期管理方案
本文主要介绍Elasticsearch索引生命周期管理如何配置和使用
1408 1
Elasticsearch索引生命周期管理方案
|
11月前
|
数据挖掘 项目管理 调度
团队管理中最重要的技能是什么?
团队管理是现代企业成功的关键,涵盖高效协作、目标设定、沟通优化等方面。面对全球化竞争,企业需通过明确目标、建立沟通渠道、定期反馈、灵活调整任务、提供资源支持、激励机制及提升协作能力等方法,利用如板栗看板等工具,实现项目高效管理和团队效能最大化。
|
Rust API 开发者
【一起学Rust | 框架篇 | ws-rs框架】属于Rust的Websocket框架——ws-rs
【一起学Rust | 框架篇 | ws-rs框架】属于Rust的Websocket框架——ws-rs
1572 0
Vuforia专题:设置AR摄像头自动对焦
这篇文章介绍了如何在Vuforia AR应用中设置摄像头自动对焦,以提高摄像头画面清晰度和识别效果,并提供了具体的代码实现步骤。
Vuforia专题:设置AR摄像头自动对焦
|
机器学习/深度学习 并行计算 PyTorch
PyTorch与CUDA:加速深度学习模型训练的最佳实践
【8月更文第27天】随着深度学习应用的广泛普及,高效利用GPU硬件成为提升模型训练速度的关键。PyTorch 是一个强大的深度学习框架,它支持动态计算图,易于使用且高度灵活。CUDA (Compute Unified Device Architecture) 则是 NVIDIA 开发的一种并行计算平台和编程模型,允许开发者直接访问 GPU 的并行计算能力。本文将详细介绍如何利用 PyTorch 与 CUDA 的集成来加速深度学习模型的训练过程,并提供具体的代码示例。
1331 1
|
算法 数据库
|
安全 Java 网络安全
Java Socket编程技术详解:从基础到进阶的全方位指南
【6月更文挑战第21天】Java Socket编程是网络通信的关键,涉及`Socket`和`ServerSocket`类。基础教程展示了如何创建简单的客户端-服务端交互,而进阶内容涵盖了非阻塞I/O、多路复用(如使用`Selector`)以提升性能,以及通过SSL/TLS确保安全通信。学习Socket编程不仅是技术实践,也是理解网络原理的过程,强调了持续学习和实践的重要性。
515 1
|
机器学习/深度学习 人工智能 物联网
快速玩转 Llama2 机器学习 PAI 最佳实践(一)低代码 Lora 微调及部署
采用阿里云机器学习平台PAI-快速开始模块针对 Llama-2-7b-chat 进行开发。PAI-快速开始支持基于开源模型的低代码训练、布署和推理全流程,适合想要快速开箱体验预训练模型的开发者。
69474 59
|
监控 数据可视化 BI
ERP系统中的财务报告与财务分析解析
【7月更文挑战第25天】 ERP系统中的财务报告与财务分析解析
685 4