1. 程式人生 > >vultr 上實現高可用冗餘浮動公網IP出口(使用BIRD+BGP協議)High Availability on Vultr with Floating IP and BGP

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