Site-To-Site VPN with Overlapping Subnet

Site-To-Site VPN with Overlapping Subnet

最近有一客戶的辦公室將計劃由地點A將至地點B,但又不是一次性進行辦公室的搬遷,而是先將部分server及user 搬往新辦公室,即將會有一段為期1至2個月的過渡期。

正如下圖,它們兩邊會使用同一組private subnet (192.168.1.0/23),這時便會遇上overlapping subnet 的問題。因此便需要利用NAT將兩邊subnet 進行轉變,從而令兩邊可以同時運作。

以下將會以Fortigate Firewall 進行示範,而一般都離不開4個重點。重點1 IPsec VPN,重點2 VPN Policy,重點3 VPN Subnet Route,重點4 NAT Translation

設定Site-To-Site VPN/IPsec VPN
在左邊Panel 選取 VPN > IPsec Tunnels ,然後選取Create New

輸入VPN 的名字

輸入另一端的public IP shared key (記緊兩邊要一樣)


選取自己的local interface,輸入另一端的virtual subnet
最後便完成,其後FirewallB 也做相類似的設定,只是remote device IP remote subnets 不同

 
中伏位置: IPsec VPN 起不了
Fortigate Firewall VPN Creation Wizard 會幫將所需要的routefirewall policy 都隨之建立了,但VPN 還是會起不了的。

Monitor > IPsec Monitor 查看時,你會發現VPN 起不了。


這時任你如何Bring UP,它還是起不了。

如何解決IPsec VPN 起不了的問題
其實這情況都常見,只是網上一般少提及。你可以嘗試將Local Address Remote Address 變成all (0.0.0.0/0),即准許任何subnet IPsec VPN tunnel 建立,當然你依然可以利用firewall policy 限制它的通行。記緊兩邊都要做以下同一個動作,將其都變成all

 又回到IPsec Monitor,點選VPN 後右鍵選取Bring upVPN 就可以建立起來了。
 
設定NAT Translation
VPN Creation Wizard 是不會為你建立NAT,所以需要自己設定。NAT 有分Source NAT Destination NAT

Source NATFortigate FirewallA & FirewallB 需要前往Policy & Objects > IPv4 Policy 


你會看到NAT disabled 的。

選取lan – VPN policy 和選取Edit,其後將NAT enable


Destination NAT 在不同Firewall 都有不同的做法,Fortigate r設定Virtual IPJuniper Junos 設定MIP,像ASA fortigate 則設定NAT rule

選取Policy & Objects > Virtual IPs


輸入nameExternal IP Address Mapped IP Address。意思是當有external network 找尋10.10.1.0/24 range IP 時,便會將其轉會成192.168.1.0/24

其後在FirewallB 建立10.10.2.0/24 VIP

最後將VPN-lan firewall policy VPN_remote 改變成vip


測試
完成所以設定後,嘗試由Office A PC (192.168.1.100) ping Office B VIP (10.10.2.100),其實它的實際IP 也是192.168.1.100,但也可以ping 通。


firewall Sniffer capture時,你會看到traffic 是經過NAT 轉變成10.10.1.100 10.10.2.100 在溝通,從而避開overlapping subnet 的問題。


Office B ping Office A 也是如此。

後記:
當然你亦可以做到192.168.1.0/24 兩邊都可以互通,如 site A 的192.168.1.100 可以ping 通 site B 的192.168.1.101,但大前是兩邊的IP 不可以重覆。

留言