如果在同一build筑物中,我有两个物理上独立的networking,通过简单的交换机将设备连接在一起,但我的理解是,如果我要使用智能交换机,通过中继将它们连接到彼此,我可以节省一些硬件复杂性并将它们连接到设备的不同端口分配给两个VLAN中的一个,具体取决于设备应该属于哪个“物理”networking。
在两个独立物理networking的情况下,如果我想将它们组合成一个物理networking,那么在硬件方面我需要做的就是在两者之间连接一个交换机。 如果我理解正确,我可以在两者之间插入一个linux路由器,并桥接两个networking连接的两个端口。
为了在VLAN的情况下做同样的事情,我可以通过一个中继端口将路由器连接到交换机,创build虚拟接口eth0.10和eth0.20(例如)并将它们桥接在一起。 这会按预期工作吗?
我所要问的原因是因为我只是在思考交换机如何转发stream量。 在物理networking的情况下,每个交换机build立一个ARP表,告诉它哪个MAC地址可以通过哪个端口到达。 如果一个端口连接到另一个交换机,则该端口最终应该发送所有连接到该另一个交换机的MAC地址的所有stream量。
假设我有以下物理networking布局:
____________ ___________ __________ ___________ ____________ | | | | | | | | | | | Device 1 |___| Network 1 |___| "Bridge" |___| Network 2 |___| Device 2 | | MAC ...:01 | | Switch | | Switch | | Switch | | MAC ...:02 | |____________| |___________| |__________| |___________| |____________|
现在,如果设备1要发送数据包到设备2,则交换机1知道MAC …:02连接到其右端口的某处,所以它将数据包传递给桥接交换机等。
如果我要将networking改为以下布局:
____________ ________ ____________ | | | | | | | Device 1 |_____________| Smart |_____________| Device 2 | | MAC ...:01 | VLAN ID 1 | Switch | VLAN ID 2 | MAC ...:02 | |____________| |________| |____________| || || Trunk ____||____ | | | "Bridge" | | Router | |__________|
然后,如果设备1想要向设备2发送数据包,则智能交换机不应该仅仅从正确的端口发送数据包,因为这是目的地MAC地址匹配的地方。 相反,它需要将数据包从底部端口转发到网桥路由器,networking路由器应该将数据包从顶端端口发回,但现在为VLAN 2标记,而不是VLAN 1。
这意味着智能交换机和网桥路由器都需要维护两个(或更多)独立的ARP表,每个VLAN一个,在智能交换机的情况下,MAC …:02应该是如果stream量属于VLAN 2,则链接到正确的端口;如果stream量属于VLAN 1,则应该链接到底端口。
那是怎么回事? 或者这个设置不能工作,因为智能开关会感到困惑?
另外,我的理解是否正确呢? 🙂
您使用的术语“智能开关”不是一个标准术语。 当你说“智能开关”时,我认为你的意思是“支持VLAN的交换机”。
交换机维护二层邻接表。 这些表标识了物理端口和MAC地址关联,并允许交换机将stream量仅导向到预定的目的地。 这些实际上不是“ARP表” – 它们与将第3层地址映射到第2层地址无关。 这些实际上是将第2层地址映射到可以说是第1层地址的表格。
在支持VLAN的交换机中,邻接表还将考虑端口VLAN成员关系,以防止未连接到相同VLAN成员的端口的相邻设备之间的直接层2通信,并限制帧的泛洪单播帧和目的地为未知目的地的帧)到单个VLAN。
路由器不维护二层邻接表,但它们维护ARP表。 路由器通常会为每个逻辑接口维护至less一个ARP表,将第3层地址映射到该接口媒体的第2层地址。 路由器本身并不特别“关心”VLAN。 VLAN将作为物理接口的逻辑子接口(Linux机器上的eth0.1 ,例如,表示eth0接口上的VLAN 1)呈现给路由器,并且如果该逻辑子接口 – 接口分配了一个IP地址。