重发布
重发布定义
在本路由器上,要将A协议重发布给B,需要在B路由器上实施,将通过A协议学习并加表的路由以及本路由器上通告进入A协议的接口路由重发布进入B协议。
在重发布时会产生一个seed-metric(种子度量值),各种协议对应的seed-metric值:
RIP:无穷大
OSPF:20或1
EIGRP:无穷大
ISIS:0
BGP:携带(携带的意思就是沿用重发布之前的)
重发布到RIP
1、将静态路由和直连路由重发布进入RIP,seed-metric为1,将其他动态协议重发布进入RIP时,seed-metric值为无穷大。
2、可以修改seed-metric值,但对直连不会生效。
//修改seed-metric值
r1(config-router)#default-metric + <1-4294967295>
3、可以在重发布过程中修改,针对所有生效。
r1(config-router)#redistribute connected metric + <0-16>
重发布到OSPF
1、将任何方式产生的路由重发布到OSPF中,默认metric值都是20,类型为OE2
2、不能讲缺省路由重发布到OSPF中
3、修改默认seed-metric值,对直连不生效
r1(config-router)#default-metric + <0-16777214>
4、可以在重发布过程中修改seed-metric值
//将rip重发布到ospf时修改metric值
r1(config-router)#redistribute rip subnets metric ?
重发布到EIGRP
1、默认将静态路由和直连路由重发布进入EIGRP,seed-metric为原静态或直连接口信息
2、将其他动态路由协议重发布,seed-metric为无穷大
3、修改seed-metric
r1(config-router)#default-metric 2000 100 255 1 1500
4、在重发布过程中实施
//将rip重发布进入eigrp
r1(config-router)#redistribute rip metric 1000 100 255 1 1500
重发布类型
1、单点单向重发布 – 经过一个路由器将一边的路由传递给另一边
2、单点双向重发布 – 经过一个路由器,两边的路由相互传递
3、双点单向重发布 – 经过两个路由器,将一边的路由传递给另一边
4、双点双向重发布 – 经过两个路由器,两边的路由相互传递
在双点双向重发布中,有可能出现路由环路和次优路由
解决方法
- 保证重发布路由器上路由是正确的(解决路由回馈,没有环路)
- 在DV型协议中使用策略保证路由优化;在LS型协议中使用策略保证路由优化
5、多点单向重发布 – 经过多个路由器,将一边的路由传递给另一边
6、多点双向重发布 – 经过多个路由器,两边的路由相互传递
策略控制
ACL
ACL – 访问控制列表,用于控制访问的流量或抓取需要的流量
模式为permit和deny
标准ACL
标准ACL的序列号范围是0-99
//ACL列表,抓取192.168.1.0网络中的流量,设置为允许
r1(config)#access-list 1 permit 192.168.1.0 255.255.255.0
//抓取192.168.2.0网络中的流量,设置为拒绝
r1(config)#access-list 1 deny 192.168.2.0 255.255.255.0
扩展ACL
扩展ACL的序列号是100-199,可以抓取更精确的流量
ACL扩展,允许192.168.1.0网络中的用户telnet192.168.2.1
r1(config)#access-list 100 permit tcp 192.168.1.0 255.255.255.0 192.168.2.1 eq 23
ACL的缺点
1、不能精确的抓取网络掩码
2、不能范围性抓取路由信息
Prefix-list
Prefix-list – 前缀列表,用于抓取路由信息
//允许2.2.2.0/24
r1(config)#ip prefix-list ccnp permit 2.2.2.0/24
//允许2.2.2.0掩码范围在28-32之间的流量
r1(config)#ip prefix-list ccnp permit 2.2.2.0/24 ge 28
//允许2.2.2.0掩码范围在24-30之间的流量
r1(config)#ip prefix-list ccnp permit 2.2.2.0/24 le 30
//允许2.2.2.0掩码范围在26-30之间的流量
r1(config)#ip prefix-list ccnp permit 2.2.2.0/24 ge 26 le 30
//允许2.2.2.0掩码固定为28的流量
r1(config)#ip prefix-list ccnp permit 2.2.2.0/24 ge 28 le 28
//匹配所有的主机路由
r1(config)#ip prefix-list ccnp permit 0.0.0.0/0 ge 32
//匹配默认路由
r1(config)#ip prefix-list ccnp permit 0.0.0.0/0
//匹配所有
r1(config)#ip prefix-list ccnp permit 0.0.0.0/0 le 32
//匹配所有B类地址
r1(config)#ip prefix-list ccnp permit 128.0.0.0/2 ge 16 le 16
//匹配所有C类地址和C类子网地址
r1(config)#ip prefix-list cnnp permit 192.0.0.0/3 ge 24
distribute-list
distribute-list :分发列表、发布列表,用于过滤路由信息,自身并不具备过滤功能,需要借助ACL或Prefix-list
1、在DV型协议中,在in和out方向实施
2、在LS型协议中,仅能在in方向上实施,并且不能过滤LSA,仅阻止该路由加表
3、在重发布过程中(将A协议重发布进入B协议时,进入B协议,使用out+A协议)
调用:
r1(config)#router rip
r1(config-router)#districbute-list prefix ccnp out s1/0
Route-map
Route-map使用位置:
1、重发布
2、PBR(QOS)
PBR:policy based router 基于策略路由(与路由无关)
3、BGP(外部网关)
特点:
1、自身具备过滤功能
2、Match和Set
match all用于匹配某一条目的所有属性
set any用于匹配所有条目
重发布中调用:
r1(config)#router ospf 100
r1(config-router)#redistribute rip subnets route-map ccnp
3、末尾隐含拒绝所有
BGP协议
BGP:边界网关协议,使用范围:BGP,AS之间使用
更新时携带网络掩码
不基于算法,但存在规则
路径矢量型协议
协议封装:基于TCP封装,端口号179
一、BGP特点
1、版本v1,v2 ,v3 ,v4,v4+(支持多种协议)
v1和v2其实是属于EGP协议的,但是EGP协议已经被完全淘汰了。
v3为有类别,即不携带网络掩码
v4为无类别,仅支持IPv4协议
v4+支持多种网络协议
2、一般用于巨型网络,是一种路径矢量型路由协议
3、更新方式:触发更新;更新地址:单播更新
4、BGP存在大量的属性,基于策略属性选路
5、BGP使用open报文建立邻居,使用keepalive报文维持邻居关系
6、keepalive为周期发送,60s,hold时间为180s
8、BGP支持路由认证,路由聚合(vlsm,cidr)
9、BGP非常消耗路由器资源,一台路由器只能运行一个BGP进程
二、BGP适用网络
1、多宿主
2、传输AS
3、对进行进入、离开的流量进行抢答的路由策略时
三、BGP AS号,邻居关系
AS号:1-65535,公有范围:1-64511,私有范围:64512-65535
IBGP:内部BGP邻居关系,同一个AS之内建立BGP邻居,AD值为200
EBGP:外部BGP邻居关系,不同的AS之间建立BGP邻居,AD值为20
local BGP路由:本地BGP路由值为200
四、BGP防环机制
IBGP:
ibgp水平分割:通过一个IBGP邻居学习的路由不能传递给其他的IBGP邻居(IBGP只传一跳原则)
起源者属性,cluster ID(簇ID)
EBGP:
AS-path防环:放一条路由传递出某个AS时,在AS-Path属性中在增加自身所属AS号,所有路由器默认不接收AS=path包含自身AS号的路由信息
五、BGP的消息数据包
1、open包:用于建立邻居关系,只发送一次,然后进入opensent状态
2、keepalive包:维持BGP邻居的关系,默认每60秒发送一次,hold down时间为180秒,时间不一致不影响邻居关系的建立,双方只会按照hold时间发送,若双方hold时间不一致,以较小的为准,不会发送keepalive时间,所有的keepalive时间是自行计算的:
若hold > 3倍的 keepalive,keepalive时间保持不变
若hold < 3倍的 keepalive,keepalive时间变为hold时间的
1
3
\frac{1}{3}
31
若手工配置了keepalive时间,就以配置的时间为准
3、update包:路由更新,用于通告路由和撤销路由,使用TCP中的ACK进行确认
4、notification包:错误报告,当路由出现故障时,发送notification包通告BGP错误
六、BGP邻居关系建立
状态:
down:关闭BGP状态
idle:开始建立TCP连接状态
connect(active):TCP会话建立完成
opensent(openconfirm):发送open包
established:BGP邻居建立完成
在BGP邻居建立过程中,只发送open报文
如果双方的keepalive时间和hold时间均为0,则成为永久BGP邻居
BGP邻居关系建立的条件:AS号,BGP router-id必须不一致,hold时间,认证
七、BGP的部署
//启用BGP:
r1(config)#router bgp 200
//关闭BGP同步:
r1(config-router)#no synchronization
//手工指定BGP router-id
r1(config-router)#bgp router-id 4.4.4.4
//开启BGP邻居日志提醒
r1(config-router)#bgp log-neighbor-changes
//手工建立BGP邻居
r1(config-router)#neighbor 3.3.3.3 remote-as 200
r1(config-router)#neighbor 5.5.5.5 remote-as 300
//修改BGP多跳,即不遵循只传一跳原则
r1(config-router)#neighbor 5.5.5.5 ebgp-multihop 2
//修改更新源
r1(config-router)#neighbor 5.5.5.5 update-source loopback 0
//关闭自动汇总
r1(config-router)#no auto-summary
查看BGP邻居关系汇总:
show ip bgp summary
查看BGP路由表:
show ip bgp
查看IP路由表:
show ip route bgp
在IBGP邻居建立过程中,存在大量相似的命令可以使用peer-group(大型对等组)来减少命令配置条数,优化BGP内存。
创建peer-group:
r1(config)#router bgp 200
r1(config-router)#neighbor ccnp peer-group
r1(config-router)#neighbor ccnp remote-as 200
r1(config-router)#neighbor ccnp update-source loopback 0
//将邻居划入peer-group中
r1(config-router)#neighbor 2.2.2.2 peer-group ccnp
r1(config-router)#neighbor 4.4.4.4 peer-group ccnp
BGP邻居关系建立的控制:
1、设置BGP建立邻居的工作模式(主动模式active、被动模式passive)
2、通过ACL进行控制
3、在非直连建立过程中一方使用缺省路由
4、在建立过程中若进存在一方满足邻居关系建立条件
BGP的扩展
BGP路由不优的原因:
- BGP路由的下一跳不可达,
- BGP同步
数据层面的路由黑洞:互相可以学习路由,但在数据转发的过程中,有些路由器缺失了路由而导致数据无法发送到目标。
路由黑洞产生的原因:当两个路由器要跨过路由器建立BGP邻居时,如果中间的路由器没有配置BGP协议,则会产生数据层面的路由黑洞。
路由黑洞的解决方案:
1、将BGP重发布进入IGP中(慎用)
2、在AS之内建立full-mesh IBGP邻居
如果路由器较多要实现full-mesh,配置起来会很麻烦,可以使用peer-group技术,配置给peer-group,再将邻居添加进group中。
BGP的路由认证
BGP的路由认证基于邻居之间,与其他动态协议不同的是,在TCP的头部进行认证,且仅支持MD5认证。
BGP的邻居关系重置
硬性重置:断开TCP会话连接,重新建立BGP邻居关系,针对所有实施策略都生效。
clear ip bgp *
软件重置:在不断开TCP会话的基础上实施策略,支持在in,out上使用
clear ip bgp * soft+in/out
查看针对某个邻居发送的路由信息:
show ip bgp neighbors a.b.c.d advertised-routes
BGP的路由聚合(汇总)
在明细路由所在路由器上产生一个静态指向null 0路由,通告进入BGP,
使用聚合者属性进行路由聚合,建议在明细路由所属AS之内聚合,默认发送所有明细和聚合路由,若在其他AS内聚合,会丢失某些属性,例如AS-path,需要增加as-set还原明细路由所包含的某些属性。
aggregate-address+路由信息和网络掩码
通告AS-set继承4个属性:LP,AS-path,COM,origin
LP:本地优先级,选择最大值
AS-path:所有的AS-path全继承,但是使用AS序列号进行表示,无顺序之分,在计算AS-path路径时,AS序列号只算一个。
COM:community,团体属性,有标准和扩展两种,标准和扩展同时继承,但是标准属性按照最严格执行。
origin:起源码,继承最差的。
BGP的路由惩罚
目的:抑制路由摆动,防止路由表不稳定
被惩罚的路由不能加表,不能参与选路,不能传递,惩罚针对的是路径,而不是路由条目
惩罚值:路由每翻滚一次,惩罚值增加1000,路由属性每改变一次,惩罚值增加500
惩罚门限:2000,当惩罚值超过惩罚门限时,路径会被惩罚
重用门限:750,当被惩罚的路径惩罚值降低至750,该路径再次被启用
半衰期:每经过一个半衰期,惩罚值减半,默认为15分钟
最大惩罚时间:默认为60分钟
最大惩罚值:默认为12000,计算公式:
最大惩罚值 = 重用门限
×
2
最
大
惩
罚
时
间
半
衰
期
\times 2^\frac{最大惩罚时间}{半衰期}
×2半衰期最大惩罚时间
启用BGP的路由惩罚:
r1(config-router)#bgp dampening ?
查看被惩罚的路由:
show ip bgp dampening dampened-paths
BGP的后门路由:将EBGP学习到的路由AD值改为200
用IGP协议为EBGP邻居之间提供路由,然后在两个邻居之间做链路冗余
r1(config)#router bgp 1
r1(config-router)#network a.b.c.d mask + 网络掩码 + backdoor
在修改各种参数时,最大惩罚值必须大于惩罚门限,否则将无法进行惩罚
IBGP水平分割
打破IBGP水平分割机制的方法:
1、路由反射器
路由反射器定义RR服务器端、RR客户端、RR非客户端
反射规则:非客户端之间不互相传递路由
增加了簇ID – cluster-id,类似于router-id,默认是自己的router-id,为了防止簇ID仍然出环,引入起源者属性。
起源者 :只有当路由被反射之后才会有起源者属性,在反射的时候回吧该条路由的原路由器的router-id以起源者属性的方式写入,后门的路由器再反射时,会检查这条路由的簇ID和起源者属性,如果起源者是自己,则不学习该条路由。
配置:
neighbor a.b.c.d route-reflector-client
2、EBGP联邦
在AS之内划分出更小的AS,多个AS区域组合成的网络结构叫做EBGP联邦
配置:
1、bgp confederation identifier 23
2、bgp confederation peers 4 //告诉其他的联邦,4是联邦EBGP
联邦AS序列:在show ip bgp中可以看到path一列中小括号中的数字,表示的是联邦AS号,不计入AS长度比较,但是可以用于在大联邦之内进行防环。
BGP的团体属性
BGP的团体属性在传递时可以选择是否传递给邻居
1、标准:用于控制路由的传递
2、扩展:可以设置tag来标识路由,能为其他的技术提供服务
参数:
- internet,全网传递
- local-as,本地传递,不传递出小AS区域
- no advertise,不给任何人传递
- no export,不传递出大AS区域
BGP协议的选路
BGP协议的选路有三个性质:
1、公认性:所有配置了BGP的路由器都会有的属性即公认性
2、遵守性:配置了属性后按照配置来运行即遵守性
3、可传递性:有些属性可传递也可不传递即传递性
选路条件:
1、weight:权重值,范围0-65535,优先选择最大值,cisco私有,默认为32768,由本地产生,数值越大越优,学习到的为0,weight属性只在本路由器生效,不能传递
2、local-preference,范围0-4294967295,数值越大越优,部署位置:AS边界的BGP邻居之间,只在同一个AS之内生效
3、本地起源,起源于本地最优先,next-hop为0.0.0.0
4、AS-path:用于防环,越短越优,当一条路由传递出AS时,将自身的AS号加到AS-path中,大括号中包含AS序列,小括号中包含联邦AS序列
5、起源代码:i – ibgp,e – ebgp,network通告的,都以i表示,i优先于e,e优先于?,部署位置:整个BGP域
6、MED:多出口鉴别属性,范围:0-4294967295,只在通过两条路径得到最左边的AS相同时时才进行比较,默认值为0,部署位置:在不同AS之间使用(EBGP邻居),影响进入本AS的流量。
7、EBGP优先于IBGP,联邦EBGP与普通IBGP不能使用该条来进行比较,将联邦的EBGP路由当做普通IBGP
8、最近的下一跳地址,在IGP表中metric值最小的
9、如果配置了maximum-path [ibgp] n,如果存在多条等价路径,会同时加表
10、最老的路由,前提是必须是external路由,联邦内的EBGP路由当做IBGP处理
11、最低的router-id
12、多条路径的始发router-id相同,那么选择cluster-id长度最短的
13、BGP优选来自最低邻居IP地址的路径,BGP的neighbor配置的那个IP地址
MPLS
MPLS:多协议标签交换 – Multi Protocol Label Switch
1、支持多种网络层协议
2、基于标签交换进行数据转发
标签交换与传统数据转发对比
a、标签交换转发效率优于传统数据包交换(已不明显)
b、MPLS支持MPLS VPN,支持MPLS TE
MPLS在控制层面的标签分发协议:LDP、TDP、MP-BGP、MPLS-VPN、RSPV(MPLS TE)
数据层面:MPLS
MPLS工作模式
1、frame模式:目前最常见的工作模式
2、cell模式:仅限于ATM网络
MPLS术语
FEC:转发等价类,具有相同处理防暑的一类数据称为一个转发等价类
LSR:标签交换路由器,标签交换(swap)
E-LSR:边界标签交换路由器,用于标签的压入和弹出
FIB:转发信息库
LIB:标签信息库
LFIB:标签转发信息库,由FIB和LIB综合而成
LSP:标签交换路径
label构成
label长度:20bit,范围16 – 2
20
^{20}
20 ,其中0 – 15是明星标签
EXP长度:3bit,用于在label中标记标签中的优先级
S:栈底位,代表标签是否到达栈底
TTL:生存时间,每经过一个路由器,TTL值减少1
一个标签总长度为32bit,即4字节
在接口启用MPLS:首先进入接口,然后输入mpls ip
查看LDP邻居:show mpls ldp neighbor
查看LIB表:show mpls ldp bingings
查看LFIB表:show mpls forwarding-table
查看CEF中携带的label信息:show ip cef 1.1.1.0 detail
修改路由器下发标签的范围:mpls label range+<16-1048575>
强制修改mpls router-id:mpls ldp router-id loopback 0 force
可以用MPLS来解决数据层面的路由黑洞,MPLS不能配置在布简历邻居的接口上,不然无法交换标签,毫无意义。
MPLS VPN
VRF被称为:虚拟路由转发
RD:路由区分器,区别不同的VRF
AS号:number 234:1 234:2 234:3
RT:路由目标,负责路由导入和导出 X:Y
部署:
1、创建VRF
r1(config)#ip route vrf r1-r5
2、查看
show ip route vrf r1-r5
在ce与pe之间运行路由协议
r1(config)#router rip
r1(config-router)#version 2
r1(config-router)#no auto-summary
r1(config-router)#address-family ipv4 vrf r1-r5
3、建立MP-BGP
MP-BGP支持传递vpnv4
先建立IPv4 BGP ,优化可以传递路由的能力
router bgp 234
bgp router-id 2.2.2.2
np bgp default ipv4-unicast
bgp log-neighbor-changes
neighbor 4.4.4.4 remote-as 234
neighbor 4.4.4.4 update-source loopback0
针对邻居开启传递VPNV4路由的能力,同时开启发送接收团体属性的能力
address-family vpnv4
redistribute rip
no synchronization
查看:show bgp vpnv4 vrf r1-r5
路由导出
将BGP路由重发布VRF的IGP中
redistribute bgp 234 metric 2