业务需求: 使用一个虚拟物理端口安装一个公网IP(并使用quagga和接入设备建立BGP peer)
STEP1:配置static的物理网卡(两块)
STEP2:配置dummy0的虚拟interface用于设置公网IP
STEP3:安装quagga
STEP4:开启路由功能(并关闭urpf)
STEP1:
CENTOS6/CENTOS7的解决方案是:(差异不大)
vi /etc/sysconfig/network-scripts/ifcfg-enp8s0f0
// centos6是eth5 centos7变成了enpxxx的格式
DEVICE=enp8s0f0
TYPE="Ethernet"
HWADDR=6C:92:BF:65:43:74
BOOTPROTO=static
IPADDR=11.11.11.11
NETMASK=255.255.255.252
ONBOOT=yes
ETHTOOL_OPTS="speed 10000 duplex full autoneg on"
STEP2:
CENTOS6的配置方式是:
vi /etc/sysconfig/network-scripts/ifcfg-dummy0
DEVICE=dummy0
BOOTPROTO=static
TYPE="Ethernet"
ONBOOT=yes
IPADDR=170.33.33.33
NETMASK=255.255.255.255
但CENTOS7中不支持直接配置DUMMY0,必须使用tunctl进行安装
tunctl -t tap0 -u root
回显:Set ‘tap0‘ persistent and owned by uid 0
ifconfig tap0 170.33.33.33 netmask 255.255.255.0 promisc
ifconfig tap0
https://blog.csdn.net/weixin_41701302/article/details/79255802
STEP3:安装quagga 这个和CENTOS6区别不大,但需要先在selinux中关闭zebra
setsebool -P zebra_write_config 1
yum install quagga -y
cp /usr/share/doc/quagga-0.99.23.1/zebra.conf.sample /etc/quagga/zebra.conf
cp /usr/share/doc/quagga-0.99.23.1/bgpd.conf.sample /etc/quagga/bgpd.conf
service zebra restart
service bgpd restart
mkdir /home/work
mkdir /home/work/quagga
mkdir /home/work/quagga/log
chmod -R 777 /home/work/
vtysh
configure terminal
log file /home/work/quagga/log/zebra.log
exit
write
exit
/etc/init.d/./zebra restart
cat /home/work/quagga/log/zebra.log
否则在查看log时会报错:Could not lock pid_file /var/run/quagga/zebra.pid, exiting
STEP4:CENTOS6的配置方法是:
vim /etc/sysctl.conf
修改net.ipv4.ip_forward =1 允许路由转发
net.ipv4.conf.default.rp_filter = 0 允许多端口转发
当上述方法不能生效时,可以继续通过以下方法逐一修改端口的转发参数
head /proc/sys/net/ipv4/conf/*/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/enp8s0f0/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/enp8s0f1/rp_filter
head /proc/sys/net/ipv4/conf/*/rp_filter
service network restart
CENTOS7按此方法配置后不能完全解决问题,需要再加一个配置
sysctl net.ipv4.conf.all.rp_filter=0
http://jensd.be/468/linux/two-network-cards-rp_filter
脚本模式如下:
echo "net.ipv4.conf.all.rp_filter=0" >> /etc/sysctl.conf
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
echo 0 > /proc/sys/net/ipv4/conf/eth4/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/eth5/rp_filter
sysctl -p
sysctl -a | grep \\\.rp_filter
综上:多网卡情况下的网络接入问题实现了从CENTOS6到CENTOS7的搬迁