欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

VPP使用心得(一)初步安装

发布时间:2023/12/14 编程问答 35 豆豆
生活随笔 收集整理的这篇文章主要介绍了 VPP使用心得(一)初步安装 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

    近期想学习一下VPP中的路由管理,因此尝试安装学习。在安装过程中,发现了若干问题,最终如下方案能成功安装VPP。

1、安装ubuntu的虚机,我是在centos的服务器上安装的
    a)创建镜像:qemu-img create -f qcow2 ubuntu-18.04-vpp.qcow2 50G
    b)官网下载镜像:ubuntu-18.04.1-desktop-amd64.iso
    c)使用虚机启动脚本安装虚机镜像文件。这里需要注意的是,在安装完毕后,会要求卸载光驱,然后再重启,而我们的虚机是无法卸载这个光驱的,解决办法为,在要求重启界面输入Enter,然后等待重启,在启动界面的右上角,有个关机的按钮,关闭掉。然后修改启动脚本,去掉光驱选项后登陆。
2、安装VPP
    a)虚机保证网络的连通性,可以选择设置ens3,通过nat连接到公网
    b)保证DNS解析,即修改/etc/resolv.conf,增加nameserver 8.8.8.8
    c)更新apt,sudo apt-get update -y
    d)安装git和vim,sudo apt install git/sudo apt install vim
    e)下载vpp源码:git clone http://gerrit.fd.io/r/vpp 
    f)安装一些必要软件:sudo apt install make/make-guile/openssh-server
    g)下载安装依赖等:make install-dep/make dpdk-install-dev
    h)./extras/vagrant/build.sh编译
    i)build-root目录下 sudo dpkg -i *.deb
    注意:安装过程中,可能会出现 vpp-api-python : 依赖: python-cffi 但是它将不会被安装的错误,按照提示,使用 apt --fix-broken install来解决即可。
3、启动VPP
    a)修改/etc/vpp/startup.conf:
      cli-listen localhost:5002
      #cli-listen /run/vpp/cli.sock
    b)sudo service vpp start
    c)telnet 0 5002可以登录
4、查看VPP的接口:
vpp# show interface
              Name               Idx    State  MTU (L3/IP4/IP6/MPLS)     Counter          Count     
GigabitEthernet0/4/0              1     down         9000/0/0/0     
local0                            0     down          0/0/0/0       
注意,一开始可能只有local0,需要使用ifconfig命令把需要vpp感知的接口down掉:
sudo ifconfig ens4 down
然后重启vpp:service vpp stop / start

5、附安装虚机的脚本:

vm.sh start 20 59000  -- 启动

vm.sh stop 20 59000  -- 关闭

[root@flexbng-2 imgs]# cat vm.sh #!/bin/bash#parameter check if [ $# -ne 3 ] thenecho "start|stop dev_id vnc_port" fiaction=$1 dev_id=$2 vnc_port=$3echo "++++++++++++++++++++++" echo "action is: $1" echo "vm_type is: mix" echo "dev_id is: $2" echo "vnc_port is: $[$3+5900]" echo "++++++++++++++++++++++"#################prameter to be modified################# vm_type=mix cpu_num=4 memory=12288 ##########################################################parameter prepare tmp=$(echo $dev_id | gawk '{printf "%x", $0}') mgmt_mac=aa:bb:cc:dd:$tmp:10 fwd1_mac=aa:bb:cc:dd:$tmp:f3 fwd2_mac=aa:bb:cc:dd:$tmp:f4mgmt_if=mgmt-$dev_id-$vm_type fwd1_if=fwd1-$dev_id-$vm_type fwd2_if=fwd2-$dev_id-$vm_type vm_name=$vm_type-$dev_id SHELL_DIR=$(cd `dirname $0`; pwd)#run if [ "$action" == "start" ];thenovs-vsctl del-port br0 $mgmt_if#start mixqemu-kvm -name $vm_name \-enable-kvm \-cpu SandyBridge \-smp $cpu_num \-m $memory \-drive file=$SHELL_DIR/ubuntu-18.04-vpp.qcow2,if=virtio,media=disk,format=qcow2 \-net nic,model=e1000,macaddr=$mgmt_mac,vlan=1 \-net tap,ifname=$mgmt_if,vlan=1,script=no,downscript=no \-net nic,model=e1000,macaddr=$fwd1_mac,vlan=2 \-net tap,ifname=$fwd1_if,vlan=2,script=no,downscript=no \-net nic,model=e1000,macaddr=$fwd2_mac,vlan=3 \-net tap,ifname=$fwd2_if,vlan=3,script=no,downscript=no \-vnc :$vnc_port &sleep 3#bring management-if up & add management-if to br0ifconfig $mgmt_if 0.0.0.0 promisc upovs-vsctl add-port br0 $mgmt_if#bring forwarding-if up & add forwarding-if to forwarding-bridgeifconfig $fwd1_if 0.0.0.0 promisc upifconfig $fwd2_if 0.0.0.0 promisc up elif [ "$action" == "stop" ];then#stop mixovs-vsctl del-port br0 $mgmt_ifID=`ps -ef| grep -E "$vm_name"|grep -v 'grep'|awk '{print $2}'`for pid in $IDdokill -9 $pid done fi

注意,首次安装时,qemu-kvm里需要增加-cdrom $SHELL_DIR/ubuntu-18.04.1-desktop-amd64.iso

 

总结

以上是生活随笔为你收集整理的VPP使用心得(一)初步安装的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。