EdgeRouter與MikroTik之間的Site-To-Site VPN (IPSec)設定

EdgeRouter與MikroTik之間的Site-To-Site VPN (IPSec)設定

近兩年在家裡佈建了許多小米攝影機,同時用一台舊PC安裝Ubuntu Server,運行SAMBA服務來充當NAS,供攝影機將記憶卡裡的影片上傳。而我在另一個比較少住的住處也同樣安裝了小米攝影機,因為人沒有每天住,為了用電安全,所以不想搬台PC過去24×7運行。左思右想,同時做了一些功課,覺得在兩地之間建立Site-To-Site VPN連線應該是比較好的做法,無奈其中一地使用市售分享器ASUS RT-AC1200G PLUS,對Site-To-Site VPN支援度不足,這個想法便一直擱置。

直到最近,因中華電信升速至300M的緣故,購入了Ubiquiti EdgeRouter-X和MikroTik RB750Gr3這兩台設備後,因為支援的網路功能較市售路由器來得豐富且靈活,便抽了個空做實驗,順便當做MikroTik RouterOS設定練習。

架構圖

下圖是目前成功建起來的Site-To-Site VPN架構,兩地網路架構如下。

左地(Ubiquiti EdgeRouter-X)

  • WAN: 中華電信PPPoE(浮動制)
  • LAN: 192.168.100.1/24
  • DDNS: home1.myddns(示範用,非真實域名)

右地(MikroTik RB750Gr3)

  • WAN: 中華電信PPPoE(浮動制)
  • LAN: 172.16.100.1/24
  • DDNS: home2.myddns(示範用,非真實域名)

目標

  • 左地設備連到172.16.100.0/24網段時,透過IPSec Tunnel連至右地;其餘上網功能直接上Internet
  • 右地設備連到192.168.100.0/24網段時,透過IPSec Tunnel連至左地;其餘上網功能直接上Internet

左地設定(Ubiquiti EdgeRouter-X)

原則上直接參考官方文件:https://help.ui.com/hc/en-us/articles/115011373628-EdgeRouter-Dynamic-Site-to-Site-IPsec-VPN-using-FQDNs 的ER-L設定。這邊非常簡單,直接照著文件操作即可,只差在網段要照自己實際網路設定來填寫,IPSec協議的Pre-shared secret、加密、DH Group則依自己喜好設定(或照著文件設定亦可)。

設定步驟

  1. 開啟EdgeRouter Web UI(https://192.168.100.1)
  2. 進入VPN 頁面、IPSec Site-to-Site頁籤
  3. 點擊+Add Peer,勾選Show advanced options,勾選Automatically open firewall and exclude from NAT,並填入以下資料:
    • Peer: home2.myddns(填入右地FQDN或IP)
    • Description: To-MikroTik
    • Local IP: 0.0.0.0
    • Encryption: AES-128
    • Hash: SHA1
    • DH Group: 14
    • Pre-shared Secret: ilovevpn@9527(填入夠安全的密鑰)
    • Local subnet: 192.168.100.0/24(左地網段)
    • Remote subnet: 172.16.100.0/24(右地網段)
  4. 點Apply套用設定

接下來可以繼續右地(MikroTik)設定。

右地設定(MikroTik BR750Gr3)

右地的設定一樣可以參照MikroTik官方文件:https://mikrotrik.com/ipsec-site-to-site-vpn-configuration/ 的Site A設定。MikroTik在功能設計上拆分的比較細,所以相對比EdgeRouter來得複雜,但一樣照著文件做即可。

設定步驟

  1. 建立Profile
    • 在IP→IPSec頁面,Profile頁籤,點擊新增或修改既有的Default Profile,加密演算法至少要把左地設定值裡的勾起來,如:AES-128、modp2048(=DH Group 14),按OK
  2. 建立Proposals
    • 在IP→IPSec頁面,Proposal頁籤,點擊新增或修改既有的Default Proposal,雜湊和加密演算法至少要把左地設定值裡的勾起來,如:sha1、aes-128 cbc,按OK
  3. 建立Peers
    • 在IP→IPSec頁面,Peer頁籤,點擊新增,填寫以下資訊,按OK:
      • Name: To-EdgeRouter
      • Address: home1.myddns
      • Port: 500 (預設值,不更動)
  4. 建立Identities
    • 在IP→IPSec頁面,Identities頁籤,點擊新增,填寫以下資訊,按OK:
      • Peer: 選擇剛剛建立的Peer(例:To-EdgeRouter)
      • Secret: 填入左地的Pre-shared secret(例:ilovevpn@9527)
  5. 建立Policies
    • 在IP→IPSec頁面,Policies頁籤,點擊新增,填寫以下資訊,按OK:
      • Peer: 選擇剛剛建立的Peer(例:To-EdgeRouter)
      • Tunnel: 打勾
      • Src. Address: 172.16.100.0/24
      • Dst. Address: 192.168.100.0/24
  6. 建立NAT規則
    • 在IP→Firewall頁面,NAT頁籤,新增規則,按OK:
      • Src. Address: 172.16.100.0/24
      • Dst. Address: 192.168.100.0/24
      • Action: Accept

測試

若在RouterOS的IPSec頁面,看到Peer已經是established狀態,原則上IPSec Tunnel就已經建立;EdgeRouter的Web UI看不出連線狀態,要在Terminal下指令show vpn ipsec sa觀察。

若要用ping指令測試,由於EdgeRouter會阻擋WAN端的ICMP封包,所以建議找一台同網段下的其他機器當ping的標的;RouterOS預設出廠不會阻擋WAN端ICMP封包,則可以用來當標的,例如:ping 172.16.100.1。

左→右

測試Windows RDP遠端連線,操作順暢,檔案傳輸至少有5MB/s。

右→左

測試SSH/SFTP連線,操作順暢,檔案傳輸正常。

斷線與PPPoE重撥測試(WAN IP改變)

測試正常,但需要給予一點時間進行DDNS更新以及IPSec Tunnel重建。

參考資料

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *