vultr 上實現高可用冗餘浮動公網IP出口(使用BIRD+BGP協議)High Availability on Vultr with Floating IP and BGP
官方文件:
https://www.vultr.com/docs/high-availability-on-vultr-with-floating-ip-and-bgp
https://www.vultr.com/docs/configuring-bgp-on-vultr
1、由於我們沒有自己的IP段以及自己的BGP ASN號,那麼就從官方租賃。
https://my.vultr.com/bgp/
用上面的表格填寫資料
這裡的路由表宣告,我選擇的是Default Only,默認出口只有一個的時候,就選擇這個。很多出口可以選擇Full Table模式。這裡我也不是很清楚。
2、關閉防火牆,關閉enforce
systemctl stop firewalld
sed -i s#SELINUX=enforcing#SELINUX=disable#g /etc/selinux/config
getenforce
3、安裝bird
yum -y install bird
yum install net-tools
4、假設第一臺伺服器的VIP是1.2.3.4,IP是1.1.1.1,第二臺伺服器的IP是2.2.2.2,當前測試環境為centos7.x
VIP需要你自己去vultr自己租賃一個公網IP,這個IP不可以繫結到其他機器!
第一臺伺服器的配置:
建立一個迴環介面,dummy1,關閉迴環介面的命令為rmmod dummy
ip link add dev dummy1 type dummy ip link set dummy1 up ip addr add dev dummy1 1.1.1.1/32
查看回環介面的IP:
# ip addr show dev dummy1
5: dummy1: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether ba:23:57:2c:ad:bc brd ff:ff:ff:ff:ff:ff
inet 192.0.2.10/32 scope global dummy1
5、
備份bird預設配置
mv /etc/bird.conf /etc/bird.conf.bak
vi /etc/bird.conf
log "/var/log/bird" all; router id 1.1.1.1; protocol device { scan time 5; } protocol direct { interface "dummy1"; } protocol bgp vultr { local as <<YOURAS>>; source address 1.1.1.1; import none; export all; graceful restart on; next hop self; multihop 2; neighbor 169.254.169.254 as 64515; password "<<YOURPASSWORD>>"; }
YOURAS
and YOURPASSWORD
是你之前第一步提交工單,vultr給你的ASN號,以及密碼。
6、這邊有一個關鍵的步驟,service bird start,啟動服務,會報錯。提示你:unable to connect to server control socket (/var/run/bird.ctl): connection refused
我插了下系統日誌/var/log/messages,提示對日誌檔案/var/log/bird沒有許可權,所以你這邊要先去建立一個這個檔案,然後給它賦權777,chmod 777
/var/log/bird
7、檢視服務bird日誌:
cat /var/log/bird