简介
我们都知道,软路由一般有两种使用方式,一种是作为承担DHCP分配的主路由,而另一种就是作为不承担DHCP分配功能的旁路由使用。今天就来介绍如何将软路由配置成为旁路由。
旁路由好处
旁路由最大的好处就是它不承担DHCP分配任务,这意味着它的对网络的影响极小。即使突然故障也不会导致整个网络瘫痪。更别提软路由的配置复杂,用户可能还经常修改上面的网络配置,一旦出错就是整个网络瘫痪,如果家中还有其他人使用网络,影响实在是不好。 建议有一下需求的人使用旁路由:
1、不止有自己使用网络,还有其他人使用。并且希望尽可能不影响其他人的网络使用体验。
2、不希望所有流量都走旁路由。软路由天生发热量较大,因为其不像普通路由器(硬路由)一样拥有硬件转发模块。所有的网络流量都需要经过CPU处理。如果负担过重,又是夏天,容易降低寿命或者死机。
3、只有部分设备拥有特殊上网需求,或者流量不太充裕,需要节省的。虽然可以配置地址判断规则,但是在线设备多了,还是会偷跑流量。
旁路由配置步骤
1、修改管理地址网段
首先需要修改软路由的管理地址,使其和硬路由处在同一网段。便于管理。
进入网络-接口设置页面 设置LAN口,截图所示的两个红框点击均可 设置为静态地址,IPV4地址选择一个没有被占用的,便于自己记忆的地址。 网关设置成硬路由的地址。 DNS填写公用的DNS即可。或者填写网关地址。 IPV6分配长度记得禁用。
2、关闭IPV6和DHCP服务
接下来配置IPV6和DHCP服务。 DHCP一定要选择忽略此接口。 接下来是物理设置。这里保持默认设置即可。之所以强调是因为桥接要打开,有些教程说要关闭桥接,那是错误的。会导致网络不通。
3、防火墙设置
接下来是重要的防火墙设置。 SYN防御可开可不开,建议保持默认。 接下来重点来了,IP动态伪装开关。 该选项记得打开。尤其是当你的硬路由是小米品牌时。 否则可能出现终端修改静态IP后,有线走旁路由能上网,而WIFI怎么都不可以。或者两种均不行。
关于IP动态伪装
有时候我们会发现,终端修改IP成为静态地址,设置网关地址为旁路由,但是却无法上网。而且奇怪的是有线终端没问题,无线终端却不行。
如果打开了功能插件,还会发现国内网站死活不行,国外没问题。如果开了全局,又都可以了。
此时我们需要执行指令
iptables -t nat -I POSTROUTING -j MASQUERADE
或者打开IP动态伪装,问题就可以得到解决。 这是为什么呢?
原来出现问题的一般都是华为,小米,360等普通常见路由器。这些路由器会校验数据包的ip和mac地址的对应关系。而当数据包的上行流量经过旁路由转发给主路由时,主路由发现旁路由发过来的数据包源IP不是它自己的IP地址,校验失败,该数据包被丢弃。
为啥全局后或者国外可以呢,因为这些流量会被处理,数据包的源IP会被替换成为旁路由的IP。所以能通过校验。
需要强调的是,因为普通家用路由的封闭性,该校验机制一般没法关闭(甚至在某些支持设置DHCP网关的品牌中依然存在,例如小米新款路由器) 为啥加了防火墙规则为啥就可以了呢,上边那条规则的意思是执行SNAT功能,就是把数据包的源ip改成当前机器的,也就是旁路由的ip,无论该数据包是否会经过插件处理。 就是防火墙设置面板中的IP动态伪装功能,命令和该开关是一样的。
这还没完,不是开了就万事大吉了。开了之后意味着所有数据包经过旁路由都必须进行一次IP替换操作,如果你在看高清视频或者下载东西,你会发现软路由发热严重,CPU占用居高不下。 想要彻底解决该问题,有两个办法 1、换一个不校验的主路由,例如华硕或者刷OP固件。(那还要旁路由干嘛?) 2、参考该帖子,破解硬路由的SSH权限。将硬路由Linux内核上面虚拟网桥的iptables关闭(即关闭校验机制),具体可看恩山帖子: https://www.right.com.cn/forum/thread-4104292-1-1.html 在这里贴出指令:
echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables
echo 0 > /proc/sys/net/bridge/bridge-nf-call-ip6tables
echo 0 > /proc/sys/net/bridge/bridge-nf-call-arptables
echo 0 > /proc/sys/net/bridge/bridge-nf-call-custom
方法2的好处是设置后旁路由可以不开动态伪装了,高负载下CPU占用大大降低。
|