我有一个类似于这个的网络
CUSTOMER - BT - SPRINT
BT - CISCOcustomer loopback 192.168.10.1 customer loopback1 192.168.1.1
BT loopback 192.168.50.1
CISCO loopback 192.168.100.1
SPRINT loopback 192.168.150.1
客户与BT连接
BT与SPRINT和CISCO连接
我正在使用Community,我想阻止192.168.1.1/24的广告SPRINT,但允许它出现在Cisco中
这是我失败的尝试:
CUSTOMER:
ip prefix-list ROUTE 192.168.1.0/24
neighbor 2.2.2.2 (bt) route-map BLOCKSPRINT out
neighbor 2.2.2.2 send-community
route-map BLOCKSPRINT p 10
match ip add prefix-list ROUTE
set community 500:500
route-map BLOCKSPRINT p 20
BT
ip prefix-list CISCO 192.168.150.0/24
ip community-list 1 500:500
neighbor 1.1.1.1 Peer-CUST in
neighbor 1.1.1.1 send-communities
neighbor 3.3.3.3 send-communities
route-map Peer-CUST p 10
match ip add prefix-list CISCO
match community 1
set community no-advertise
route-map Peer-CUST p 20地址仍然显示在SPRINT路由器上。
发布于 2016-12-02 18:18:32
您可以让BT与no-advertise社区一起发送到Sprint的路由,这样Sprint路由器就不会为它做广告。BT需要过滤前缀到Sprint。类似于:
neighbor 3.3.3.3 distribute-list 1 out
!
access-list 1 deny 192.168.1.1 0.0.0.255
access-list 1 permit any或
neighbor 3.3.3.3 route-map BLOCKSPRINT out
!
access-list 1 deny 192.168.1.1 0.0.0.255
access-list 1 permit any
!
route-map BLOCKSPRINT permit 10
match ip address 1发布于 2016-12-03 05:20:49
所以有几点-
1.)NO_ADVERTISE旨在防止给定的BGP扬声器进一步传播路由。因此,在这种情况下,将此属性添加到向对等方广告的给定路由实际上将防止路由被推送到运营商网络的其余部分。您可能需要考虑NO_EXPORT,它的目的是限制给定前缀在邦联之外的传播(或者整个联邦没有使用)。有关一般社区,特别是知名社区行为的详细信息,请参见RFC1997。
2.)众所周知的社区不需要尊重,但一般来说,它们在大多数实现中都是默认的(您选择显式地去除这些值的..unless)。然而,它们在本质上往往是全或无的,因此,例如,意味着给定的路由不能通过直接的对等路由器或通过对等路由器的ASN传播。在这种情况下,将NO_EXPORT放在一条路线上将阻止BT向思科或Sprint的广告,但将允许它出现在BT内的任何其他路由器。
3.)在这种情况下,如果您希望有选择地向给定的上游对等方发布路由广告(或不具体地没有广告),那么BT和客户路由器的所有者将不得不就社区价值及其特殊含义达成一致。您的运营商还可以附加社区,说明某条路线是来自其其他直接客户之一,还是来自上游运输(这是缩减桌子大小的一种方便方法)。除了上面提到的众所周知的价值之外,其他的一切都有可能被抢夺,而且,正如前面提到的,没有标准的保证(除了与承运人谈判的内容之外)什么行为与什么社区相对应。也没有保证任何运营商将保留附加的社区作为前缀跨越他们的网络。
所以,让我们举一个相当简单的例子。在BT路由器(让我们称之为ASN2856)上,我们将在每个对等点上设置一个过滤器,用于客户(我们称之为ASN65400)、Sprint (ASN1239)和思科(ASN109),以便只允许使用xxx:ASN进行路由。因此,如果我们在路由上放置65400:109,而不是65400:1239,那么路由将被允许到思科,而不是斯普林特。如果65400:1239和65400:109都附加在前缀中,则路由将同时到达这两个位置。如果两者都没有,那么路线将留在ASN2856内。
所以在BT上我们会有类似的东西
ip community-list to-cisco permit .*:109
ip community-list to-sprint permit .*:1239
ip community-list to-customer permit .*:65400
route-map CISCO-PEER-OUT permit 10
match community to-cisco
set community none
route-map CISCO-PEER-OUT deny 20
route-map SPRINT-PEER-OUT permit 10
match community to-sprint
set community none
route-map SPRINT-PEER-OUT deny 20
route-map CUSTOMER-PEER-OUT permit 10
match community to-customer
set community none
route-map CUSTOMER-PEER-OUT deny 20
! Start the BGP section
neighbor 1.1.1.1 send-communities
neighbor 1.1.1.1 remote-as 109
neighbor 1.1.1.1 route-map CISCO-PEER-OUT out
neighbor 2.2.2.2 send-communities
neighbor 2.2.2.2 remote-as 1239
neighbor 2.2.2.2 route-map SPRINT-PEER-OUT out
neighbor 3.3.3.3 send-communities
neighbor 3.3.3.3 remote-as 65400
neighbor 3.3.3.3 route-map CUSTOMER-PEER-OUT out在客户路由器上你会有这样的东西
ip prefix-list ROUTES-FOR-CISCO permit 192.168.1.0/24
route-map MARK-ROUTE permit 10
match ip address prefix-list ROUTES-FOR-CISCO
set community 65400:109
route-map MARK-ROUTE permit 20
match any
set community 65400:109 65400:1239
!BGP section
neighbor 3.3.3.4 remote-as 2856
neighbor 3.3.3.4 send-community
neighbor 3.3.3.4 route-map MARK-ROUTE out这将设置前缀192.168.1.0/24,其社区为65400:109个,这将允许只将路由发送到ASN109。所有其他航线都有65400:109和65400:1239,这将允许上述航线前往任何一家航空公司。在BT路由器上,我还将其设置为清除发送给对等点的所有社区--例如,思科对等方不会看到您包含的65400:109个社区。
当然,在实践中,社区的结构可能不会完全像这样,但希望这能让你体验一下什么是可能的。
希望这能帮上忙-
https://networkengineering.stackexchange.com/questions/37010
复制相似问题