升級到 Bird2

前言廢話

前些時間終於將所有機器從 Bird 1.6.8 升級到 Bird 2.0.7 了。這中間最有感觸的大概就是效能以及 IPv4 跟 IPv6 終於不用分開寫。不過在這兩者之間,有些許不同的寫法,所以在此筆記一下。

段落

以下會將常用的段落分開說明。

Kernel

在 Kernel 段落中,最大的不同就是要告訴他,這段內容是給 IPv4 還是 IPv6 的。如下:

protocol kernel {
    ipv6 {
        import all;
        export all;
    };
}

Static

其實也差不多,在 Static 內加入 ipv4ipv6。注意:若你兩者都有,要分開寫。以下是範例:

protocol static {
    ipv4;
    route 1.1.1.0/24 via "tpe1";
}

protocol static {
    ipv6;
    route 2606:4700:4700::/48 via "tpe1";
}

BGP

在 BGP 中,需要將 importexport 等等的內容在外面包一層 ipv4ipv6,以下是範例:

protocol bgp test {
    ipv6 {
        import all;
        export filter filter1;
        #preference 100;
    };
    local fe80:123::1 as 65000;
    neighbor fe80:123::2 as 65001;
    graceful restart on;
    password "your_password_here";
}

Direct

最後,direct 的部分,則要在 import 的外面包一層 ipv4ipv6

protocol direct {
    interface "dummy*";
    ipv6 {
        import all;
    };
}

結語

基本上 Bird2 就是 config 整合了原本的 bird.conf 以及 bird6.conf 啦,且必須在文件內告訴他這個段落是給 IPv4 用的,還是 IPv6 用的。