路由器怎么选购才是正确的(路由器怎么选才好)

今天谈的是一个正常的路由器的处理功能,这是“家用路由器”不具备的,而且是很多“软路由”无法真正触及的部分。

那么真正概念上的路由器到底是什么呢?路由器的基本概念是连接两个或多个网络的硬件设备,在网络间起网关的作用,读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。

上面这段话里面就有关键词了连接两个或多个网络读取每一个数据包决定如何传送智能性设备以及起网关作用

在大多数情况下,家用路由器仅仅起到了一部分“起网关作用”的功能,并且这个功能还被大量阉割,仅仅是一个带有NAT转换能力的拨号器罢了。

这就意味着,当你在家中使用家用路由器时,它并不真正拥有路由器的全部功能。它的主要任务是将来自多个设备的数据流量管理好,允许它们共享同一个外部IP地址,并在内部网络中分配本地IP地址。这听起来似乎已经有很多功能了,但实际上,家用路由器的功能相当有限,而且在处理复杂的网络任务时会显得力不从心。

别急着为你家的路由器站台,甚至也先别提软路由,继续往下看!

路由器干嘛的?——上网的呗!——错!路由器是通过分析发送入路由器中的每个数据包,智能的决定网络数据包如何传输的设备。注意一下,这是一个智能设备,它并不是一个简单的NAT转换器。

今天的第一个硬通货概念——路由表。刚刚说了,路由器是一个决定网络数据包如何传输的设备,那么决定“如何传输”的功能就是依靠路由表来实现的。路由器在处理每一个数据包的时候都会查一下路由表。

无线路由器-网关-dtu

这是一个存储于路由器内部的对照表,当数据包传递到路由器中后路由器会依据数据包内的地址标签进行查询,然后决定将这个数据包发送到哪一个网关端口中。

无线路由器-网关-dtu

所以说,对数据包的处理是“上网的呗”这一主观印象底层的真正实质。那么“家用路由器”和路由器之间有着什么区别呢?

无线路由器-网关-dtu

这是iN随手接入到网络中的一个家用路由器,你会发现它的路由表很简单,通常家用路由器的路由表会包含一项内容:0.0.0.0/0 ->WAN IP,也就是将所有数据流量全部导入到路由器的拨号端口。这就是你家上网的关键了,家用路由器做且仅做这一个动作。

当然了,你还可以通过手动设置,给家用路由器增加一些路由表信息,但真正对于你的帮助几乎为零,毕竟家用路由器的接入端口也就只有那么一个。

但一台真正可以操控的路由器的路由表就不只如此了:

无线路由器-网关-dtu

往往可以根据不同的目的IP地址信息将数据发送到不同的网关(Gateway),这时候数据包通过路由器的时候就有了自己的选择性。

无线路由器-网关-dtu

例如iN在自己家里的路由器上接入了一个猫棒。利用猫棒将宽带运营商的带宽接入到家里的路由器中。猫棒是一个可管理设备,有自己的IP地址,这个IP地址在10.0.100.0/24网段上。通常很多使用猫棒的人对猫棒进行维护的时候需要将维护机的IP地址改在10.0.100.0/24网段中,然后才可能连接到这条猫棒中。但实际上你只需两步操作就可以在内部网络的任意计算机上访问到这个猫棒。

第一步:给插入猫棒的路由器端口设置一个10.0.100.0/24的IP地址

无线路由器-网关-dtu

第二步:在路由表中增加一条记录:

无线路由器-网关-dtu

这样一来在这台路由器所统御的网络中只要有向10.0.100.0/24网段中传送的数据包,路由器都会转发到叫做“internet-WAN”的端口中,我们也就实现了在内部网络中直接访问猫棒的需求。

所以对于猫棒,很多数码博主告诉你,要把自己的电脑IP改成10.0.100.2然后才能访问到猫棒的说法其实并不是一个正确的做法。

这些做法都是一台路由器的基本操作,基操勿六;咱们再说一下高端一点的操作。

刚刚咱们提到路由器可以读取IP数据包内的目的地址信息,将数据发往不同端口,那么“数据包可以读取”就是路由器的一个基本功能了,扩展一下既然数据包可以读取,能不能写入呢?例如数据包的内容是“ABCDE……”,路由器能不能把数据包改成“AAADE……”?理论上有读取功能就可以有写入功能。只是路由器如果乱写数据包的数据,只能导致网络不通这一个结果。但有规则的去改写数据包内的数据也是一台真正路由器的基本功能之一。

以Router OS路由器为例,这个功能叫做“Mangle(篡改)”

无线路由器-网关-dtu

通常,我们就是利用Mangle功能操控数据在路由器里面不走寻常路的。

无线路由器-网关-dtu

在提到Mangle功能之前,我们需要纠一个观点,数据包进入路由器再转发出去这种网络拓扑结构并不能说明路由器的工作原理。

要搞懂路由器的工作你就得深究数据在路由器内部怎么流动和处理。

无线路由器-网关-dtu

这是Router OS的数据处理过程,当数据从左下边的输入端口(INPUT INTERFACE)进入路由器后,经历了复杂的处理过程最终流动到右下边的输出端口(OUTPUT INTERFACE)。篡改(上图浅黄色标签)数据的过程可以出现在每个大的处理过程中。也就是说路由器给了你在几乎任意的处理节点篡改数据的权力。而路由器也会根据你篡改过的数据在后面的处理过程中进行相应的处理。

举个例子,假设你的路由器上有多个出口连接到互联网

无线路由器-网关-dtu

那么访问本地网络的情况下我们就可以应用本地策略,而访问远端访问的时候则需要选择远端策略。

那么如何标记这些目的不同的数据包呢?这里就用到了Mangle功能。

首先,在prerouting(路由前)阶段利用Mangle中的过滤系统在路由器中设定过滤规则。

无线路由器-网关-dtu

然后在动作中设置一个数据包“打标”(mark routing)

无线路由器-网关-dtu

给过滤出来的数据包打一个合适的标签。

那么在后面的处理过程中,路由器就会依据这个标签对数据包的流向进行处理,让数据包选择合适的端口进入互联网,这样就很科学了。

这时候软路由用户就站出来说“我也能!”,但是机理上是有差别的,很多软路由用户是通过数据预先打包的方式来进行类似操作的,但那些数据打包的过程往往会消耗掉大量的CPU计算资源,整体上性能也就无法保证了。

同时,看到上面图片中Passthrough的复选框了吗?这是继续做下一步处理的标记,在真正专业的路由器上你可以对一个数据包做数十步处理在更细分的领域范畴内对数据包的流量做更精细的操控。

这样,咱们就可以对比一下“家用路由器”简单的一步处理是不是就仅仅是一个NAT转换器了?而“不垃圾的路由器”则可以让你精细的控制数据包流动的每个过程和节点。

当然,“不垃圾的路由器”本身的价格和资源也要远大于“家用路由器”的配给。

无线路由器-网关-dtu

也只有这样,路由器才可以高性能的处理每秒数百万甚至数千万个数据包。所以以后这个系列文章中所提到的路由器基本上就并不包括现在你可以视为垃圾的“家用路由器”了。虽然对初级用户不友好,但是对于给大家将明白网络架构到底是什么是相当重要的。