RouterOS(ROS)+OpenWRT双软路由配置方法及DNS缓存|UPnP等常用功能拓展

★ 工程实战 同时被 2 个专栏收录
27 篇文章 3 订阅
9 篇文章 1 订阅

在这里插入图片描述

在本次的方案中,我通过PVE虚拟化安装了RouterOS(ROS)与OpenWRT双软路由,其中ROS将作为主路由负责拨号上网等路由器基本功能以及DNS缓存、UPnP等常见ROS拓展功能。OpenWRT将作为旁路由实现远程唤醒、负载均衡、ddns等功能。

  • OpenWRT(旁路由):192.168.1.202
  • Router OS(主路由):192.168.1.203

一、ROS(主路由)配置

首先使用winbox连接ROS管理界面。

(1)第一步,设置网口和地址

进入管理界面后,在interface菜单下查看ROS网卡,通过上下行数据特征区分lan口和wan口(Tx和Rx有数据的是lan口),并标识网卡名称。

在这里插入图片描述
接着在ip菜单下进入addresses选项指定lan口ip地址,这里将lan口ip地址指定为192.168.1.203,并计算后填入正确网段。

在这里插入图片描述
这里值得注意的是,对于多网口设备,还需要使用网桥功能拓展lan口,由于演示设备并无多余网口,因此这里仅作文字说明:

  1. 搭建网桥:bridge——bridge——add new——apply——ok
  2. 为网桥依次添加网口:bridge——Ports——add new——依次在interface选项下添加网口——apply——ok

(2)第二步,创建PPPOE拨号

interface中新增PPPOE Client,在General选项卡下指定wan口拨号

在这里插入图片描述
Dial Out选项卡下指定拨号用户和密码。其中如勾选Use peer DNS,将自动获取运营商DNS,一般我们选择手动填写,因此这里暂时不予勾选。

在这里插入图片描述
当PPPOE接口前出现R(unning)字样,代表成功拨号,网络已联通。

在这里插入图片描述

(3)第三步,防火墙的NAT设置

ip菜单下进入firewall选项,在NAT标签页下新建规则,修改action标签页下开启伪装(masquerade)

在这里插入图片描述

(4)第四步,创建DHCP服务

ip菜单下为lan口新建DHCP server

在这里插入图片描述
指定DHCP地址段范围以及DHCP网关,此时我们暂时按照单路由配置方式指定Ros网关为自己的IP,在后续的双软路由配置中另行更改。

在这里插入图片描述
在这里插入图片描述
指定DHCP分配范围,值得注意的是,如果是手动创建DHCP,这一步我们需要通过ip菜单下的pool中创建地址池,并在DHCP server中的DHCP选项卡下add new,与地址池绑定。

在这里插入图片描述
配置一个有效的DNS服务器:

在这里插入图片描述

(5)第五步,开启ROS的DNS缓存

在完成上述网络配置后,为发挥ROS功能,可以开启DNS缓存以提升上网体验。在开启ROS的DNS缓存后,客户端的DNS地址为ROS的IP地址,当客户端发送DNS请求至ROS后,ROS在其缓存查找记录,有记录直接返回客户端,无记录将通过DNS服务器地址向上查询,得到结果后再发送客户端并将结果缓存,下次直接从缓存调取。

1.将ROS设置为局域网的DNS服务器

ip菜单下进入DHCP server,编辑networks标签下DHCP的网络设置,该配置即下发到客户端上的所有网络配置。为使用DNS缓存,我们需要将ROS的DNS服务器指定为ROS自身的IP地址。

在这里插入图片描述

2.允许ROS远程响应DNS请求

在完成上述配置后,ROS虽然是局域网的DNS服务器,但是其本身不带域名解析的功能,因此需要在ip菜单下选择DNS,为ROS配置有效DNS,并允许其远程响应请求。

在这里插入图片描述

(6)第六步,开启UPnP

