先前寫過一篇「Sonicwall FortiGate 防火牆建立 Site to Site VPN」的文章,當時常常遇到要跟 FortiGate 的設備做Site to Site VPN,而我手上的是 Sonicwall,實作的結果有時成功有時失敗,後來有次乾脆花了些時間,把兩個品牌的設定方式做個整理,以方便後續參考。當時在測試及整理資訊時,就有發現 FortiGate 韌體稍微不同,設定的方式就會不太一樣,頗為困擾,後來便把可以成功建立連線的兩種方式”Tunnel”和”Interface”都記錄下來,以便下次遇到改版時,可以試試不同的方法。
今天又遇到要跟 FortiGate 建立 Site to Site VPN 的需求,型號是 FortiGate 80E,韌體版本為 5.6.4,當聽到是新買的防火牆時,心裡就冒出”不妙”的念頭,等到連線過去看時,果然選項又變了,且這次連介面都變了不少。實際開始設定 VPN 項目時,發現這次似乎已經沒有分”Tunnel”和”Interface”,我首先嘗試以先前”Tunnel”的方式去設定,但 VPN 沒建立成功,接著改以”Interface”建立,卻出現奇怪的結果,兩邊的Site to Site VPN 已建立成功,Sonicwall 這端可以 ping 到 FortiGate 端的網段,但反之則 timeout。檢查過 policy 的順序及 routing 的設定都沒有問題,重來一次結果也是一樣,讓我傷透腦筋。
之後去查詢官方資料,但官方目前針對 5.6 版的韌體似乎只有提供同為 FortiGate 產品的 Site to Site VPN 精靈模式設定教學,不過我注意到在精靈模式完成的最後一步時,畫面有顯示這次精靈模式共在哪些項目做了幾組異動,其中有個名為 “Blackhole Route” 的項目引起我的注意,因為一般在設定 Site to Site VPN 時,都是設定 “static route”,”Blackhole Route” 這項目倒是第一次看到。於是便到 “Static Routes” 去查看,在 Interface 的下拉選單中,果真有個”Blackhole”的選項,試著新增一筆路由,並丟到”Blackhole”這個介面,設完後,原本還 ping 的到 FortiGate 網段的 Sonicwall,現在也 ping 不到了,接著我把剛剛新增的這組路由給停用,然後神奇的事就發生了,Sonicwall 與 FortiGate 兩邊的網段都可以互相 ping 的到了,但之後我把 VPN 斷開再重新連線,FortiGate 又再度無法 ping 到 Sonicwall 的網段,Sonicwall 則一樣可以 ping 到 FortiGate 網段。
接著我又一樣的做法再來一次,把”Blackhole”路由啟用、再停用,兩邊網段就又可以互通,測試幾次確認結果都一樣後,便開始研究這個”Blackhole”路由的設定。在路由的設定參數中,有”Priority”跟”Distance”兩個值會影響先後順序,最後試出只要將”Blackhole”路由的”Priority”數值小於 VPN 路由的”Priority”;”Distance”數值大於 VPN 路由的”Distance”,即可讓兩邊網段正常連線,就算重啟 VPN 連線也可以正常互 ping 了。
後來去查了官方關於”Blackhole”的資訊,只查到舊版韌體可以透過指令去設定此”Blackhole”路由,但我仍是不了解為何我這樣的設法能夠解決 FortiGate 網段 ping 不到 Sonicwall 網段的問題,目前先將此成功的設定方式分享出來,後續若有進一步的資訊,再來更新此篇,若各位網友知道為什麼的話,也歡迎在下面留言討論,感谢。
| Sonicwall NSA 4600 | FortiGate 80E |
| 韌體:6.2.7.1 | 韌體:5.6.4 |
| Lan: 192.168.1.0/24 192.168.2.0/24 Wan: |
Lan: 192.168.100.0/24 Wan: |
【Sonicwall設定】
1.建Object
「Network」->「Address Objects」
姓名: FortiGate_network
Zone Assignment: VPN
Type: Network
Network: 192.168.100.0
Netmask: 255.255.255.0
OK
2.設定VPN Tunnel
「VPN」
Enable VPN
添加
–General tab
IPSec Keying Mode: IKE using Preshared Secret.
姓名: FortiGate_network
IPSec primary Gateway Name or Address: 203.4.5.6
Shared Secret: 設一組密碼
Local IKE ID: IP Address (保留空白)
Peer IKE ID: IP Address (保留空白)
–Network tab
Local Network:LAN Primary Subnet(192.168.1.0/24、192.168.2.0/24)
Destination Networks:FortiGate_network(192.168.100.0/24)
–提案选项卡
IKE (第一阶段) 提案
交换: 主模式
DH组: 组 2
加密: 3DES
认证: SHA1
生命周期: 28800
IKE (第二阶段) 提案
协议: ESP
加密: 3DES
认证: SHA1
DH组: 组 2
生命周期: 28800
–高级选项卡
启用Keep Alive.
OK
【FortiGate设置】
1.设置VPN
「VPN」->「IPsec隧道」
「创建新建」
姓名: SonicWall
模板类型: 自定义
–Network
远程网关: 静态IP
IP Address: 203.1.2.3
模式: 主模式
认证方式: 预共享密钥
预共享密钥: 与上面SonicWall设置的密码相同
–阶段 1 提案
加密: 3DES
认证: SHA1
DH组: 2
密钥寿命: 28800
–阶段 2 选择器
设置第一个网段(192.168.1.0)
姓名: SonicWall-192.168.1.0
本地地址: 192.168.100.0/24
远程地址: 192.168.1.0/24
设置第二个网段(192.168.2.0)
姓名: SonicWall-192.168.2.0
本地地址: 192.168.100.0/24
远程地址: 192.168.2.0/24
–高级
加密: 3DES
认证: SHA1
不勾选启用完美前向保密(PFS)
密钥寿命: 28800
2.建立路由
设置 192.168.1.0 路由
「Network」->「静态路由」
创建新建
目的地: 192.168.1.0/24
Interface: SonicWall
管理距离: 10
-高级选项
Priority: 3 (要大于Blackhole默认值 0)
OK
设置 192.168.2.0 路由
「Network」->「静态路由」
创建新建
目的地: 192.168.2.0/24
Interface: SonicWall
管理距离: 10
-高级选项
Priority: 3 (要大于Blackhole默认值 0)
OK
设置 192.168.1.0 Blackhole
「Network」->「静态路由」
创建新建
目的地: 192.168.1.0/24
Interface: Blackhole
管理距离: 12 (要大於一般路由預設的 10)
OK
设置 192.168.2.0 Blackhole
「Network」->「静态路由」
创建新建
目的地: 192.168.2.0/24
Interface: Blackhole
管理距离: 12 (要大於一般路由預設的 10)
OK
3.設定防火牆規則
「Policy & Objects」->「IPv4 Policy」
创建新建
姓名: Forti2Sonicwall
Source Interface: Port 1(192.168.100.0 所在的port)
Outgoing Interface: SonicWall
Source: FortiGate_network
目的地: SonicWall_network
Schedule: always
Service: ALL
Action: Accept
OK
创建新建
姓名: Sonicwall2Forti
Source Interface: SonicWall
Outgoing Interface: Port 1(192.168.100.0 所在的port)
Source: SonicWall_network
目的地: FortiGate_network
Schedule: always
Service: ALL
Action: Accept
OK
【参考链接】
- 老森常譚 » Sonicwall FortiGate 防火墙建立站点到站点 VPN
- (20) 03 Firewall Fortigate, Fortinet: Firewall Policies. – YouTube
- Site-to-site IPsec VPN with overlapping subnets – Fortinet Cookbook








留下回复