当 BGP 路由器向其邻居发送路由时,并非会发送所有已知的路由。哪些路由被发送取决于许多因素,例如邻居的位置、邻居之间的业务关系以及策略。为了帮助 BGP 路由器做出这些决策,需要在每条路由上附加一些额外信息,预定义的路由属性无法包含此类信息。BGP 大型社区正是为此创建的。本任务的目标是在仿真实验中了解如何使用它来反映邻居之间的业务关系。
假设由于某些技术问题,AS-4 与 AS-156 的连接中断了。我们可以通过关闭 AS-4 和 AS-156 之间的 BGP 互连来模拟此情况。由于 AS-4 是 AS-156 唯一的服务提供商,因此这实际上就将 AS-156 与互联网断开了。如果从 AS-156 的某个主机ping 另一个主机,可以看到以下结果(请勿在 BGP 路由器上运行 ping,在主机上做):
// 在 10.156.0.72 上
# ping 10.155.0.71
PING 10.155.0.71 (10.155.0.71) 56(84) bytes of data.
64 bytes from 10.155.0.71: icmp_seq=1 ttl=62 time=14.6 ms
64 bytes from 10.155.0.71: icmp_seq=2 ttl=62 time=0.363 ms
# ping 10.161.0.71
PING 10.161.0.71 (10.161.0.71) 56(84) bytes of data.
From 10.156.0.254 icmp_seq=1 Destination Net Unreachable
From 10.156.0.254 icmp_seq=2 Destination Net Unreachable
From 10.156.0.254 icmp_seq=3 Destination Net Unreachable
我们看到 10.155.0.71 仍然可达,因为它属于 AS-155,AS-155 和 AS-156 还是互连的。然而,10.161.0.71(归属于 AS-161)则无法访问,因为没有人会为 AS-156 路由该包。AS-156 仍然与 AS155 进行互连,并且 AS-155 直接连接到互联网,那么为什么 AS-156 不能通过 AS-155 访问互联网呢?这是因为是否转发另一个自治系统中的流量取决于双方之间的业务关系。
在 AS-156 和 AS-4 试图解决问题的同时,AS-156 找到了 AS-155,同意支付给 AS-155 一定的费用,暂时通过 AS-155 访问互联网。这需要对 AS-155 的 BGP 路由器进行一些更改,以便 AS-155 可以临时为 AS-156 提供中转服务。请参阅 Section 9 完成此任务,并确保运行以下命令重新加载 BIRD配置。
# birdc configure
BIRD 2.0.7 ready.
Reading configuration from /etc/bird/bird.conf
Reconfigured