骨干网与WLAN

BGP路径属性

BGP路径属性

路径属性

  • 任何一条BGP路由都拥有多个路径属性
  • 当路由器将BGP路由通告给邻居时,会携带路径属性
  • BGP的路径属性将影响路由优选

路径属性分类

公认属性是所有BGP路由器都必须能够识别的属性

  • 公认必遵:

    • 所有BGP设备都要认识这一类属性

    • 必须包含在每个Update消息里

    • 如果缺少这类属性,update报文不完整, 路由信息会出现错误

    • –Origin属性:起源属性,路由是通过network 注入的,还是通过import 注入的

      –AS_path属性:这条路由是从哪里来的,从哪个AS号来的,经过了哪个AS号,

      –Next_Hop:定义路由的下一跳信息

  • 公认任意:

    • 所有BGP设备认识此类属性
    • 可能包括在某些Update消息里
    • 如果缺少这类属性,路由信息不会出现错误
    • Local_Pref属性

可选属性不需要都被BGP路由器所识别

  • 可选过渡:

    • BGP设备可以不识别此类属性,而且依然会接受该类属性并通告给其他对等体
    • Community:团体属性
  • 可选非过渡:

    • BGP设备不识别此类属性会忽略该属性,且不会通告给其他对等体
    • MED属性

常用属性

常用属性

  • Next_hop:下一跳属性
  • Local_Preference:本地优先级属性
  • AS_Path:路径属性
  • Origin:起源属性
  • MED:开销属性

BGP选路规则

BGP选路原则:根据BGP属性来的,所以要先了解属性,在判断路由优选原则

  • (第一个):丢弃下一跳不可达的路由

    • 这不是BGP选路原则(至少华为不是这么认为的),因为在任何路由协议中,我们都会认为下一跳不可达的路由是无效的
  • 1、比较”协议首选值-pref-val”属性,数值越大越好,默认值是0,只在本设备生效,不在网络中传递

  • 2、比较”本地优先级-local_pref”属性,数值越大越好,默认值是100

  • 3、比较:是本地始发的路由,还是从对等体学来的路由, 本地始发的BGP路由优于从其他对等体学习到的路由,本地始发的路由优先级:优选手动聚合 > 自动聚合 > network > import > 从对等体学到的

  • 4、比较”as-path” 属性-as号越短越好

  • 5、比较”起源属性”-指的是以什么方式注入进BGP协议的

  • 6、比较”MED”属性,指的是一个路由器去往一个BGP路由网段的距离,类似cost

  • 7、比较EBGP邻居优先于IBGP邻居,EBGP路由优先级高于IBGP路由

  • 8、比较”去往BGP路由的下一跳IP地址”的cost开销值-越小越好

    • 如果前面8条选路规则无法选出最优的路由,我们就可以做负载均衡了

      备注:AS号一致, 在要负载均衡的那台设备上开启负载均衡功能

  • 9、比较”cluster-list”的长度,越短越好

  • 10、比较Router ID(Orginator_ID)的大小,越小越好

  • 11、比较”peer 后面的IP地址的大小”,越小越好

路由优选之Pre_val

Preferred_Value

  • 默认值0,数值越大越优先
  • 华为特定的私有属性
  • 只在本设备有效,不在网络中随路由传递

地址前缀列表

地址前缀列表:ip-prefix

  • 作用:专门做路由过滤的,不能过滤数据包
  • 特点:匹配路由精准,既可以匹配前缀,又可以匹配掩码
  • 配置:ip prefix 名字 动作 前缀 掩码

配置命令

1
2
3
4
5
6
7
8
9
10
11
第一步: 创建ip-prefix 抓取10.10.4.4的路由
[R3]ip ip-prefix ntd index 10 permit 10.10.4.4 32

第二步: 创建路由策略,匹配地址前缀列表,修改路由的属性
[R3]route-policy tedu permit node 10 //创建路由策略
[R3-route-policy]if-match ip-prefix ntd //匹配ip-prefix ntd
[R3-route-policy]apply preferred-value 123 //协议首选值为123

第三步: 在BGP中调用路由策略
[R3]bgp 100
[R3-bgp]peer 10.10.3.3 route-policy tedu import //入方向调用路由策略,因为协议首选值这个属性,只在我的本机起作用,不能在在网络中传递

路由优选之Next_hop

Next_hop

BGP路由中的Next_hop属性设置规则

  • BGP路由器在向EBGP邻居发布路由时,会把该路由的下一跳设置为本地与对端建立BGP邻居关系的接口地址
  • BGP路由器将本地始发路由发布给IBGP邻居时,会把该路由的下一跳设置为本地与对端建立BGP邻居关系的接口地址
  • 路由器在接收到EBGP邻居发布的路由后,在将路由传递给自己的IBGP邻居时,默认不修改路由的下一跳地址
  • 下一跳不可达的路由会被丢弃

配置命令

