在我的实验室里,我有两个路由器,它们连接到不同的ISP。
它们不是通过电线直接连接的,而是通过隧道连接的。
通过那个隧道,我创建了一个iBGP对等点,他们交换了路由。
现在,路由器A向路由器B发送更好的路由,后者现在将其安装到其路由表中。
现在路由器B“能够”通过路由器A通过隧道到达所有的东西。
上面的场景描述了我的问题,我认为解决方案是检查来自与相邻路由器相同的传入路由,并增加更高的距离,这样现有的路由就不会改变。
这算是个好办法吗?如果是的话,我怎么能做到呢?
到目前为止,这是我的过滤器配置,但不幸的是,它不能正常工作:
import filter {
if bgp_path ~ [= AS_NUMBER =] then
{
bgp_path.prepend(AS_NUMBER);
bgp_path.prepend(AS_NUMBER);
bgp_path.prepend(AS_NUMBER);
bgp_path.prepend(AS_NUMBER);
bgp_path.prepend(AS_NUMBER);
bgp_path.prepend(AS_NUMBER);
bgp_path.prepend(AS_NUMBER);
accept;
}
reject;
};但问题似乎更复杂:
我需要调整对两个iBGP路由器的偏好。
路由器A比路由器B有更高的偏好,路由器B会通过路由器A发送所有的东西。
要么我的设置是错误的,要么是通过隧道执行iBGP对等程序是错误的。
发布于 2016-02-02 17:01:58
您的问题似乎与iBGP规则有关,即iBGP路由器不会为从另一个iBGP扬声器中学到的路由做广告。问题是iBGP不会改变AS_PATH,这就产生了路由循环的问题。为了避免路由循环,iBGP扬声器将不会向通过iBGP学习的任何其他iBGP扬声器前缀做广告。这就是为什么iBGP需要一个完整的网格(每个iBGP扬声器必须连接到每一个其他iBGP扬声器)或缓解(例如路由反射器或联盟)。
如果你试图通过隧道宣传从另一个iBGP演讲者那里学到的前缀,那是行不通的。您需要通过隧道使用eBGP,或者将隧道末端的路由器设置为路由反射器或单独的联盟。路由反射器必须连接到它是路由反射器的每一个路由器,或者联盟必须有一个全网格的iBGP扬声器。
用于修改eBGP路由的方法,如AS_PATH预挂或更改度量(MED),是针对eBGP而不是iBGP的。
发布于 2016-02-03 07:28:24
如果我正确理解(因为还没有清楚地阐述),您所遇到的问题是如何对通过ISPA和ISPB学到的相同前缀的路由进行优先级排序,由于某种原因,当离开网络的流量击中路由器B时,它不会通过ISPB链路,而是通过隧道->路由器A-> ISPA链接,即使路由器B也有从ISPB提供商收到的相同目的地的路由。
如果您希望更改此行为,并且期望在流量到达该路由器后使用直接连接到该路由器的提供程序,那么您必须调优或删除为路由器A和B之间的iBGP会话配置的本地首选项,因为本地首选项是可以对如何处理BGP决定的顺序排序的参数,有关详细信息,请参阅此链接http://www.techrepublic.com/blog/data-center/understand-how-the-bgp-best-path-selection-algorithm-works-on-your-router/。
此外,正如Ron用户之前已经解释过的,度量的AS_PATH前置或更改不影响iBGP行为,这些属性只更改eBGP行为,并允许您为传入流量而不是出站流量定义策略,这意味着您可以定义与ASN关联的前缀应该如何向整个世界进行广告的策略。
https://networkengineering.stackexchange.com/questions/26470
复制相似问题