路由器与交换机

我知道路由器和交换机之间的区别,但是我的理解有几个模糊的地方。

  1. 当你将一台交换机上行到另一台时,它们是否共享MAC地址表? 或者这是一个供应商特定的function? 如果他们不共享,他们如何处理发送给他们不直接控制的mac的数据包?

  2. 什么是最大的IP地址空间,只有使用交换networking才能有效处理,在什么时候应该考虑将networking分成多个由路由器join的网段?

  3. 哪种架构更健全:一台核心路由器将多个子网连接到Internet或一个路由器层次结构(每个部门上行到核心层)? 或者,最好给每个部门一个路由器,然后将它们组合成一个小型互联网?

关于将一台交换机上行到另一台交换机:不,它们不共享MAC地址表。 每台交换机维护自己的桥接表,通过监听每个交换机在一个端口上接收到的stream量来build立桥接表。 考虑下面的例子(道歉为可怕的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)。

  1. 主机A发送一个帧给主机B. 帧的源MAC为AA:AA:AA:AA:AA:AA ,目的MAC为BB:BB:BB:BB:BB:BB
  2. 交换机1当前有一个空的桥接表。 收到框架,它有两件事情:
    1. 它在桥接表中创build一个新的条目, AA:AA:AA:AA:AA:AA存在于端口1上
    2. 因为它不知道BB:BB:BB是在哪里,所以它会将该帧泛洪到最初听到的端口(端口1) 之外的每个端口。
  3. 交换机2接收其端口2上的泛洪帧。 同样,由于桥接表最初是空的,它遵循相同的过程:
    1. 新的条目: AA:AA:AA:AA:AA:AA存在于端口2上 (回想起在Switch 2上,它具有来自Switch 1的独立桥接表)
    2. 除了接收到的那个以外,所有的端口都被淹没了。

此时, 主机B收到该帧。 当主机B发送响应时,会发生以下情况。

  1. 主机B主机A发送一个帧。 帧的源MAC为BB:BB:BB:BB:BB:BB ,目的MAC为AA:AA:AA:AA:AA:AA
  2. 交换机2在其桥接表中目前有一个条目( AA:AA:AA:AA:AA:AA – > 端口2 )。 收到框架,它有两件事情:
    1. 它在其桥接表中创build一个BB:BB:BB:BB:BB:BB存在于端口1之外的条目。
    2. 由于它具有特定的目的地MAC( AA:AA:AA:AA:AA:AA )的桥接表项,所以它仅将帧转发出端口2 ,而不是像以前那样泛洪。
  3. 交换机1在其端口2上接收转发的帧。 再次,它遵循相同的过程:
    1. 新条目: BB:BB:BB:BB:BB:BB位于端口2之外
    2. 有一个特定的桥接表项( AA:AA:AA:AA:AA:AA – > 端口1 ),所以帧仅从该端口转发出去。

就学习MAC地址而言,无论交换机的数量和连接的设备的数量如何,都遵循相同的过程。 当你为交换networking(VLAN,Spanning Tree)增加更多的复杂性时,更多的微妙之处在于发挥作用,但基本algorithm保持不变。

关于你的第二和第三个问题:

2)我个人的偏见是尽量减less切换。 生成树是许多职业生涯的祸根; 再加上以太网没有环路保护的事实; 一个小错误configuration可能会导致广播风暴,需要你手动干预和下行链接,以便他们平息。 即使您的networking很小,至less有一台路由器会closures所有您的二层子网。 在我看来这更简单。

3)这很大程度上取决于您的networking规模,以及您期望看到的内部互联网stream量和互联网stream量。 如果各部门之间会有很多的交stream,那么build立一个路由器的层次结构,这样纯粹的内部stream量不会影响其他人的互联网访问。 另一方面,如果你期望每个人只能访问一套通用的服务(AD,email)和互联网,那么单个核心路由器(或一对冗余)就足够了。

在给每个部门一个路由器并将它们网状化的过程中,这个networking是如何pipe理的? 如果要有一个行政IT部门,那么就build立一个分层的networking; 让共享路由器服务的用户不会成为问题。 如果每个部门都要维护自己的IT人员,那么可能需要每个部门的路由器和内部对等设备,但这很可能会使您的networkingdevise复杂化。

