這篇文章的性質,將偏向”紀錄”這個過程,並不是教學
本人因為在網路上搜尋不太到有人拿Pathvector來操作iBGP
所以這篇就來記錄一下,我是如何操作的
首先我在PVE中,創建一個新的vm,配置大概如下
- CPU: 100%
- RAM: 512MB
- Disk: 15G
- System: Dabian 11
接著,我們按照Pathvector的官方文黨,安裝好以下這些套件
gortr、bgpq4、keepalived、pathvector本體、bird2、wireguard
這邊可以直接複製下方指令進行安裝
apt update
apt install gortr -y
apt install bgpq4 -y
apt install keepalived -y
curl https://repo.pathvector.io/pgp.asc > /usr/share/keyrings/pathvector.asc
echo "deb [signed-by=/usr/share/keyrings/pathvector.asc] https://repo.pathvector.io/apt/ stable main" > /etc/apt/sources.list.d/pathvector.list
apt update && apt install -y pathvector
apt install bird -y
apt install wireguard -y
接下來,進到/etc/pathvector.yml,把該填寫好的資訊都填寫上去
這邊要注意的是,有畫紅線的地方,需自行填寫自己的資訊
然而,因為這邊是我家,所以source6後面我寫::2
prefixes的地方,為了要讓IXVM知道::2/64在我家
所以這邊不能填寫/48,要寫成/64>< 我一開始就是寫成/48,讓IXVM收不到我的表
下方就是打上wireguard,如何配置可以參考CRE哥哥的Blog –> 適用於 BGP 使用的 Wireguard 隧道
這邊要提醒的是,在打p2p的時候,IPv6要使用Private的IP
假如說我今天要做iBGP的段是2a12:dd47:3026::/48
那麼我在打p2p的時候,段就不能用這個段
所以我一律都是去Gemini生成一段IPv6 /48的段出來給我做Private IP
可以互相ping到,就表示成功了
接著把上面的打p2p的IP,填入pathvector config中,neighbors裡面
填好後兩邊都reload pathvector的config
輸入以下指令
pathvector g
reload好後,輸入以下指令,查看有沒有連線成功
birdc s p
如果成功,後面將會顯示Established
如果是Active,又或者出現其他的,那可能需要查看步驟是否哪裡做錯
這時候我們可以使用birdc s p a [對方的連線protocol]來查看發表情況
從下列這張表,我們可以看到
我家發了一張表出去,收到了IXVM發給我的全表
但是IXVM那邊沒有收到我家發出去的表
那這是為甚麼呢?
因為IXVM那邊import現在正在驗段的RPKI
因為我是發/64給IXVM,我這個段的RPKI只有48,所以會invaild rejected
那這時候,我們就必須手動調整bird的設定
輸入以下指令
nano /etc/bird/ASxxxxxx_xxxx.conf
把系統自動驗證的東西,手動mark掉
好了後儲存退出
打上birdc c,reload bird的config
nice,現在兩邊都成功收表,成功發表
這時候你會發現,欸?,我不是都已經收表了,為甚麼還是沒辦法用自己的段mtr出去
那是因為你還沒將自己的段加到網卡中
輸入指令
ip addr add [自己的段::2/64] dev [你的網卡]
添加完後,這時候我們可以來查看有沒有添加成功
輸入指令
ip a
確認以下資訊
接著讓我們mtr dns.hinet.net一下
耶,我們成功在家中,使用Pathvector來操作iBGP
這邊跟大家科普一下小知識
如果我想直接用/48的話,就不要打iBGP,直接打L2的Tunnel會快蠻多的
像是gretap、vxlan這些
iBGP主要是L3,L3層面需要有路由才能走
例如,如果我像上面用::2/48的話
從我家對ixvm發::2/64
我需要讓ixvm知道::2在p2p的private IP後面
不然ixvm又不知道::2在哪裡,ARP表又沒有
這,就叫做L3交付,透過路由的部分
L2交付就是打ARP能過的隧道交付,不需要路由
廣播甚麼都能過的隧道
如果有甚麼寫的不對的地方,歡迎在下方留言區留言! 讓我知道我哪裡有做錯了!
過程感謝Jord、CRE提供協助。
您好,能做一篇使用bird2建iBGP將上游廣播出去的IPv6接回自己家
上游例如Vultr廣播出去的IP打隧道到家中Bird軟路由
能在家中使用自己的IPv6上網、開服務
想了解雙方bird設定
感謝
您好,由於我手邊沒有Vultr的機器,可能沒辦法嘗試
但如果是想使用Vultr收表的話,可以參考這篇
https://blog.cre0809.com/archives/727/
正確收表之後,使用像是wireguard、GRE這類的隧道打回家
然後將您的電腦IPv6預設匝道指向那台收表的vm
基本上應該就可以使用IPv6上網囉!
那上面有提到想了解雙方bird設定
雖然我的架構也是用bird,但我這邊是使用控制bird的Pathvector
bird設定這邊可能還要再參考其他人的文章,這樣