为提升下载速度,我们通常还将开启ROS的UPnP功能。对于一般的使用者来讲,简单的把UPnP理解为自动端口映射就可以了。它就是一种基于TCP/IP协议的,针对设备彼此间的通讯而制订的新的Internet协议,目的在于将所有联入Internet中的设备实现不受网关阻碍的相互通信。在路由器下面,开通UPnP一般认为能够提升网速。

具体而言,在ip菜单下进入UPnP,勾选全部选项后,前往接口配置规则。

在这里插入图片描述
在这里插入图片描述
为lan口选择内部类型,为wan口选择外部类型。

在这里插入图片描述
在这里插入图片描述
此时UPnP将正常工作。


二、OpenWRT(旁路由)及双软路由配置

在这里插入图片描述
在这一架构中,上网设备的上网请求首先将到达ROS主路由,再通过虚拟机内部的交换机到达旁路由,待旁路由处理完数据后,送回主路由,后数据进入外网。

(1)第一步,修改旁路由配置

修改lan口配置

协议:静态地址
IPV4 地址:192.168.1.202(即旁路由ip地址)
子网掩码: 255.255.255.0
网关:填为上级路由 IP,这里我们指向ROS主路由,即192.168.1.203
广播:把上级路由网段 IP 最后一段改为 255,或0
DNS 地址:填写正确的可以解析的ip地址

在这里插入图片描述
关闭旁路由的 DHCP 功能 :打钩忽略此接口

在这里插入图片描述
关闭旁路由防火墙

在这里插入图片描述

(2)第二步,修改主路由配置

1.修改ROS主路由DHCP网关

ip菜单下进入DHCP server,编辑networks标签下DHCP的网络设置,将ROS主路由DHCP网关修改为旁路由OpenWRT的地址。

在这里插入图片描述

2.修改ROS主路由DNS服务器

ip菜单下选择DNS,将ROS远程请求的DNS地址修改为旁路由OpenWRT的IP地址。

在这里插入图片描述
此时,双软路由就真正连通了。

读到这里,相信一部分粉丝已经对网络环境中DNS的走向蒙圈了,这里稍作梳理。

首先由于ROS被设置为了局域网的DNS服务器,因此客户端的DNS地址为ROS的IP地址。
在这里插入图片描述
当客户端发送DNS请求至ROS后,ROS在其缓存查找记录,有记录直接返回客户端,无记录将通过DNS服务器地址向上查询,此时的DNS服务器为OpenWRT旁路由的IP地址。
在这里插入图片描述
由于在OpenWRT旁路由的Lan口设置中,填写了真实有效的DNS地址,因此网络得以连通。
在这里插入图片描述
当然,当开启OpenWRT旁路由某些服务时,DNS有可能被再次接管。


三、 OpenWRT旁路由常见应用

这里主要介绍etherwake唤醒、拓展ddns解析商两个功能。

(1)远程唤醒

OpenWrt可以安装wol或etherwake实现网络唤醒功能(前提是你的主机需要支持网络唤醒)

opkg update
opkg install wol
opkg install etherwake
#唤醒方法
etherwake -b F0:76:1C:E1:EA:D8

(2)ddns解析

旁路由设置ddns,解决主路由器ddns服务商少的问题。

在这里插入图片描述
以上图家庭拓扑为例,当前动态公网ip的ddns服务部署在NAS上,如果NAS意外断电,解析域名将无法解析获得ip地址从而导致远程访问的中断,而Mesh路由器上ddns服务商常常不支持自定义域名的接入,因此在上述组网方案基础上,可以借助软路由长期在线的优势,拓展ddns解析商,弥补NAS意外断电后ddns解析失败的问题。

在这里插入图片描述

由于旁路由没有wan口获取IP,因此这里通过api请求形式获取公网ip地址:http://ip.3322.net/


至此,本文也就进入尾声了。希望本文能够起到抛砖引玉之效,也欢迎大家的批评交流。