我将尽可能清楚地回答你所有的问题。

  1. 没有我知道的Mac地址表的共享,因为没有必要真的。 交换机将查看来自其他交换机的networking活动,并在其Mac地址表中logging条目。 它也会查找ARP请求。 它只需要很less的时间来填满它的mac地址表。

对于你的问题,关于他们不直接控制的电脑我认为你的意思是没有直接连接到他们的端口的个人电脑的电脑。 那么以我的交换机上的PC A和交换机上的PC B为例。 两台交换机都通过标准上行链路连接。 当我走过来连接我的交换机时,您的电脑和交换机都在networking世界中独处。 我的交换机上的PC将需要您的PC的MAC地址,并且只需要发出广播ARP消息(Level2 Broadcast,但Level3单播,因为它具有您的PC的IP地址)。 我的交换机将在它的每个端口上广播它。 然后它到达您的交换机谁也会这样做。 然后你的电脑会回答我的电脑,他们都会知道对方的mac地址。 在这个过程中,两台交换机都会记下他们不知道的mac地址。

  1. 请记住,只有交换机的networking在二级上运行,所以他们(理论上)独立于三级。我们只是说超出一个/ 8(255.0.0.0)不是很合理,会让你离开私有IP空间。

  2. 我会定义一个路由器的层次结构,因为它可以让你有一个更明确的configuration和执行政策在每个部门的基础上。 思科同意我的CCNA 🙂

你的问题很长,我要解决这个问题。

哪种架构更健全:一台核心路由器将多个子网连接到Internet或一个路由器层次结构(每个部门上行到核心层)? 或者,最好给每个部门一个路由器,然后将它们组合成一个小型互联网?

大多数路由器可以实现某种防火墙。 由于交换机是第2层设备,通常不会在那里进行任何types的过滤。 如果您需要为某种安全性分开部门,或者如果您需要为该部门实施不同的防火墙策略,则在单独的子网上执行此操作将更容易。

什么是最大的IP地址空间,只有使用交换networking才能有效处理,在什么时候应该考虑将networking分成多个由路由器join的网段?

在一个集线器networking中,您的冲突域中只能有1024个设备。 即使这在技术上不再适用于交换式networking,我通常会试图坚持这一点,作为我放在一个子网上的设备数量的上限。

如果您正在使用一个执行大量广播的协议,您也可能需要使用路由器来分割您的networking。 广播通常不通过路由器。


引用1024设备限制。

以太网:权威指南 3.6冲突域( 谷歌书链接 )

在由多个与中继器连接的段组成的给定以太网中,所有站都参与同一个冲突域。 碰撞algorithm限于1024个不同的退避时间。 因此,与中继器连接的多段局域网标准允许的最大站点数为1024.但是,这不会将站点限制为1024个站点,因为以太网可以与包交换设备(如交换集线器)连接在一起或路由器。

对于第二个问题,请参阅何时/为什么开始子网划分networking?

当你将一台交换机上行到另一台时,它们是否共享MAC地址表? 或者这是一个供应商特定的function? 如果他们不共享,他们如何处理发送给他们不直接控制的mac的数据包?

通常,堆栈在成员之间共享一个表(例如,Juniper的“虚拟机箱”),因为它们通常具有冗余path,而标准表不能工作。

否则,每台交换机都需要自己的表,尽pipe通过像CDP和LLDP这样的协议,他们可以从邻居那里获得更多的信息。

什么是最大的IP地址空间,只有使用交换networking才能有效处理,在什么时候应该考虑将networking分成多个由路由器join的网段?

如果安全不是问题,那简直就是广播。 台式机(和笔记本电脑)往往是喋喋不休的,所以在几百台机器上就有广泛的广播stream量。 pipe理良好的服务器(例如,arp expiry延长到几个小时)几乎不会增加广播负载,所以对边缘路由器吞吐量的限制可能是限制因素。 对于低stream量的服务器(或者特殊的networking),成千上万的服务器可以很容易地位于同一个广播域。

哪种架构更健全:一台核心路由器将多个子网连接到Internet或一个路由器层次结构(每个部门上行到核心层)? 或者,最好给每个部门一个路由器,然后将它们组合成一个小型互联网?

两者都是有效的视图,但是在运行OSPF的三层交换机的这些日子里,我倾向于第二个。