RouterOS通過IPsec隧道實現互訪

IPSec 的兩種工作模式:隧道(ip tunnel)模式和傳輸(ip transport)模式。簡單的來說,隧道模式用於網關和網關之間的點對點連接;傳輸模式用於網關和電腦之間的點對點連接。具體的請自行百度。

本教程主要是RouterOS(以下簡稱ROS)通過IPsec隧道模式(IP tunnel)實現點對點互連。

 

一、網絡拓撲

以下是一個使用 ROS實現IPsec點對點互連的案例。

 網絡拓撲:PC1(10.0.0.100) --- (10.0.0.1)R1(121.236.80.94) --- 互聯網 --- (117.62.85.3)R2(192.168.88.1)---(192.168.88.254)PC2

493-1.png

 

二、R1路由器設置

1、IP tunnel設置:Winbox --> Interface,IP Tunnel選項卡,點擊+

Remote Address填入R2外網ip地址,如117.62.85.3,點擊OK

493-2.png

 

2、Winbox --> IP --> Firewall,NAT選項卡,點擊+

Chain選擇srcnat

Src. Address填入R1內網網段,如案列中R1的內網網段10.0.0.0/23

Dst. Address填入R2內網網段,如案列中R2的內網網段192.168.88.0/24

切換到Action選項卡,action選擇accept,點擊OK

注意:該條規則要在masquerade規則的上面

493-6.png

493-7.png

493-10.png

 

3、Winbox --> IP --> Firewall,NAT選項卡,修改上網的masquerade規則
Chain還是srcnat
Src. Address填入R1的內網網段,如案列中R1的內網網段10.0.0.0/23
切換到Action選項卡,action還是選擇masquerade,點擊OK
493-8.png

493-9.png

 

4、添加路由表,Winbox --> IP --> Routes,點擊+

Dst. Address填入R2的內網ip網段,如192.168.88.0/24

Gateway選擇剛纔創建額ipip-tunnel1,點擊OK

493-4.png

 

三、R2路由器設置

1、IP tunnel設置:Winbox --> Interface,IP Tunnel選項卡,點擊+

Remote Address填入R1外網ip地址,如121.236.80.94,點擊OK

493-5.png

 

2、Winbox --> IP --> Firewall,NAT選項卡,點擊+

Chain選擇srcnat

Src. Address填入R2內網網段,如案列中R2的內網網段192.168.88.0/24

Dst. Address填入R1內網網段,如案列中R1的內網網段10.0.0.0/23

切換到Action選項卡,action選擇accept,點擊OK

注意:該條規則要在masquerade規則的上面

493-15.png

493-16.png

493-11.png

 

3、Winbox --> IP --> Firewall,NAT選項卡,修改上網的masquerade規則
Chain還是srcnat
Src. Address填入R1的內網網段,如案列中R1的內網網段192.188.88.0/24
切換到Action選項卡,action還是選擇masquerade,點擊OK

493-12.png

493-13.png

 

4、添加路由表,Winbox --> IP --> Routes,點擊+

Dst. Address填入R1的內網ip網段,如10.0.0.0/23

Gateway選擇剛纔創建額ipip-tunnel1,點擊OK

493-14.png

 

四、動態IP實現自動修改

1、2個ROS做DDNS動態ip自動更新,具體實現方法請看《RouterOS利用DNSPOD的API接口實現DDNS動態解析

 

2、2個ROS分別在Winbox --> IP --> Firewall,Address-list選項卡,點擊+

Name,隨便輸入,如ipaddr

Address,填入對方的DDNS動態域名

493-19.png

 

3、定時腳本設置,Winbox --> system --> Scheduler,點擊+

Name隨便填

Interval腳本定時執行間隔,不建議設置太小

On Event:填入腳本

 

:global ipaddr
:local r2ip [/ip firewall address-list get [/ip firewall address-list find comment="ros.myxzy.com"] address]
:if ($r2ip != $ipaddr) do={
/interface ipip set ipip-tunnel1 remote-address=$r2ip
:set ipaddr $r2ip
:log info "IPIP UPDATE!"
}

 

493-20.png

另一個ROS也需要設置。

存在的問題,如果其中一個IP變更,由於DDNS的生效時間,可能會導致IP tunnel中斷一段比較長的時間。我這邊測試大概是1~2分鐘左右(DDNS動態域名是TTL 10)。

 

五、Ping測試

493-17.png

493-18.png

至此,2個ROS已經通過IP Tunnel互通了,內網電腦可以互訪了。