中低端的家用"路由器"应被视为一台三层交换机

此帖为“关于单臂路由的讨论”的延续
图片1
继续沿用 @ryd994 提供的图
最直观的事情,根据图里提供的信息
该设备对外的5个接口(Switch Port0-4)均处于一个交换模块上,
不论是WAN port(Switch port0)还是LAN ports(Switch port1-4)实际上都工作在二层,即便是WAN port也没有工作在三层,而通常管理界面中看到的WAN IP Address实际上是Interface VLAN1的IP Address(而常见的192.168.0.1则为Interface VLAN0的IP Address),所以当一个设备所有的物理接口都工作在二层的时候,不能把它视为路由器,而更适合当做交换机看待。

那么该设备的路由功能又是如何实现的呢?根据图中的描述,该设备是在SVI间(Interface VLAN0与Interface VLAN1)做了路由(最核心的功能为NAT VLAN0 to VLAN1 NAT以及静态路由IP Route VLAN0 to VLAN1),而通常这种通过SVI进行VLAN间路由的操作是一种典型的三层交换机的功能,并且避免了单臂路由的各种问题。

综上,我认为从某种角度上应当定义此类设备为三层交换机而非路由器。
这类设备被称为路由器的一大原因,我想也只是因为从外部及带有迷惑性的管理页面来看,WAN port体现为一个三层接口而已。

2赞

居然还没完

1赞

这是另外一个问题啊

  1. 爱叫啥叫啥。所谓l3 switch本来就不是符合OSI模型的名称,只是一个商业名词而已。而router和switch都是有明确定义的。三层就是router二层就是switch,OSI定义就这么简单。
  2. 按我的观点,处理路由表的是软件而不是硬件,这是router和l3 switch的主要区别
  3. 你在自相矛盾。你先说,所有端口工作在l2所以是switch,然后又说能处理l3所以是l3 switch。能处理l2就是switch,能处理l3就是router,非要整个l3 switch出来。
  4. 我上一贴已经说过了。你要说这不是router,那你先给出l3 switch的router的准确定义再说。在前置概念没有达成共识之前去讨论一个事物的定义根本就是鸡同鸭讲。
  5. 我说家用路由器是router+switch是根据OSI的分层。路由器的wan lan之间可以处理路由因此是router。lan口之间只能处理mac,所以是switch。不说实现,功能上最接近的模型应该是一个两口的router加上一个多口的switch。AP也算switch的一种(在无线和有线之间switch,工作在L2)
    在这个前置定义下不存在L3 switch这个概念。
2赞

我并没有自相矛盾,我说的很清楚了。

为什么称其为L3 Switch

again,请给出你的前置定义。否则无法讨论。
我已经把我的定义写出来了:

  • L2的是switch L3的是router
  • L3 switch本质上也是一种router,只是出于市场原因专门造出个名称来以示基于ASIC和基于软件的router的区别
  • L3 switch和其他router的区别在于routing 功能由硬件而非软件实现

这个你自己在上个帖子已经分析清楚了啊,高端一点的家用路由器确实是这样的啊,但是我想讨论的是图里这些你最开始抛出来的设备

  1. 见上。请先给出前置定义。
  2. 按照我的前置定义这就是两个逻辑上的功能,封装在同一个外壳里。功能与实现不一定匹配。

我想请问你,
所有接口都工作在二层的设备是什么?
路由器的接口工作在几层?
要实现VLAN间通信是不是一定需要路由器?

按照我的定义:

  1. switch。switch只有L2的。
  2. 能提供L3路由功能的就是路由器。
  3. 上面已经说过了。按照我的定义,从网络拓扑来说不存在L3 switch这个概念。如果你有不同的定义,你先给出你的前置条件,什么是L3 switch,什么是router,再讨论。
  4. 拓扑上的两个功能,物理上可以由同一个设备提供。否则我只要把两个设备装在一个盒子里就可以造出一个新名词,这不适合学术讨论。学术讨论首先就得是在同一套定义同一个模型下,否则没有意义。

如果没有你对L3 switch和router的定义,我将不会再回复这个讨论,因为没有意义。

2赞

不好意思,自相矛盾的是你自己。

好家伙,第一眼以为自己点错了,进了C114

哈哈哈哈 来来来 哪位撸友开个leetcode讨论贴

你们到底能水多少贴:man_facepalming:

l3 switch…滑稽

我觉得应该很简单吧。

可以进行路由功能的设备叫路由器。可以进行交换功能的设备叫交换机。

比如一台正常的家用电脑上有两张网卡。这两个网口如果在内核中被桥接了起来,那么这台电脑就是交换机。如果这两个网口处于不同的IP段,并且电脑的路由表中配置了路由办法,那么这台电脑就是一个路由器。

至于三层交换机……我认为就是路由器。按照上面的道理来说,可以进行三层交换的设备叫做三层交换机。那么三层交换……字面意思上看是在L3上传递packet。那么这不就是路由的定义吗?

你和大部分人一样,没有接触过三层交换,不太理解那是什么东西,以及三层交换和二层交换机以及路由器的区别是什么,这个我回头看看要不要再水一贴给大家科普一下。

其实既然你有那么明确的定义,还是问你那三个问题吧。
1.所有接口都工作在二层的设备是什么?
2.路由器的接口工作在几层?
3.要实现VLAN间通信是不是一定需要路由器?

  1. 可能是交换机,也可能是路由器,可能两个都是,也可能两个都不是。一个接口工作在二层并不意味着它就只能工作在二层。它可以同时工作在二层和三层。几个例子:
    a. 网口测试机可以工作在二层,但其不具有交换功能,不是交换机。
    b. 传统的unmanaged交换机是交换机但不是路由器,因为其不具有路由功能。
    c. 家用路由器即是路由器也是交换机,因为其既具有交换功能(内置Switch),也具有路由功能(内外网)。
  2. 路由器的接口工作在第三层。路由器的定义就是在第三层传递包。但是并不意味着路由器的接口不能同时工作在第二层。
  3. 要实现两个子网间的通信是一定需要路由器的。两个子网可以有不同的二层实现,因此需要设备在三层传递包,即需要路由功能。两个VLAN是可以桥接的,桥接后算作一个子网。因此VLAN间通信不一定需要路由器。

你看,问题来了

你觉得图里那类设备,port0-4能工作在三层吗?,如果不能,那么你的第二条回复

其实就是在说,它不是路由器

你的这个信息是错的,三层交换就可以解决这个问题,它提供了路由功能,但不是路由器。

图里的设备port0-4确实不能工作在第三层。

但是这台设备有工作在第三层的接口(VLAN口也是接口)。因此这台设备进行了路由功能,它是路由器。

可能是我没有听过三层交换这个词的原因。你可以科普一下“三层交换”的具体定义,以及它和“路由”之间的区别。但我想不出来,如果路由的定义是“在L3上传递包”,你如何不进行路由在两个子网之间通信。

1赞