如果您有任何疑问或者好的建议,期待你的留言、评论与关注!

  • 2
    点赞
  • 7
    评论
  • 7
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
<p class="MsoNormal" style="text-align:left;background:white;" align="left"> <span style="font-size:13.5pt;font-family:'微软雅黑',sans-serif;color:#3598db;">【为什么要学习这门课】</span> </p> <p class="MsoNormal" style="text-align:left;background:white;" align="left"> <span style="font-family:'微软雅黑',sans-serif;color:#222226;">Linux</span><span style="font-family:'微软雅黑',sans-serif;color:#222226;">创始人<span>Linus Torvalds</span>有一句名言:<span>Talk is cheap. Show me the code. </span></span><span style="font-family:微软雅黑, sans-serif;color:#e03e2d;background-color:#ffffff;">冗谈不够,放码过来!</span><span style="font-family:'微软雅黑',sans-serif;color:#222226;">代码阅读是从基础到提高的必由之路。 </span> </p> <p class="MsoNormal" style="text-align:left;background:white;" align="left"> <span style="font-family:'微软雅黑',sans-serif;color:#222226;">YOLOv5</span><span style="font-family:'微软雅黑',sans-serif;color:#222226;">是最近推出的轻量且高性能的实时目标检测方法。<span>YOLOv5</span>使用<span>PyTorch</span>实现,含有很多业界前沿和常用的技巧,可以作为很好的代码阅读案例,让我们深入探究其实现原理,其中不少知识点的代码可以作为相关项目的借鉴。</span> </p> <p class="MsoNormal" style="text-align:left;background:white;" align="left"> <span style="font-size:13.5pt;font-family:'微软雅黑',sans-serif;color:#3598db;">【课程内容与收获】</span> </p> <p class="MsoNormal" style="text-align:left;background:white;" align="left"> <span style="font-family:'微软雅黑',sans-serif;color:#222226;">本课程将详细解析<span>YOLOv5</span>的实现原理和源码,对关键代码使用<span>PyCharm</span>的<span>debug</span>模式逐行分析解读。 本课程将提供注释后的<span>YOLOv5</span>的源码程序文件。</span> </p> <p class="MsoNormal" style="text-align:left;background:white;" align="left"> <span style="font-family:'微软雅黑',sans-serif;color:#222226;"> <img src="https://img-bss.csdnimg.cn/202012061533559839.jpg" alt="课程内容" /></span> </p> <p class="MsoNormal" style="text-align:left;background:white;" align="left"> <span style="font-size:13.5pt;font-family:'微软雅黑',sans-serif;color:#3598db;">【相关课程】</span> </p> <p style="margin-left:0cm;"> 本人推出了有关YOLOv5目标检测的系列课程。请持续关注该系列的其它视频课程,包括: </p> <p> 《YOLOv5(PyTorch)目标检测实战:训练自己的数据集》 </p> <p> Ubuntu系统 <strong><a href="https://edu.csdn.net/course/detail/30793"><span style="color:#7c79e5;">https://edu.csdn.net/course/detail/30793</span></a></strong> </p> <p> Windows系统 <strong><a href="https://edu.csdn.net/course/detail/30923"><span style="color:#7c79e5;">https://edu.csdn.net/course/detail/30923</span></a></strong> </p> <p> 《YOLOv5(PyTorch)目标检测:原理与源码解析》<strong><a href="https://edu.csdn.net/course/detail/31428"><span style="color:#7c79e5;">https://edu.csdn.net/course/detail/31428</span></a></strong> </p> <p> 《YOLOv5(PyTorch)目标检测实战:Flask Web部署》<strong><a href="https://edu.csdn.net/course/detail/31087"><span style="color:#7c79e5;">https://edu.csdn.net/course/detail/31087</span></a></strong> </p> <p> 《YOLOv5(PyTorch)目标检测实战:TensorRT加速部署》<strong><a href="https://edu.csdn.net/course/detail/32303"><span style="color:#7c79e5;">https://edu.csdn.net/course/detail/32303</span></a></strong> </p>
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页

打赏

邓大帅

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值