BGP路径属性之AS_PATH的四种类型浅析AS_PATH属性,公认必遵,描述到达目标网络所要经过的AS号序列。最重要的作用是防环,如果BGProuter发现自己的AS号位于接收自外部对等体的路由,则忽略该路由仅当update消息被发送给其他的AS时,BGP路由器才会将其AS号追加在AS_PATH中。这句话也隐含了另一个意思,那就是如果要修改AS_PATH属性,则必须在AS边界路由器上执行策略。有四种类型的AS_PATH:AS_SET:一个去往特定目的地所经路径上的无序AS号列表AS_SEQENCE:一个有序的AS号列表AS_CONFED_SEQUENCE一个去往特定目的地所经路径上的有序AS号列表,其用法与AS_SEQUENCE完全一样,区别在于该列表中的AS号属于本地联邦中的ASAS_CONFED_SET一个去往特定目的地所经路径上的无序AS号列表,去用方法与AS_SET完全一样,区别在于列表中的AS号属于本地联邦中的AS以上四种类型是通过AS_PATH属性中的类型代码进行区分。关于这两个联邦特有的AS_PATH类型,详细内容请见本文档“联邦”一小节,对于前两种AS_PATH怎么理解呢?如上图由于做了汇聚,可能会丢失AS号信息,而作为AS号本身,如果用于防环的目的,其实并不一定要求AS号排列有序,因此AS3113向上游通告汇总路由时,以AS_SEQENCE为起始,同时AS_SET仍然保留明细路由的AS号(无序)。如果AS_PATH中包含了AS_SET,那么就不需要在聚合路由中包含ATOMIC_AGGREGATE了,这是因为,AS_SET不但可以向下行路由器通告已经发生了路由聚合,而且包含了比ATOMIC_AGGREGATE更多的信息AS_PATH:类型AS_SEQENCE以下为UPDATE消息中的AS_PATH字段内容(AS_PATH类型为AS_SEQUENCE的情况,也就是一般情况)上图仅做基本的BGP配置,在R1上发布1.0及2.0,不做汇总,R4收到的AS_PATH如下:AS_PATH:类型AS_SETR3上对R1、R2过来的明细进行汇总(汇总命令加上AS_SET关键字),在R4上抓包会发现汇总路由的AS_PATH=300{100,200}:再看看抓包的结果,发现AS_PATH包含两部分,300为AS_SEQ类型,{100,200}为AS_SET类型