1
2
[R3]bgp 100
[R3-bgp]peer10.10.1.1next-hop-local //修改下一跳地址为本地地址,即自己转发路由出去的接口地址

路由优选之Local_pref

本地优先级

Local_preference属性

  • 本地优先级属性,默认是100,数值越大越优先
  • 该属性能再AS内部任意传递(IBGP邻居之间传递)
  • 该属性不能再AS之间传递(EBGP邻居之间不携带该属性)
  • 在AS的IBGP邻居之间,出方向和入方向都可以修改该属性

配置命令

1
2
3
4
5
6
7
8
9
10
11
第一步: 创建ip-prefix 抓取10.10.4.4的路由
[R3]ip ip-prefix ntd index 10 permit 10.10.4.4 32

第二步: 创建路由策略,匹配地址前缀列表,修改路由的属性
[R3]route-policy tedu permit node 10 //创建路由策略
[R3-route-policy]if-match ip-prefix ntd //匹配ip-prefix ntd
[R3-route-policy]apply local-preference 200 //本地优先级为200

第三步: 在BGP中调用路由策略
[R3]bgp 100
[R3-bgp]peer 10.10.3.3 route-policy tedu import //入方向调用路由策略

路由优选之AS_Path

AS_Path

AS_Path

  • AS_Path属性按顺序记录一条路由从源地址到目的地址所经过的AS编号
  • AS_Path属性为公认必遵属性,任何一个BGP路由,都必须携带这个属性
  • AS_Path属性能防止EBGP邻居之间的环路,还可以做路由优选
  • 路由在被通告给EBGP邻居时,路由器会在该路由的AS_Path中写上本地的AS号;路由被通告给IBGP对等体时,AS_Path不会发生改变
  • 最右侧的为起源AS号,最左侧的为邻居的AS号:AS-path属性
  • AS号越短越优先(经过的AS号越少越优先)

配置命令

1
2
3
4
5
6
7
8
9
10
11
第一步: 创建ip-prefix 抓取10.10.4.4的路由
[R3]ip ip-prefix ntd index 10 permit 10.10.4.4 32

第二步: 创建路由策略,匹配地址前缀列表,修改路由的属性
[R3]route-policy tedu permit node 10 //创建路由策略
[R3-route-policy]if-match ip-prefix ntd //匹配ip-prefix ntd
[R3-route-policy]apply as-path 200 200 additive //AS_PATH为200 200

第三步: 在BGP中调用路由策略
[R3]bgp 100
[R3-bgp]peer 10.10.3.3 route-policy tedu import //入方向调用路由策略

备注:

  • 为什么添加的as号都为200呢,是只能添加200吗? 不是,可以添加任意值的as号
  • 之所以都添加200,不添加其他AS号,仅仅是为了预防,因为AS_Path防止环路而导致路由无法传递
  • 比如:如果我们添加了AS_path 500 ,如果我们要把路由传递给AS500的自制系统,就无法传递了
  • 我们不清楚我们的前方会出现哪些AS号,所以我们尽量不要占用其他的AS号

路由优选之Origin

Origin

Origin

  • Origin : i - IGP, e - EGP, ? - incomplete (优先级)
  • IGP:优先级高,通过network命令注入到BGP路由表的路由,其Origin属性为 i
  • EGP : 次优的,Origin属性为 e
  • Incomplete:优先级低,如:通过import-route注入的路由,其Origin属性为 ?

配置命令

1
2
3
4
5
6
7
8
9
10
11
第一步: 创建ip-prefix 抓取10.10.4.4的路由
[R3]ip ip-prefix ntd index 10 permit 10.10.4.4 32

第二步: 创建路由策略,匹配地址前缀列表,修改路由的属性
[R3]route-policy tedu permit node 10 //创建路由策略
[R3-route-policy]if-match ip-prefix ntd //匹配ip-prefix ntd
[R3-route-policy]apply origin incomplete //修改origin为Incomplete

第三步: 在BGP中调用路由策略
[R3]bgp 100
[R3-bgp]peer 10.10.3.3 route-policy tedu import //入方向调用路由策略

路由优选之MED

MED

MED

  • 多出口鉴别器,是可选非过渡属性,是一种度量值
  • MED默认值是0,值越小越优先
  • 作用两个AS之间,收到MED属性的AS,默认不将这个属性通告给第三方AS

配置命令

1
2
3
4
5
6
7
8
9
10
11
第一步: 创建ip-prefix 抓取10.10.4.4的路由
[R3]ip ip-prefix ntd index 10 permit 10.10.4.4 32

第二步: 创建路由策略,匹配地址前缀列表,修改路由的属性
[R3]route-policy tedu permit node 10 //创建路由策略
[R3-route-policy]if-match ip-prefix ntd //匹配ip-prefix ntd
[R3-route-policy]apply cost 999 //修改MED为999

第三步: 在BGP中调用路由策略
[R3]bgp 100
[R3-bgp]peer 10.10.3.3 route-policy tedu import //入方向调用路由策略