1、环境准备
#yum -y install wget pciutils driverctl git quagga net-tools
2、下载dpvs rpm包(rpm包放在后面)
#cd /usr/local/src
#wget http://139.159.185.162/dpvs/dpvs-17.11.2-1.el7.x86_64.rpm
3、下载dpvs源码包(需要里面的配置文件)
#git clone https://github.com/iqiyi/dpvs
4、安装dpvs
#rpm -ivh dpvs-17.11.2-1.el7.x86_64.rpm
修改dpvs配置文件
#cp dpvs/conf/dpvs.conf.sample /etc/dpvs.conf
将该配置文件以下两行修改,其他可不改,截图如下
#vi /etc/dpvs.conf
5、配置虚拟大页
#vi /etc/sysctl.conf
加入以下内容:
vm.nr_hugepages = 8000
6、使内核参数生效
#sysctl -p
7、导入环境变量PATH
#source /etc/profile
8、创建模块依赖关系
#depmod
加载DPVS所需驱动模块
#modprobe igb_uio && modprobe rte_kni
9、查看网卡状态信息
#dpdk-devbind.py --status
10、将相关服务加入自启动
#systemctl enable dpvs && systemctl enable keepalived && systemctl enable zebra && systemctl enable ospfd
11、DPDK绑定网卡(dpdk0绑在em1上,dpdk1绑在em2上),因我们只有两张网卡,此操作会断网
#ifdown em1
#driverctl set-override 0000:02:00.0 igb_uio
#ifdown em2
#driverctl set-override 0000:02:00.1 igb_uio
12、查看是否配置成功
#dpdk-devbind.py --status
至此,dpvs安装完成
13、配置转发及OSPF
相关说明:
LIP:192.168.10.6
高防IP:192.168.10.7 192.168.10.8
远程管理IP:192.168.10.9
公网IP网关:192.168.10.1
ospf:10.0.0.2 网关10.0.0.1
14、配置OSPF
#cp /usr/share/doc/quagga-0.99.22.4/ospfd.conf.sample /etc/quagga/ospfd.conf
#vi /etc/quagga/ospfd.conf
清空配置,加入以下内容:
log file /var/log/quagga/ospf.log
log stdout
log syslog
password 123456 #可自行设置
enable password 123456 #可自行设置
interface dpdk1.kni #指定网卡为dpdk1.kni
ip ospf hello-interval 3 #存活时间,需与交换机设置一致
ip ospf dead-interval 12 #死亡时间,需与交换机设置一致
router ospf
ospf router-id 10.0.0.2 #此处ID会显示在交换机上
log-adjacency-changes
auto-cost reference-bandwidth 1000
network 10.0.0.0/30 area 0.0.0.0 #指定内外ospf的范围
network 192.168.10.7/32 area 0.0.0.0 #指定高防IP的范围
network 192.168.10.8/32 area 0.0.0.0
15、配置zebra
****# vim /etc/quagga/zebra.conf
hostname loaclhost
password 123456
enable password 123456
log file /var/log/quagga/zebra.log
service password-encryption
16、重启zebra和ospf
#systemctl restart zebra && systemctl restart ospfd && systemctl restart keepalived
17、添加dpdk路由
#dpip route add 192.168.10.0/24 dev dpdk0
18、配置DPVS的配置及路由
-
dpip addr add 192.168.10.7/32 dev dpdk1
dpip addr add 192.168.10.8/32 dev dpdk1
dpip addr add 10.0.0.2/30 dev dpdk1
dpip route add default via 10.0.0.1 dev dpdk1
19、配置dpdk1.kni
-
ip link set dpdk1.kni up
ip addr add 10.0.0.2/30 dev dpdk1.kni
ip addr add 192.168.10.6/32 dev dpdk1.kni
ip addr add 192.168.10.7/32 dev dpdk1.kni
ip route add default via 10.0.0.1 dev dpdk1.kni
确认网关是否能通
ping 10.0.0.1
20、配置ssh管理
-
dpip addr add 192.168.10.8/24 dev dpdk0
ip link set dpdk0.kni up
ip addr add 192.168.10.8/24 brd 192.168.10.255 dev dpdk0.kni
21、关闭反向路由检查
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/dpdk0.kni/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/dpdk1.kni/rp_filter
22、制作dpvs配置自启动
#vi /etc/rc.local
加入以下内容:
#dpvs自启动
/usr/local/dpvs/bin/dpvs &
sleep 20
/usr/local/dpvs/bin/dpip route add 192.168.10.0/24 dev dpdk0
/usr/local/dpvs/bin/dpip addr add 192.168.10.6/32 dev dpdk1
/usr/local/dpvs/bin/dpip addr add 192.168.10.7/32 dev dpdk1
/usr/local/dpvs/bin/dpip addr add 10.0.0.2/30 dev dpdk1
/usr/local/dpvs/bin/dpip route add default via 10.0.0.1 dev dpdk1
ip link set dpdk1.kni up
ip addr add 192.168.10.6/32 dev dpdk1.kni
ip addr add 192.168.10.7/32 dev dpdk1.kni
ip addr add 10.0.0.2/30 dev dpdk1.kni
ip route add default via 10.0.0.1 dev dpdk1.kni
/usr/local/dpvs/bin/dpip addr add 192.168.10.8/24 dev dpdk0
ip link set dpdk0.kni up
ip addr add 192.168.10.8/25 brd 192.168.10.255 dev dpdk0.kni
route add default gw 192.168.10.1 dev dpdk0.kni
#反向路由
echo “0” > /proc/sys/net/ipv4/conf/all/rp_filter
echo “0” > /proc/sys/net/ipv4/conf/dpdk0.kni/rp_filter
echo “0” > /proc/sys/net/ipv4/conf/dpdk1.kni/rp_filter
systemctl restart ospfd && systemctl restart zebra && systemctl restart keepalived
23、给予执行权限
#chmod +x /etc/rc.d/rc.local