PTT推薦

Re: [分享] 用Wireguard+OSPF建立Site to Site

看板Broad_Band標題Re: [分享] 用Wireguard+OSPF建立Site to Site作者
AKSN74
(AKS-74n)
時間推噓 2 推:2 噓:0 →:0

這邊就多補充一些OSPF上的做法,同時稍微解釋下部分問題的原因與解法


WireGuard的Allowed Address問題

: 不過建立這個之前,有幾點需要注意:
: 1. 如果同時有多個Site要串,強烈建議每一個Site都另外用獨立的WireGuard介面,
: WireGuard的IP網段以及Port號也做區隔
: 2. 單純做終端連回(透過手機、電腦連回)的也不要跟做Site的WireGuard介面共用。
: 3. 部分RouterOS設備可能會有WireGuard的subnet設為25以上時會無法連線的狀況。
: 4. 兩端的區網網段不重疊

主要就1跟2的部分解釋

就Mikrotik官方論壇上的說法:https://bit.ly/3ippoB7

簡單來說,WireGuard會根據每一個Peer的Allowed Address來判定目標封包要發給誰
只要封包內的目標IP與Peer的Allowed Address規則符合,就會把封包發到這個Peer
但這是根據優先順序去判定的

這會造成如果Peer在主路由端的允許位址直接設定0.0.0.0/0,所有的封包只給這個Peer在同一個WG介面的其他Peer就會收不到主路由端發出的封包
變成這些Peer雖然成功連上WG,但都沒辦法VPN上網或者存取主路由端的Site

而解法是在主路由端,Allowed Address不要設0.0.0.0/0,依舊設定子路由端的WG介面IP並且多增加224.0.0.0/24以及子路由端的區網網段
https://i.imgur.com/RIkXc5Q.png

圖 用Wireguard+OSPF建立Site to Site
(註:圖片是設定224.0.0.0/8,但其實設定/24也可)

加入224.0.0.X的原因是OSPF在broadcast與ptp網路類型下
固定會使用224.0.0.5這個廣播IP來溝通 (broadcast可能還會多用224.0.0.6)
https://i.imgur.com/v9CXY0k.png

圖 用Wireguard+OSPF建立Site to Site
因此要確保廣播封包不會被WG給擋掉
而增加子路由端的區網網段則是確保發到子路由端的封包也不會被WG阻擋

另外,子路由端的Allowed Address依舊維持0.0.0.0/0的設定
而若為一般的Client(電腦、手機等),在主路由端則只要加入Client的WG介面IP即可
https://i.imgur.com/q0MBxTx.png

圖 用Wireguard+OSPF建立Site to Site
這樣一來就解決了第二點的問題,一個WG介面同時可以讓一個Site以及多個Client連線

但若要加入額外的Site,還是得另外用一個WG介面來連線
畢竟還是有224.0.0.X的發送問題
而且另外建立介面給Site使用,就管理上來說也比較能夠區分與利用
例如想要對特定Site做些控管的話就直接對該WG介面做調整即可








讓子路由端透過主路由對外

那在WireGuard+OSPF之下,要怎麼讓子路由端的對外完全透過主路由端出去呢?

這就會需要用到路由規則的部分了,以下這些設定全都在子路由端操作

1. 到Routing→Tables,建立一個新的Table,名稱自訂,FIB打勾
https://i.imgur.com/CiESy2w.png

圖 用Wireguard+OSPF建立Site to Site

2. 到Routing→Rules,建立三條規則,Dst Adress分別輸入Class A、B、C的私有網段
也就是10.0.0.0/8、172.16.0.0/12、192.168.0.0/16
其他設定都維持不變
https://i.imgur.com/sFgk8p4.png
圖 用Wireguard+OSPF建立Site to Site
這麼做的用意是避免連線到區網IP時,也全都跑到主路由端的對外連線去

3. 接著再新增一個規則,Src Address設為子路由端分享器本身的區網IP(記得加prefix)Table則修改為剛剛新建立的Table名稱
https://i.imgur.com/LGrJbD6.png

圖 用Wireguard+OSPF建立Site to Site

4. 最後到IP→Route,複製任一筆OSPF產生的路由,然後把Dst Address改成0.0.0.0/0
Routing Table則改成與第三點一樣的Table
https://i.imgur.com/czSJd9N.png
圖 用Wireguard+OSPF建立Site to Site

然後就可以連到myip去測試了,沒有設錯的話對外就會變成是主路由端的對外IP
若要暫停透過WireGuard對外,只需要進IP→Route,把該筆路由規則停用即可

另外在第三點的部分,設定分享器本身的IP上去,是讓該網段的對外都走VPN出去
如果只想針對特定的設備走VPN出去的話,只需要把Src Address改成該設備的區網IP即可要增加其他設備則是再建立規則,並一樣設定設備的區網IP







加入額外的Site進OSPF

至於要怎麼加入額外的Site進OSPF,也很簡單
在兩端都建立好WireGuard的連線、子路由端設定好OSPF資訊後
把該Site使用的WireGuard介面加入進主路由端的Instance Template內即可
https://i.imgur.com/Amnv6hL.png

圖 用Wireguard+OSPF建立Site to Site
設定沒問題的情況下,Neighbor就會自動多一筆
https://i.imgur.com/nDZhGER.png
圖 用Wireguard+OSPF建立Site to Site
就可以測試看看所有Site之間的區網是否能夠互通





以上,就目前WireGuard+OSPF做Site to Site的部分做一個紀錄給各位參考

--
標題 [三國] 三國11,自創武將下野?!?!?! #1C_nVjV5 (Koei)
自創武將當君主
怎麼會玩著玩著,他就下野了
只是他流浪到那個城市,首都就換到那個城市了....

grant790110:你是不是創了蔣介石 XDDDDD

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.14.175 (臺灣)
PTT 網址
※ 編輯: AKSN74 (125.227.14.175 臺灣), 12/02/2022 11:01:25 ※ 編輯: AKSN74 (114.41.134.120 臺灣), 12/02/2022 21:17:19

goldie12/03 21:26幫推

mengmengcats12/04 08:47