业务需求: 使用一个虚拟物理端口安装一个公网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的搬迁 |