我们首先根据“联盟拓扑”来了解“团体属性”:什么是BGP路由的“团体属性”?我们可以为一个路由添加上任何一个community值,这样的话,以后再对这个路由进行控制的时候,就方便多了,就可以通过community来控制,相当于之前IGP协议中的TAG标记;如何来表示BGP的团体属性?@在BGP更新报文中占用了4个字节;表示格式有两种,一种为新格式;一种为老格式;@新格式为:AS:nn;其中前面的AS为AS号;后面的nn为管理员为该路由任意设置的一个团体值;@老格式为:10进制数值;范围从0----4294967295;默认情况下,IOS使用的均为老格式的community表示形式;@为了能在两种格式之间进行转换,让IOS支持新的格式,我们可以以下命令:Ipbgp-communitynew-format(全局配置模式下)团体属性的分类:分为“公有团体属性”和“私有团体属性”!公有团体属性----1、internet:说明该路由可以在internet网上任意的传输;2、no-export:将本路由不能传输到本地的AS(大的AS)之外;3、no-advertise:收到这样的路由后,不能再向外通告了;4、local-as:当没有联盟时,和no-export相同;如果有联盟存在的话,那就是不能通告到“子AS”之外去;5、none:不携带任何的“团体属性”;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~需要搞清楚的问题:@如何设置community属性;通过route-map,可以在宣告路由、发送路由、接收路由时候进行配置;@如何添加community属性;通过route-map,在路由的传递过程中修改&覆盖原来的community,直接setcommunity456:4&增加原来的community,直接setcommunity456:4additive通过route-map,在刚刚进入BGP的时候修改&可以在route-map中同时书写多个setcommunity,他们之间是共存的关系;不是相互覆盖;@如果匹配community属性;通过团体属性列表-----community-list;有两种表示方法,一种是通过ID来表示,一种是通过“命名”来表示;@如果一个路由含有多个community属性,他们之间是什么逻辑关系;$当一个路由同时包含多个团体属性的时候,他们之间是或的关系。当我们在匹配时,只要匹配其中一个属性就可以了;1:12:23:3$当一个路由同时包含多个“公有”属性的时候,到底哪个属性生效呢?传输范围小的生效;@如何传递community属性;默认情况下,community属性是不会随着路由一起传递出去的;除非我们使用neighborx.x.x.xsend-community命令,使该路由器再将路由发送出去的时候,同时也将“团体属性”发送出去。并且我们需要知道的是:community属性的传递是有绝对的方向性的;@团体属性在一个IOS中的表示;无论我们在IOS中使用community老的格式,还是新的格式。这些格式都只是用来让人看的,在被IOS进行处理的时候,都是相同的。即均为2进制的格式;所以,我们在定义或者调用的时候,无论我们如何去书写。最后依然会变成该IOS当前使用的community的格式;Ipbgp-communitynew-format~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~当我们更改一个BGP路由的现有community属性时候,我们通过route-map来实现;$setcommunity456:4-----将原有的community属性全部覆盖掉,即该路由此时只有一个community属性:456:4;$setcommunity456:4additive-----将该community值456:4,添加到该路由的原来的community属性中。即,如果该路原来的community属性为:100:1,100:100,则应用策略之后,应该是:100:1,100:100,456:4;当我们更改一个route-map的时候,先后配置的两个不同的set命令(都是setcommunity{value}),他们之间是同时并存,而不是相互覆盖;如:一个route-map实现为10.10.4.0/24添加community属性456:4;route-mapCOMMUpermit10matchipaddressprefix-list4.0setcommunity456:4后来想增加另外一个属性:456:456,此时我们可以直接对原来的route-map进行操作:route-mapCOMMUpermit10setcommunity456:456最后显示结果为:showroute-mapCOMMU--------验证最后配置的route-map;route-mapCOMMUpermit10matchclause:ipaddressprefix-list:4.0set:community456:4456:456(两者同时共存,而不是相互覆盖)团体属性列表:ipcommunity-list分类:标准、扩展;标准的团体属性列表:匹配的是特定的团体属性值(老格式和新格式均可),ID范围为1----99扩展的团体属性列表:匹配的是“正则表达式”,即通过正则表达式的方法来表示“团体属性字符串”,ID范围为100--500;标准的团体属性列表:Ipcommunity-list10permit100:1100:2100:3-----当多个团体属性在同一个团体属性列表条目时,他们之间是“与”的关系,即一个路由条目必须同时包含这些团体属性值,才可以匹配住;Ipcommunity-list20permit100:1Ipcommunity-list20permit100:2-------如果这样来写的话,表示团体属性列表20中有两个条目,每个条目只匹配一个团体属性值,这两个条目之间的关系是“或”的关系!R3#Showipcommunity-list-----一个团体属性列表中的多个条目并不是通过“序列号”区分开的;而是按照先后顺序!Communitystandardlist20permit100:1permit100:2permit100:3联想:route-map中的match语句的书写;@如果route-map的一个条目中,在一个match后面同时匹配多个属性,则这些属性之间是“或”的关系;@如果route-map的一个条目中,同时存在多个match条目,则多个match条目之间属于“与”的关系;但是,匹配多个“团体属性列表”时,无论怎么写,在route-map中的最终的状态都是:route-mapWOLFPERMIT20matchcommunity12matchipaddress99扩展的团体属性列表:R3(config)#ipcommunity-list100permit?LINEAnorderedlistasaregular-expression------扩展的团体属性列表是通过“正则表达式”来表示“团体属性”的!注意:@每个BGP路由条目默认情况下,都是包含一个公有的团体属性:internet(虽然默认情况下不显示)@在团体属性列表中,无论是标准的,还是扩展的,最后有一个默认的denyany,即denyinternet。所以,如果想放行其他的路由,一定得记得配置最后的permitany,即permitinternet;【permitcr也相当于Permitinternet,结果相同】@删除其中任何一个条目的时候,都会将整个团体列表全部删除!这点与ACL相同!格外注意!@通过community-list进行过滤时,如果无法正常收发一个路由,则一定得考虑是否某一条列表中含有Internet;因为该属性比较特殊(任何一个BGP路由条目都包含该属性),所以要格外注意!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~BGP路由管理@更改AD:distance命令,与IGP中的应用相同;@更改metric:通过route-map更改MED;@分发列表@前缀列表@Route-map@filter-list@ORF注意:当对同一个邻居同时通过上述的多种方式进行过滤时,他们之间的优先级如何?入向策略:filter-list-----route-map-----distribute-list/prefix-list(优先级从高到低)出向策略:distribute-list/prefix-list-----ORF----filter-list/route-map(优先级从高到低)$针对同一个邻居的同一个方向,分发列表与前缀列表,只能使用一个;如果同时配置,会报错“不能同时共存”!$以上策略均是:在上一个策略过滤的基础上,再执行下面一个过滤策略;如果我们调用了一个从来没有进行定义过的策略,该如何处理?@distribute-list/prefix-list,则允许所有;@filter-list/route-map,则拒绝所有;