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使用心得(一)初步安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EasyRecovery15版本电脑数据
- 下一篇: 纯红——三色配色篇