|
1
CCNP-高级路由
Chapter 7 路由优化
控制路由更新数据流
试举RIP 一例:RTA运行RIP,三个接口(10.2.2.1/24,10.1.1.1/24,10.3.3.1/24)
RTA(config)#router rip
RTA(config-router)#network 10.0.0.0
则在所有端口通告路由信息,将对资源造成浪费,可以通过配置被动接口或路由管理器来控
制路由更新。
被动接口(passive interface)
被动接口只接收路由更新但不发送路由更新
RTA(config-router)#passive-interface type number //如 passive-interface s0
应用:如果通过按需拨号(dial-on-demand)ISDN 链路连接,那么定期的 RIP 更新将会使
链路保持在线,则需向 ISDN服务商提供高额费用,因此需要配置一条静态路由,然后将接
口配置为被动接口:RTA(config)#router rip
RTA(config-router)#network 10.0.0.0
RTA(config-router)#passive-interface bri0
RTA(config-router)#redistribute static
RTA(config-router)#exit
RTA(config)#ip route 172.16.1.0 255.255.255.0 bri0
RTA(config)#ip route 0.0.0.0 0.0.0.0 bri0
Passive-interface 网络地址在 OSPF 作为末节网络出现,OSPF 的路由信息既不发送也不接
收,在 EIGRP,路由器在被动接口不发送 HELLO 数据包,则不会建立毗邻关系,因此也不
会发送或接收路由更新。
用发布控制列表(distribute-list)过滤路由更新
基于外部因素(链路成本、管理权限、安全考虑)及减少不必要的开销,我们想要阻止路由
器部分网络的更新被发送。
为特定路由选择协议配置路由过滤器(外出方向)
RTA(config)#router rip
RTA(config-router)#network 10.0.0.0
RTA(config-router)#distribute-list 24 out //由于没有特定接口, 因此所有接口都阻
止
RTA(config-router)#exit
RTA(config)#access-list 24 deny 10.1.1.0 0.0.0.255
RTA(config)#access-list 24 permit any
配置一个针对特定接口的路由过滤器(外出方向)
RTA(config-router)#distribute-list 24 out interface s2
进入方向
RTZ(config)#router rip
RTZ(config-router)#network 10.0.0.0
RTZ(config-router)#distribute 16 in
RTZ(config-router)#exit
RTZ(config)#access-list 16 deny 10.1.1.0 0.0.0.255
RTZ(config)#access-list 16 permit any
配置特定接口(入方向)
RTZ(config-router)#distribute-list 16 in interface s0
可以使用 RTZ#show ip protocols来查看路由过滤器
配置一个被动 EIGRP 接口
RTZ(config)#router eigrp 364
RTZ(config-router)#network 10.0.0.0
RTZ(config-router)#distribute-list 5 out interface s0
RTZ(config-router)#exit
RTZ(config)#access-list 5 deny any
这样则可以发送 HELLO 数据包建立毗邻关系,但更新中不包含任何路由,注意与
passive-interface 的区别
策略路由(policy routing)
通过策略路由,我们可以根据源地址手工方式指示路由器。
RTA(config)#router-map map-tag [permit|deny] [sequence – number]
//map-tag 路由器名字或ID
RTA(config-map-route)#
配置一个路由映射图
策略:来自网络 192.168.1.0/24、去往 Internet 的数据流被转发到 ISP1,来自网络
172.16.1.0/24、去往Internet 的数据流被转发到ISP2
RTA(config)#access-list 1 permit 192.168.1.0 0.0.0.255
RTA(config)#access-list 2 permit 172.16.1.0 0.0.0.255
RTA(config)#route-map ISP1 permit 10
RTA(config-route-map)#match ip address 1 //1-访问控制列表 1
RTA(config-route-map)#set interface s0
RTA(config)#route-map ISP2 permit 10
RTA(config-route-map)#match ip address 2 //2-访问控制列表 2
RTA(config-route-map)#set interface s1
将路由映射图应用于一个接口
RTA(config)#interface e0
RTA(config-if)#ip policy route-map ISP1
RTA(config-if)#interface e1
RTA(config-if)#ip policy route-map ISP2
使用多种路由选择协议
路由再发布(redistribution):指路由选择协议之间交换路由信息的过程
RTA#show running-config查看目前运行的路由选择协议
如果我们配置多个IP 路由选择协议,注意不要使路由器资源超过其负荷,我们可以通过
RTA#show ip route summary来查看统计信息
路由选择协议缺省管理距离
0-最优先,255-绝不可信,忽略;管理距离越低,可信度越高
路由选择协议 管理距离值
直连的接口 0
从接口外出的静态路由 0
经下一跳的静态路由 1
EIGRP 归纳路由 5
EBGP(外部 BGP) 20
内部EIGRP 90
IGRP 100
OSPF 110
IS-IS 115
RIP(v1、v2) 120
EGP 140
外部EIGRP 170
IBGP(内部 BGP) 200
未知 255
修改管理距离
RTZ(config)#router ospf 1
RTZ(config-router)#distance 95 //修改值只对本地有效
根据路由源配置管理距离
RTZ(config)#router rip
RTZ(config-router)#distance 105 10.4.0.2 255.255.255.0 //配置一台路由器为从
10.4.0.2收到的所有 RIP路由的管理距离设为105
根据路由源和访问控制列表配置管理距离
RTZ(config-router)#distance 97 10.3.0.1 255.255.255.0 2 //2-为访问列表号
RTZ(config-router)#exit
RTZ(config)#access-list 2 permit 192.168.3.0 0.0.0.255
RTZ(config)#^Z
RTZ(config)#clear ip route * //用于重清路由表并安装带新管理距离值的路由
RTZ#show ip route
再发布(redistribution)指南
例一:在一个AS 边界路由器上(运行RIP 和EIGRP)配置路由再发布
RTB(config)#router rip
RTB(config-router)#network 172.16.0.0
RTB(config-router)#router eigrp 24
RTB(config-router)#network 172.24.0.0
RTB(config-router)#redistribute rip metric 10000 100 255 1 1500//将RTB 所学
的RIP路由输入到EIGRP路由进程中。Metric设置用于将RIP跳数翻译成EIGRP复合度量
值的参照值。
配置双向路由再发布
RTB(config-router)#router eigrp 24
RTB(config-router)#network 172.24.0.0
RTB(config-router)#redistribute rip metric 10000 100 255 1 1500
RTB(config-router)#router rip
RTB(config-router)#network 172.16.0.0
RTB(config-router)#redistribute eigrp 24 metric 2
(注:在一个主类网络被划分子网的情况下,我们需要使用关键字“subnets”来将其他路由
选择协议所学到的路由再发布,不然只会发布非子网化的主类网络,应该“redistribute
eigrp 24 metric 100 subnets”)
配置直连路由的再发布
RTB(config-router)#router eigrp 24
RTB(config-router)#redistribute connected metric 10000 100 255 1 1500
配置静态路由的再发布
RTB(config-router)#router eigrp 24
RTB(config-router)#redistribute static metric 10000 100 255 1 1500
我们可以通过使用“default-metric”使用缺省的度量值作为种子度量值,配置双向路由再
发布,包括直连和静态路由(使用缺省)
RTB(config-router)#router eigrp 24
RTB(config-router)#network 172.24.0.0
RTB(config-router)#redistribute rip
RTB(config-router)#redistribute connected
RTB(config-router)#redistribute static
RTB(config-router)#default-metric 10000 100 255 1 1500
RTB(config-router)#router rip
RTB(config-router)#network 172.16.0.0
RTB(config-router)#redistribute eigrp 24
RTB(config-router)#redistribute connected
RTB(config-router)#redistribute static
RTB(config-router)#default-metric 2
Chapter 8 BGP
自治系统(Autonomous System)
一个AS通常代表一个独立的组织结构,并应用它自己的路由和安全策略。EGP 用于帮助这
些自治系统共享它们的路由信息,每个自治系统有一个 16比特的标识符,它由 Internet注
册机构或服务提供商分配,范围从 1~65535,其中 64512~65535的 AS编号范围留作私
有,因为 AS号码有限,所以一个组织结构要想获得一个 AS号码必须提供充分的理由。
Internet 号码分配管理局(Internet Assigned Numbers Authority,IANA)使负责分配自治
系统编号的最顶层管理机构。它规定,连接到单个服务提供商并共享该供应商路由策略的组
织机构可以使用私有AS 号,从该网络外出时被供应商注册的AS 号码替换掉,这个过程与
NAT相似。
单宿主(Single-Homed)自治系统
一个AS只有到外部网路的单一出口点,它就被认为是单宿主自治系统,往往被称为末节网
络,只需使用一条缺省路由来处理所有去往外部网络的数据流。
多宿主(Multihomed)非渡越自治系统
一个AS有到外部网络的多个出口点,则它被认为是一个多宿主自治系统, 一个非渡越型AS
不允许渡越数据流(源与目的地都在本AS 之外) ,只通告自己的路由。
多宿主渡越自治系统
一个多宿主渡越型自治系统有到外面世界的多条连接, 并可以被用于转接其他自治系统间的
数据流。
当BGP运行于一个AS内,它被称为内部BGP(IBGP),当BGP运行于AS之间,它被称为
外部BGP(EBGP),如果一台BGP 转发IBGP 数据流,它被称为一台渡越路由器(transit
router)。
BGP 的基本操作
BGP 更新由TCP 协议承载,使用端口号179。与之相对,RIP 更新使用UDP端口号 520,
而OSPF 不使用第4层协议。
有限状态机(FSM)
用来描述 BGP 邻居关系协商过程。四种BGP 消息类型:打开(open) 、更新(update) 、通
知(notification) 、keepalive。
FSM
1- 空闲(idle)该过程 BGP对它的资源进行初始化,复位一个连接重试计时器,发起一条
TCP 连接,并开始倾听远程对等体所发起的连接。
2- 连接(connect)TCP 连接成功,则转到OpenSent状态,TCP连接失败,则转到active
状态,将尝试再次连接
3- 活跃(active)试图发起 TCP连接获得对等体,成功转到 OpenSent状态,连接重试计
时器超时,退回连接状态。
4- 打开消息已发送(OpenSent)等待其对等体发送打开消息,如果出错,则发送一条出错
消息并退回空闲状态,如果无错,则开始发送Keepalive 并复位keepalive 计时器。
5- 打开消息确认(OpenConfirm)如果收到keepalive消息,BGP 就进入established状态,
邻居关系协商完成,如果系统收到一条更新或keepalive 消息,它将重新启动保持计时
器。如果收到通知消息,BGP 就退回到空闲状态。
6- 连接已建立(established)邻居关系协商过程最终状态;这时BGP将开始与它的对等体
交换路由更新数据包。
四种消息类型
1- 打开 打开消息包括版本(如BGP3/BGP4) 、我的自治系统、保持时间(一般设为 3秒
为宜) 、路由器ID(如果由环回接口,则是最高的环回ip 地址)等
2- 通知 根据通知消息,我们可以找出失败的原因
3- keepalive 消息 keepalive 是个 19字节周期发送的BGP 消息头标,没有数据域
4- Update消息 包含了三个组件:网络层可达性消息(NLRI) 、路径属性和被撤销的路由。
基本 BGP 配置
配置一个 BGP 进程:RTB(config)#router bgp as-number //IOS规定在同一时间内
只允许运行一个 BGP 进程
network 命令用以告诉 BGP 路由进程通告哪些本地所学网络:
RTB(config-router)#network network-number [mask network-mask]
建立两台路由器的邻居关系
RTB(config-router)#neighbor ip-address remote-as as-number
EBGP 会话-发生在属于两个不同自治系统的路由器之间
IBGP 会话-发生在属于同一自治系统的路由器之间,被用来协调和同步 AS域内的路由策
略
IBGP 不需要直连,EBGP 必须直连,除非我们使用CISCO的EBGP多跳(Multihop)特性:
RTA(config-router)#neighbor ip-address ebgp-multihop [hops]
配置 EBGP
RTA(config)#router bgp 200
RTA(config-router)#neighbor 10.1.1.2 remote-as 100
配置 IBGP
RTB(config)#router bgp 200
RTB(config-router)#neighbor 172.16.1.2 remote-as 200
RTB(config-router)#neighbor 172.16.1.2 update-source loopback 0
使用 BGP 的 network命令
RTA(config-router)#network 172.16.1.0 mask 255.255.255.254
RTA(config-router)#network 10.1.1.0 mask 255.255.255.254
RTA(config-router)#network 192.168.1.0
Network命令将使OSPF路由被BGP通告,而不需使用路由再发布功能,BGP 的“network”
命令与 IGP 的“network”命令的工作方式不同
强迫BGP 重清它的路由表并重置BGP 会话
RTA#clear ip bgp * /还可以指定要清的特定网络
核验 BGP 的运行
命令 描述
Show ip bgp 显示 BGP 路由表中的条目
PDF 文件以 " DF 制作工厂" 试用版创建 http://www.fineprint.com 7
Show ip bgp summary 显示所有BGP 连接的汇总信息
Show ip bgp neighbors 显示每个BGP 连接的详细信息
对等关系(Peering)
BGP 不将从IBGP 对等体处学到的路由通告给其他 IBGP 对等体。否则,AS 内的 BGP 路由
很可能会产生危险的潜在路由环路, 因此如果要学到AS中所有 BGP 路由, 需要全网状互联,
可以是逻辑上的。
BGP 同步规则
BGP 路由器不应该将从其内部 BGP 邻居处学到的目的地网络通告给其外部邻居路由器,除
非这些目的地网络是通过 IGP 可达的。
BGP 路由进程
从对等体处收到的路由->输入策略引擎->路由判定过程(BGP 表)->路由器所用的路由
(IP 路由表)->输出策略引擎->通告给对等体的路由
实施 BGP 路由策略
通过路由映射图(route map)定义:RTA(config)#route-map map-tag
[permit|deny][sequence-number] //首先会应用序号最低的实例
实例:
RTA(config)#route-map MYMAP permit 10
RTA(config-route-map)#match ip address 1
RTA(config-route-map)#set metric 5
RTA(config-route-map)#exit
RTA(config)#access-list 1 permit 1.1.1.0 0.0.0.255
对 BGP 邻居路由器应用一个路由映射图
RTA(config)#router bgp 100
RTA(config-router)#neighbor 172.16.20.2 remote-as 300
RTA(config-router)#neighbor 172.16.20.2 route-map MYMAP out
路由判定过程中所用的关键属性
下一跳(next_hop)
在EBGP 会话,IBGP 会话及多路访问网络中,下一跳是不一样的。强迫路由器将自己作为
下一跳:RTA(config-router)#neighbor IP-address next-hop-self
AS 路径(AS_PATH)
BGP 使用AS 路径属性作为路由更新的一部分来确保在INTERNET 上的一个无环路拓扑结
构,如果自己的 AS出现在某接收到的路由AS 列表中,说明已经经由过,因此不接收。
配置私有 AS号码剥离:RTA(config)#router bgp 1
RTA(config-router)#neighbor 172.16.20.2 2 remote-as 65001
RTA(config-router)#neighbor 192.168.6.3 remote-as 7
RTA(config-router)#neighbor 192.168.6.3 remove-private-as
通过追加“虚”AS 号码以控制BGP 的路径选择
RTC(config)#router bgp 100
RTC(config-router)#neighbor 172.16.20.2 remote-as 300
RTC(config-router)#neighbor 172.16.20.2 route-map AddaSnumbers out
RTC(config-router)#exit
RTC(config)#route-map AddASnumbers permit
RTC(congfig-route-map)#set as-path prepend 100 100
原子聚合(ATOMIC_AGGREGATE)
属性值:真|假,如果为真,则该属性通知 BGP路由器:多个目的地已被合并在一条路由更
新中了,说明发送该路由更新的 BGP 路由器有到多个目的地地更具体路由,但却没有发送
它们。
配置一个聚合地址:RTA(config)#router bgp 300
RTA(config-router)#neighbor 3.3.3.3 remote-as 200
RTA(config-router)#neighbor 2.2.2.2 remote-as 100
RTA(config-router)#network 160.10.0.0
RTA(config-router)#aggregate-address 160.0.0.0 255.0.0.0
配置路由聚合并抑制具体路由
RTA(config-router)#aggregate-address 160.0.0.0 255.0.0.0 summary-only
利用路由映射图配置路由聚合
RTA(config)#router bgp 300
RTA(config-router)#aggregate-address 160.0.0.0 255.0.0.0 suppress-map
CHECK
RTA(config-router)#exit
RTA(config)#route-map CHECK permit
RTA(config-route-map)#match ip address 1
RTA(config-route-map)#exit
RTA(config)#access-list 1 deny 160.20.0.0 0.0.255.255
RTA(config)#access-list 1 permit 0.0.0.0 255.255.255.255
聚合者(AGGREGATOR)
我们可以配置路由器在超网路由中包含它们地路由器ID 和本地AS 号码。
本地优先级(LOCAL_PREF)
本地优先级属性值越高,路由的优选程度越高,该值仅在 IBGP 对等体之间被交换。
设置本地优先级属性:RTC(config)#router bgp 256
RTC(config-router)#neighbor 1.1.1.1 remote-as 100
RTC(config-router)#neighbor 128.213.11.2 remote-as 256
RTC(config-router)#bgp default local-preference 150
…
RTD(config)#router bgp 256
RTD(config-router)#neighbor 3.3.3.4 remote-as 300
RTD(config-router)#neighbor 128.213.11.1 remote-as 256
RTD(config-router)#bgp default local-preference 200
使用路由映射图来控制本地优先级
RTD(config)#router bgp 256
RTD(config-router)#neighbor 3.3.3.4 remote-as 300
RTD(config-router)#route-map SETLOCATION in
RTD(config-router)#neighbor 128.213.11.1 remote-as 256
RTD(config-router)#exit
RTD(config)#ip as-path access-list 7 permit ^300$ //^300$-规则表达式
RTD(config)#route-map SETLOCATION permit 10
RTD(config-route-map)#match as-patch 7
RTD(config-route-map)#set local-preference 200
RTD(config-route-map)#route-map SETLOCATION permit 20
权重(Weight)
它也是将较高的优先级赋予权重较高的路由,权重只对路由器本地有效,它不在路由器之间
被交换。我们可以在配置一个路由映射图用“set weight”命令来设置权重参数。
多出口鉴别(MULTI_EXIT_DISC,MED)
它用于向外部邻居路由器指示进入一个有多个入口点的AS的优先路径,一条路径的多出口
鉴别属性值越低,则其优先级就越高。
配置MED 属性
RTB(config)#route-map setmedout permit 10
RTB(config-route-map)#set metric 50
RTB(config)#router bgp 400
RTB(config-router)#neighbor 4.4.4.4 route-map setmedout
起源(ORIGIN)
指示路由更新的起源:1-IGP;2-EGP;3-不完整,优先级1>2>3
BGP 路由判定过程总结
1. 如果下一跳不可达,则不考虑它;
2. BGP 路由器优先选用具有最高权重的路由;
3. 如果多条路由具有相同的权重,则BGP路由器将优先选用具有最高本地优先级
值的路由;
4. 如果多条路由具有相同的本地优先级,则 BGP 路由器将优先选用由本路由器始
发的路由;
5. 如果多条路由具有相同的本地优先级,或者如果没有路由是本路由始发的,那
么BGP 路由器优选具有最短AS 路径的路由;
6. 如果 AS路径长度相同,则 BGP 路由器将优选具有最低起源类型的路由
(IGP>EGP>不完整) ;
7. 如果起源类型都相同,则BGP 路由器将优选具有最低MED 的路径;
8. 如果各路由有相同的MED值,则 BGP路由器按下列方式优选:外部路由EBGP
优先于联盟(confederation)外部路由优于内部路由 IBGP;
9. 如果所有参数都相同,则BGP路由器将优选能通过最近的IGP邻居到达的路径;
10. 如果内部路径也相同,那么将根据邻居BGP 路由器ID 来优选路由,选用最低
路由器ID 的 BGP 路由器路由。 |
|