我知道路由器和交换机之间的区别,但我的理解中还有一些模糊的地方。
当您将一台交换机上行连接到另一台交换机时,它们会共享 MAC 地址表吗?或者这是供应商特定的功能?如果它们不共享,它们如何处理发往它们不直接控制的 MAC 的数据包?
仅使用交换网络可以有效处理的最大 IP 地址空间是多少?在什么时候应该考虑将网络分成由路由器连接的多个段?
哪一个在架构上更合理:一个核心路由器将许多子网连接到互联网,还是一个路由器层级(每个部门一个路由器,上行连接到核心)?或者,最好为每个部门配备一个路由器,然后将它们连接在一起形成一个微型互联网?
答案1
关于将一台交换机上行连接到另一台交换机:不,它们不共享 MAC 地址表。每台交换机都维护自己的桥接表,该表是通过侦听每台交换机在给定端口上接收的流量来构建的。请考虑以下示例(抱歉 ASCII 艺术很糟糕):
________ 1________2 2________1 ________
|Host A|-----|Switch 1|------|Switch 2|-----|Host B|
-------- ---------- ---------- --------
主机 A连接到开关 1,端口 1。主机B连接到开关 2,端口 1. 两个交换机通过以下方式互连端口 2双方。
假设开始时两个交换机的桥接表都是空的。主机 A想要发送帧到主机B(为了简化,我们假设主机 A 和主机 B 彼此具有静态 ARP 条目,因此不需要对 MAC 地址进行 ARP)。
- 主机 A发送帧到主机B. 该帧的源 MAC 是AA:AA:AA:AA:AA:AA,目标 MAC 为BB:BB:BB:BB:BB:BB。
- 开关 1目前有一个空的桥接表。收到帧后,它会做两件事:
- 它在桥接表中创建一个新条目,AA:AA:AA:AA:AA:AA存在于端口 1。
- 因为它不知道在哪里BB:BB:BB:BB:BB:BB也就是说,它会将帧泛洪到每个端口除了最初听到这个声音的地方(端口 1)。
- 交换机 2 在其端口 2。同样,由于其桥接表最初是空的,因此它遵循相同的过程:
- 新条目:AA:AA:AA:AA:AA:AA存在于端口 2(回想一下,这是在交换机 2 上,它有一个独立于交换机 1 的桥接表)
- 除了接收该帧的端口之外,其他所有端口都会将该帧泛洪出去。
在此刻,主机B接收帧。当主机B发送响应,则会发生以下情况。
- 主机B发送帧到主机 A. 该帧的源 MAC 是BB:BB:BB:BB:BB:BB,目标 MAC 为AA:AA:AA:AA:AA:AA。
- 交换机 2 的桥接表中当前有一个条目(AA:AA:AA:AA:AA:AA->端口 2)。收到帧后,它会做两件事:
- 它在桥接表中创建一个条目,BB:BB:BB:BB:BB:BB存在于端口 1。
- 由于它具有针对目标 MAC 地址的特定桥接表条目(AA:AA:AA:AA:AA:AA),它将帧转发出去端口 2而不会像以前那样被洪水淹没。
- 交换机 1 在其端口 2。同样,它遵循相同的过程:
- 新条目:BB:BB:BB:BB:BB:BB存在于端口 2
- 有一个特定的桥接表条目(AA:AA:AA:AA:AA:AA->端口 1),因此帧仅从该端口转发出去。
在学习 MAC 地址方面,无论交换机数量和连接到交换机的设备数量如何,都会遵循相同的过程。随着您为交换网络(VLAN、生成树)增加更多复杂性,需要更多细微差别,但基本算法保持不变。
关于你的第二和第三个问题:
2) 我个人的倾向是尽可能减少切换。生成树是许多专业人士的祸根;此外,以太网没有环路保护;一个小小的配置错误可能会导致广播风暴,需要您手动干预并关闭链接才能平息。即使您的网络很小,也要至少有一个路由器,所有第 2 层子网都挂在上面;在我看来,这更容易。
3) 这在很大程度上取决于您的网络规模,以及您预计内部网与互联网流量的比重。如果部门之间有大量通信,则可能需要设置路由器层次结构,以便纯内部流量不会影响其他所有人的互联网访问。另一方面,如果您希望每个人都只访问一组通用服务(AD、电子邮件)和互联网,那么单个核心路由器(或一对,用于冗余)可能就足够了。
就为每个部门配备一个路由器并将它们连接起来而言,这个网络该如何管理?如果只有一个 IT 管理机构,那么只需构建一个分层网络;让用户使用共享路由器服务不会有问题。如果每个部门都要保留自己的 IT 人员,那么可能需要每个部门配备一个路由器并进行内部对等连接,但这很可能会使您的网络设计复杂化。
答案2
我将尽可能清楚地回答您的所有问题。
- 据我所知,没有共享 Mac 地址表,因为实际上没有必要。交换机将留意来自其他交换机的网络活动,并在其 Mac 地址表中记录条目。它还将留意 ARP 请求。它的 MAC 地址表只需很短的时间就能填满。
对于您关于它们不直接控制的 mac 的问题,我认为您指的是未直接连接到其端口的 PC 的 mac。好吧,让我们以我的交换机上的 PC A 和您的交换机上的 PC B 为例。两个交换机都通过标准上行链路连接。当我出现并连接我的交换机时,您的 PC 和交换机在网络世界中都是孤独的。我交换机上的 PC 将需要您 PC 的 MAC 地址,并且要做到这一点,它需要发出广播 ARP 消息(2 级广播但 3 级单播,因为它有您 PC 的 IP 地址)。我的交换机将在其每个端口上广播它。然后它到达您的交换机,您的交换机将执行相同操作。然后您的 PC 将应答我的 PC,并且它们都知道彼此的 mac 地址。在此过程中,两个交换机都会记下它们不知道的 mac 地址。
请记住,仅交换机网络在第 2 级上运行,因此它们(理论上)独立于第 3 级。假设超出 /8(255.0.0.0)不是很合理,并且会让您超出私有 IP 空间。
我肯定会说路由器的层次结构,因为它允许您拥有更清晰的配置并在每个部门的基础上实施策略。思科在 CCNA 方面同意我的观点 :-)
答案3
您的问题很长,我将回答这一部分。
哪一个在架构上更合理:一个核心路由器将许多子网连接到互联网,还是一个路由器层级(每个部门一个路由器,上行连接到核心)?或者,最好为每个部门配备一个路由器,然后将它们连接在一起形成一个微型互联网?
大多数路由器都可以实现某种防火墙。由于交换机是第 2 层设备,因此您通常不会在那里进行任何类型的过滤。如果您需要将部门分开以实现某种安全性,或者如果您需要为该部门实施不同的防火墙策略,那么如果它们位于单独的子网上,则更容易实施。
仅使用交换网络可以有效处理的最大 IP 地址空间是多少?在什么时候应该考虑将网络分成由路由器连接的多个段?
在集线器网络中,冲突域中的设备数量限制为 1024 个。尽管这在技术上不再适用于交换网络,但我通常会尝试将其作为单个子网上设备数量的上限。
如果您使用的协议进行大量广播,您可能还需要使用路由器来划分网络。路由器通常不会传递广播。
引用 1024 设备限制。
在由多个通过中继器连接的段组成的给定以太网上,所有站点都涉及同一个冲突域。冲突算法限制为 1024 个不同的退避时间。因此,标准中允许的通过中继器连接的多段 LAN 的最大站点数量为 1024 个。但是,这并不会将您的站点限制为 1024 个站点,因为以太网可以通过分组交换设备(例如交换集线器或路由器)连接在一起。
答案4
当您将一台交换机上行连接到另一台交换机时,它们会共享 MAC 地址表吗?或者这是供应商特定的功能?如果它们不共享,它们如何处理发往它们不直接控制的 MAC 的数据包?
通常,堆栈在成员之间共享一个表(例如,Juniper 的“虚拟机箱”),因为它们通常具有冗余路径,并且标准表无法工作。
否则,每个交换机都需要自己的表,尽管通过 CDP 和 LLDP 等协议,它们可以从邻居那里获取更多信息。
仅使用交换网络可以有效处理的最大 IP 地址空间是多少?在什么时候应该考虑将网络分成由路由器连接的多个段?
如果安全不是问题,那么问题就在于广播。台式机(和笔记本电脑)往往很嘈杂,因此只有几百台机器会产生明显的广播流量。管理良好的服务器(例如,arp 到期时间延长到几个小时)几乎不会增加广播负载,因此边缘路由器吞吐量的限制可能是限制因素。对于低流量服务器(或特殊网络),数千台服务器很容易位于同一个广播域中。
哪一个在架构上更合理:一个核心路由器将许多子网连接到互联网,还是一个路由器层级(每个部门一个路由器,上行连接到核心)?或者,最好为每个部门配备一个路由器,然后将它们连接在一起形成一个微型互联网?
这两种观点都是正确的,但是在现在运行 OSPF 的三层交换机中,我倾向于第二种观点。