查看: 358|回复: 0

RouterOS通过IPsec隧道实现互访

[复制链接]
  • TA的每日心情
    郁闷
    2019-7-21 07:51
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    25

    主题

    26

    帖子

    211

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    211
    发表于 2019-6-12 10:41:27 | 显示全部楼层 |阅读模式
    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
    RouterOS通过IPsec隧道实现互访-1.png
    二、R1路由器设置
    1、IP tunnel设置:Winbox --> Interface,IP Tunnel选项卡,点击+
    Remote Address填入R2外网ip地址,如117.62.85.3,点击OK
    RouterOS通过IPsec隧道实现互访-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规则的上面
    RouterOS通过IPsec隧道实现互访-3.png
    RouterOS通过IPsec隧道实现互访-4.png
    RouterOS通过IPsec隧道实现互访-5.png
    3、Winbox --> IP --> Firewall,NAT选项卡,修改上网的masquerade规则
    Chain还是srcnat
    Src. Address填入R1的内网网段,如案列中R1的内网网段10.0.0.0/23
    切换到Action选项卡,action还是选择masquerade,点击OK
    RouterOS通过IPsec隧道实现互访-6.png
    RouterOS通过IPsec隧道实现互访-7.png
    4、添加路由表,Winbox --> IP --> Routes,点击+
    Dst. Address填入R2的内网ip网段,如192.168.88.0/24
    Gateway选择刚才创建额ipip-tunnel1,点击OK
    RouterOS通过IPsec隧道实现互访-8.png
    三、R2路由器设置
    1、IP tunnel设置:Winbox --> Interface,IP Tunnel选项卡,点击+
    Remote Address填入R1外网ip地址,如121.236.80.94,点击OK
    RouterOS通过IPsec隧道实现互访-9.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规则的上面
    RouterOS通过IPsec隧道实现互访-10.png
    RouterOS通过IPsec隧道实现互访-11.png
    RouterOS通过IPsec隧道实现互访-12.png

    3、Winbox --> IP --> Firewall,NAT选项卡,修改上网的masquerade规则
    Chain还是srcnat
    Src. Address填入R1的内网网段,如案列中R1的内网网段192.188.88.0/24
    切换到Action选项卡,action还是选择masquerade,点击OK
    RouterOS通过IPsec隧道实现互访-13.png
    RouterOS通过IPsec隧道实现互访-14.png
    4、添加路由表,Winbox --> IP --> Routes,点击+
    Dst. Address填入R1的内网ip网段,如10.0.0.0/23
    Gateway选择刚才创建额ipip-tunnel1,点击OK
    RouterOS通过IPsec隧道实现互访-15.png
    四、动态IP实现自动修改
    1、2个ROS做DDNS动态ip自动更新,具体实现方法请看《RouterOS利用DNSPOD的API接口实现DDNS动态解析
    2、2个ROS分别在Winbox --> IP --> Firewall,Address-list选项卡,点击+
    Name,随便输入,如ipaddr
    Address,填入对方的DDNS动态域名
    RouterOS通过IPsec隧道实现互访-16.png
    3、定时脚本设置,Winbox --> system --> Scheduler,点击+
    Name随便填
    Interval脚本定时执行间隔,不建议设置太小
    On Event:填入脚本
    1. :global ipaddr
    2. :local r2ip [/ip firewall address-list get [/ip firewall address-list find comment="ros.myxzy.com"] address]
    3. :if ($r2ip != $ipaddr) do={
    4. /interface ipip set ipip-tunnel1 remote-address=$r2ip
    5. :set ipaddr $r2ip
    6. :log info "IPIP UPDATE!"
    7. }
    复制代码

    RouterOS通过IPsec隧道实现互访-17.png
    另一个ROS也需要设置。存在的问题,如果其中一个IP变更,由于DDNS的生效时间,可能会导致IP tunnel中断一段比较长的时间。我这边测试大概是1~2分钟左右(DDNS动态域名是TTL 10)。
    五、Ping测试
    RouterOS通过IPsec隧道实现互访-18.png
    RouterOS通过IPsec隧道实现互访-19.png
    至此,2个ROS已经通过IP Tunnel互通了,内网电脑可以互访了。

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则