同一台 IOS XR 路由器上的两台主机互相 ping 不通,而配置看起来本应能通。两个子接口都出现在同一个网桥组下,名字只差一个字母,提交也没有报任何错。缺少的是层次结构中的一层:网桥组只是一个容器,其中的每个网桥域都是拥有自己成员关系的独立广播域。再加上第三台主机,情况通常只会更糟,而不会更清楚。

ObjectOwnsDoes not own
Bridge groupa named container for domainsany forwarding or MAC learning
Bridge domainone broadcast domain, MAC table, flooding scopethe VLAN match on an ingress port
Attachmentwhich frames from which interface and tag enter the domainwhich other domains they can reach

从现象出发,向上阅读

接口显示 up、ARP 表项却始终不填充,而主机在同一子网内不通,这是域成员关系问题的特征,而不是路由问题。路由问题通常会给你一个 ICMP unreachable 或一个确实存在的下一跳;缺少广播域只会给你第二层的沉默。在查看任何一个 IP 地址之前,先检查两个接入点是否在同一个网桥域中。如果不在,再多的地址规划也无法把它们连起来。

网桥组只是一个容器,仅此而已

在 IOS XR 的第 2 层 VPN 层次中,一个网桥组包含一个或多个网桥域,而组本身不做任何交换。同一个组下的两个域是兄弟关系,而不是同一个 LAN 的成员,尽管配置读起来像是嵌套的。这种安排是刻意的:组是你组织服务的地方,域才是转发真正发生的地方。

Cisco 的第 2 层多点服务指南把网桥域描述为一个广播域,它持有物理或虚拟端口,按目的 MAC 交换,学习源地址,并且只在该域内泛洪未知单播、广播和组播。在读自己的配置之前,先读那份指南里的层次说明。

网桥域拥有转发和学习

MAC 学习的作用范围限于该域,因此在一个域中学到的站点在兄弟域中不可见。泛洪遵循同一边界,所以一台主机发出的广播永远到不了另一个域中的主机。域内的水平分割组、成员状态以及任何已配置的转发控制会进一步收窄合格的输出。

伪线或虚拟转发实例是通向某个域的服务接入。它不是父网桥组的同义词,而把它当作同义词,正是提供商边缘最终带着 两个本应隔离的服务 却没有隔离的原因。

接入点决定哪些帧能进来

域之下是接入点:接口或子接口、它匹配的封装、任何标签操作,以及它加入的域。编号碰巧看起来像 VLAN 的子接口并不是帧契约,同一个物理端口可以用两种不同的匹配为两个域供流。写下入方向接口、匹配的标签、标签动作和目标域,然后单独写出去方向的一侧。

在搬动配置之前,先在两个服务之间比较这份契约。当两个域位于同一个组下、而只有其中一个承载流量时,差异几乎总在接入点,而不在域上。

如果设计还要在子网之间路由,第 3 层接入点就是另一个对象,有自己的网关地址和策略。网桥域的名字并不能说明是哪个网关在为它服务。

在重新组织之前,用已部署的版本进行核实

用该版本自带的运行命令来查看域,而不是查看运行中的配置。show l2vpn bridge-domain detail 会报告各个域及其接入状态,带 MAC 选项的 show l2vpn forwarding bridge-domain 则显示在何处学到了什么。如果一个 MAC 地址出现在一个域中而没有出现在兄弟域中,那么这套层次正是按配置在做事。

然后在改动任何东西之前,先清点组下的每个域和每个接入点,并保留现有配置以便对比。一个熟悉的对象名并不能证明每个嵌套的服务都共享它的作用范围。

相关文章