BGP路由控制
控制路由的发布和接收。
ACL、IP Prefix、AS_Path Filter、Community Filter
正则表达式
.*
代表匹配所有字符串
|
匹配任意单个的字符,包括空格 |
0.0 ,点可以是任何数,如0b0,090 |
|
匹配行首,第一个字符串的开始 |
^10,只匹配10开头的,如10.1.1.1不匹配其他开头的,如20.1.1.1 |
|
匹配行尾,第一个字符串的结束 |
10$,只匹配10结尾的,如1.1,1.10,不匹配其他结尾的,如1.1.1.20 |
|
匹配任意一个分隔符,如逗号,括号等 |
_10,匹配(10、{10等, 10_,匹配10(、10{等 |
|
管道符,匹配什么或什么 |
如x|y,会同时匹配x和y |
|
转义字符,把带有含义的字符变为普通字符 |
如\$,只匹配$单个字符,此$不含匹配行尾意思 |
|
匹配前面的数可出现0或多次 |
10*,代表10可以不出现或者出现多次 |
|
匹配前面的数可出现1次或多次 |
10+,代表10必须至少出现1次,或者多次 |
|
匹配前面的数可出现0或1次 |
如10?,代表10可以不出现,或者只能出现1次 |
|
匹配表达式中任意一个字符 |
[123],可以匹配255中的2 |
|
匹配表达式中没有包含的字符 |
[^123],可以匹配123之外的任何字符 |
|
匹配表达式中指定范围的字符 |
[0-9],匹配0-9之间的所有数字 |
|
匹配表达中指定范围以外的字符 |
[^0-9],匹配0-9以外的字符 |
路由匹配工具
AS_Path Filter:
利用AS_Path列表对路由进行过滤
Community Filter:
与Community属性配合使用,匹配团体属性对路由进行过滤。
Community属性:
Internet:设备收到此属性的路由,会通告给所有对等体。
No_Advertise:设备收到此属性的路由后,不会通告给任何对等体。
NO_Export:设备收到此属性的路由后,不会发给AS外的,也就是EBGP邻居。
NO_Export_Subconfed:设备收到此属性的路由后,不会发给AS外,也不会向联盟内的其他子AS发送。
BGP特性
ORF
邻居按需发布路由。设备希望只接受自己需要的路由,可以配置ORF(出口路由过滤器)匹配路由。
配置:
peer x.x.x.x as-number ip-prefix {import,export} 指定邻居基于IP前缀的路由过滤策略
pper x.x.x.x capability-advertise orf ip-prefix send 使能ORF功能,发送ORF报文
在对端也要使能ORF功能,并接受ORF报文 receive
与路由策略的区别是,路由策略在发送时,依然发出去了路由,只是在发出去的时候碰到策略被deny掉了,而ORF是发都不会发出去。
对等体组
把一些邻居放到一个组里,可以对这个组指定更新源,或者下一跳为本地。
group <name> {external,internal} //创建对等体组
peer <x.x.x.x> group <group name> //把对等体放入组里
BGP安全性
BGP使用认证和GTSM(通用TTL安全保护机制)两个方法保证BGP邻居间的安全。
BGP的认证有MD5认证和Keychain认证。
- MD5算法配置简单,配置后生成单一密码,需要人为干预才可以更换密码。
- Keychain具有一组密码,可以根据配置自动切换,但是配置过程较为复杂,适用于对安全性能要求比较高的网络。
MD5与Keychain认证相互排斥
BGP的GTSM功能检测IP报文头中的TTL值是否在预先配置好的,是的话就接收,不是就丢弃。
peer x.x.x.x valid-ttl-hops
hops指定TTL值,缺省值是255,配置之后,被检测的报文的TTL值有效范围为【255-hops+1】
这个GTSM和EBGP多跳是冲突的。
4字节AS号
2字节AS号范围为1-65535
4字节AS号格式一般为:x.y,比如1.0代表65536
1.100代表65536+100
2.100代表65535*2+100
在传统的Open报文中,AS号字段只有两个字节,无法填充4字节的AS号。所以在支持4字节的设备发送open报文中,将My AS Number字段填充成23456
,这个数字意味着这是一个4字节的AS号,邻居需要到报文中的可选项去获取对方的4字节AS号。
BGP路由反射器组网方式
备份RR组网:两个RR在同一个集群,配置了相同的Cluster ID。
多集群RR组网:
一个AS可以有多个集群,不同集群的RR形成IBGP邻居:
- 当RR所处的网络层次相同时,将不同的集群的RR全互联,为同级RR。
- 当RR所处的网络层次不同时,可对RR进行分级,下级作为上级RR的客户机,上级反射给下级。形成分级RR。
单集群的问题:因为Cluster ID相同,RR不会收RR传递的路由,导致当一台设备连接RR的链路失效,就失去了冗余性,所以可以使用多集群设计,具有冗余性。