前言廢話
在與他人進行 BGP 時,主流好像都是使用 GRE 隧道比較多。前些時間在研究 iBGP,由於我的其中一端並沒有固定 IP ,所以我打算使用 Wireguard 來打通這個隧道。
但由於 Wireguard 會將這個路由寫進內核裡,導致我踩到了一個大坑,而我當時不知道這將嚴重影響 BGP 運作。爬文將近一個禮拜的時間才發現,特此將方法筆記在這裡。
開始操作
這篇文章會用 IPv6 舉例,但相信聰明的你,也應該有辦法將他配置於 IPv4 上。
伺服器端
主要重點就是告知 Wireguard 不要修改路由,並透過 PostUp 來新增 Peer。
[Interface]
PrivateKey = SERVER_PRIVATE_KEY
ListenPort = 51820
SaveConfig = false
Table = off
PostUp = ip addr add [這端的IPv6位址]/64 peer [對方的IPv6位址]/64 dev %i
[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = ::/0
客戶端
其實就也差不多啦,反向操作而已。
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Table = off
PostUp = ip addr add [這端的IPv6位址]/64 peer [對方的IPv6位址]/64 dev %i
[Peer]
PublicKey = SERVER_PUBLIC_KEY
AllowedIPs = ::/0
Endpoint = SERVER_IP_ADDRESS:PORT
PersistentKeepalive = 1
結語
到這邊並使用 wg-quick 將其上線,並嘗試 Ping 看看,這邊就大功告成了。
希望不會有人跟我踩到一樣的坑,然後查很久。QQ