30选5玩法|福彩30选5开奖结果321|
 

分类:网络技术详解

网络技术详解

思科rip技术详解

RIP

介绍:RIP协议的处理是通过UDP 520端口来操作的,所有的RIP消息都被封装在UDP数据报文中,其中数据报文的源和目的端口字段被设置为520。RIP定义了两种消息类型:请求消息(request messages)和响应消息(response messages)请求消息用来向邻居路由器发送一个更新,响应消息用来传路由更新。RIP的度量是基于“跳数”的,1跳表示的是与发出通告的路由器相直连的网络,16跳表示网络不可到达。

工作原理:开始时,RIP?#29992;?#20010;启动RIP协议的接口广播出带有请求消息的数据包,接着,RIP程序进入一个循环状态,不断地监听来自其他的路由器的RIP请求或响应消息,而接收请求的邻居路由器则回送包含它们的路由表的响应消息。当发出请求的路由收到响应消息时,它将开始处理附加在响应消息中的路由更新信息,如果路由更新中的路由条目是新的,路由器则将新的路由连同通告路由器的地址一起加入到自己的路由选择表中,这里通告路由器的 地址可?#28304;?#26356;新数据包的源地址字段读出如果网络路由已经在路由选择表中存在,那么只有在新的路由拥有更小的跳数据时才能替换原来存在的路由条目。如果路由更新通告的跳数大于路由选择表已记录的跳数,并且更新来自于已记录条目的下一跳路由器,那么该路由将在一个指定的?#31181;?#26102;间段(hold down period)内被标记为不可到达,如果在?#31181;?#26102;间超时后,同一个邻居路由器仍然通告这个有较大跳数的路由,路由器则接受该路由新的度量值。

计时器和稳定性:

1,Update time 缺省是30s 异步更新为25—35 同步更新为25–30

2,Invalid time(无效计时器) 180s 如果3次都没有收到update 路由条目down 还可以转发数据包的

3,Flush 240s Invalid 180s 后,再过60s(这60s是在发3次毒?#26376;?#30001;)删除路由条目

4,Hold time 180s 收到的路由条目比原来的路由条目METRIC值大我不更新我的路由条目等待180s中 如果又收到路由条目就更新

RIP使用带毒性逆转,水平分隔和触发更新,不像普通的定期的更新,触发更新在只要有路由的度量值发生改变时就会产生,而且触发更新不会引起接?#31456;?#30001;器重置综们的更?#24405;?#26102;器;因为如果这么做的话,网络拓扑的改变会导致很多路由器在同一时间重置,从而引起定其的路由更新变得同步。为了避免拓扑改变后造成触发更新“风暴?#20445;?#36824;需要使用另外一个计时器。当一个触发更新传播时,这个计时器被随机的设置为1~5s之间的数值;在这个计时器计时超过?#23433;?#33021;发送并发的触发更新。

一些主机可以在“静”模式下使用RIP,这些所谓的“静”主机不产生RIP的更新报文,而只侦听RIP的更新消息,从而更新它们自己的路由选择表。

RIP的消息格式(RIP message format)RIPv1

RIP消息头部(4个字节),每个条目占用20个字(最多可以容纳25条),8个字节的UDP头部,所以RIP数据报文的大小最大可达512个字节

命令(command)—-只取值1或2,1表示是请求消息,2 表示是响应消息,其他取值都不被使用或保留作私有用途。

版本号(version)—-对于RIPv1,该字段的值设置为1。

地址族标识(address family identifier, AFI)—-对于IP该项设置为2,只有一个例外情况下该消息是路由器(或主机)整个路由选择表?#37027;?#27714;。

IP地址(IP address)—-路由的目的地址,这一项可以是主网络地址,子网地址或主机路由地址。

度量(metric)—-跳数1~16

RIP的消息格式(RIP message format)RIPv2

RIPv1有的RIPv2都有,在RIPv1的基础上加了以下这些:

路由标志(route tag)—-提供这个字段用来标记外部路由或重分配到RIPv2协议中的路由,默认?#37027;?#20917;下是使用这个16位的字段来携带从外部路由选择协议注入到RIP中的路由的自主系统号。

下一跳(next top)—–如果存在的话,它标识一个比通告路由器地址更好的下一跳地址。

有类别路由选择

它的一个基本特性就是,宣告网络地址的时候不能把它的掩码也宣告出去,因此,有类别路由选择协议首先必须匹配一个目的地址对应A,B,C类的主网络号,对于每一个通过路由器的数据包:1,如果目的地址是一个路由器直接相连的主网络的成?#20445;?#37027;么该网络的路由器接口上配置的子网掩码将被用来确定目的的地址的子网,因此,在那个主网络中必须自始至终地统一使用这个相同的子网掩码。2,如果目的地址不是一个和路由器直接相连的主网络的成?#20445;?#37027;么路由器将仅仅尝试去匹配该目的的地址对应于A类,B类或C类的主网络号。

被动接口:

被动接口就是一个RIP网络中有一个路由器1启用了RIP协议,而它没有把接口地址宣告进去,但是它?#25925;?#33021;更新自己的路由表,但是这个接口会向直连它的路由器2发广播包,为了阻塞广播包可以在路由器2的RIP协议?#24405;由?#36825;条命令:passive-interface。这样就可以把这个路由器1做为一个“静”主机看待,不发路由更新,只侦听特定的链路上的RIP广播,从而更新自己的路由表。

命令:

R1(config-router)#neighbor 192.168.10.2 手动配置邻居,在路由器是“静”主机?#37027;?#20917;下,可以?#25442;籖IP通告信息

R1#debug ip rip events 简要地显示路由器收发的RIP信息。

特点:

?#25442;?#26159;自已的路由表,全部路由条目

负载均衡最多支持6条,默认的是4条

自动汇总默认的是开着的

RIPv1 (有类路由协议)

网络号

METRIC

下一跳 数据包的源IP

广播地址:255.255.255.255

自动汇总,不支持手动汇总

不支持?#29616;?/p>

不支持VLMS产生CIDR

RIPv2(无类路由协议)

网络号

METRIC

子网掩码 (无类路由协议)不产生CIDR

下一跳 (0.0.0.0 —>数据包的源IP)

组播地址:224.0.0.9

支持手工汇总

支持?#29616;?/p>

RIPv2和RIPv1 兼容性

RIPv2的报文在RIPv1中不能识别,会被丢弃,而RIPv1的报文在RIPv2中可以识别。RIPv2在RIPv1中使用RIPv2使用广播方式代替组播方式来通告消息,以便RIPv1可以接收它们。RIPv2在RIPv2中使用组播方式通告消息到目的地址224.0.0.9。

RIP的不足之处:

(1)过于简单,以跳数为依据计算度量值,经常得出非最优路由。例如:2跳64K专线,和3跳1000M光纤,显然多跳一下没什么不好。

(2)度量值以16为限,不适合大的网络。解决路由环路问题,16跳在rip中被认为是无穷大,rip是一种域内路由算法自治路由算法,多用于园区网和企业网。

(3)安全性差,接受来自任何设备的路由更新。无密码验证机制,默认接受任何地方任何设备的路由更?#23567;?#19981;能防止恶意的rip欺骗。

(4)不支持无类ip地址和VLSM<ripv1>。

(5)收敛性差,时间经常大于5分钟。

------中间广告---------

(6)消耗带宽很大。完整的复制路由表,把自己的路由表复制给所有邻居,尤其在低速广域网链路上更以显式的全量更新。

配置:

实验目的:让所有路由器上的环回口通过运行RIP协议可以互相通信。

R1(config)#int f0/0

R1(config-if)#ip address 192.168.12.1 255.255.255.0

R1(config-if)#no shut

R1(config)#int lo 0 创建环回口

R1(config-if)#ip address 1.1.1.1 255.255.255.255

R1(config)#router rip 创建RIP协议

R1(config-router)#version 2 版本号为2

R1(config-router)#no auto-summary 关闭自动汇总

R1(config-router)#network 192.168.12.0 地址宣告进RIP

R2(config)#int f0/0

R2(config-if)#ip address 192.168.22.1 255.255.255.0

R2(config-if)#no shut

R2(config)#int lo 0 创建环回口

R2(config-if)#ip address 2.2.2.2 255.255.255.255

R2(config)#router rip 创建RIP协议

R2(config-router)#version 2 版本号为2

R2(config-router)#no auto-summary 关闭自动汇总

R2(config-router)#network 192.168.22.0 地址宣告进RIP

R3(config)#int f0/0

R3(config-if)#ip address 192.168.32.1 255.255.255.0

R3(config-if)#no shut

R3(config)#int lo 0 创建环回口

R3(config-if)#ip address 3.3.3.3 255.255.255.255

R3(config)#router rip 创建RIP协议

R3(config-router)#version 2 版本号为2

R3(config-router)#no auto-summary 关闭自动汇总

R3(config-router)#network 192.168.32.0 地址宣告进RIP

R4(config)#int f0/0

R4(config-if)#ip address 192.168.12.2 255.255.255.0

R4(config-if)#no shut

R4(config-if)#int f1/0

R4(config-if)#ip address 192.168.22.2 255.255.255.0

R4(config-if)#no shut

R4(config-if)#int f2/0

R4(config-if)#ip address 192.168.32.2 255.255.255.0

R4(config-if)#no shutR4(config)#router rip 创建RIP协议

R4(config-router)#version 2 版本号为2

R4(config-router)#no auto-summary 关闭自动汇总

R4(config-router)#network 192.168.12.0 地址宣告进RIP

R4(config-router)#network 192.168.22.0 地址宣告进RIP

R4(config-router)#network 192.168.32.0 地址宣告进RIP

扩展命令:

R1(config)#show ip rip da 查看rip database (从邻居收集来的信息)的

R1(config)#no auto-summary 关闭自动汇总

R1(config)#show run | s rip 查看RIP配置

R1(config)#Show ip rout 查看路由表

R1(config-if)#ip rip send version 2 指定一个接口可以发送的RIP的版本

R1(config-if)#ip subnet-zero 允许接口的地址和路由选择更新使用全0子网

R1(config)#interface serial 0/0

R1(config-if)#ip summary-address rip 10.0.0.0 255.0.0.0 手动开始汇总

R1(config)#key chain cisco 定义rip中?#29992;?#23494;钥链

R1(config-keychain)#key 0 定义密钥

R1(config-keychain-key)#key-string cisco 定义密钥值

R1(config-if)#ip rip authentication key-chain cisco 在接口上调用密钥

R1(config-if)#ip rip authentication mode text 选择?#29992;?#26041;式 明文

R1(config-if)#ip rip authentication mode md5 选择?#29992;?#26041;式 密文

思科OSPF技术详解

 

OSPF的五个包:

1.Hello:9项内容,4个必要

2.DBD:数据库描述数据包(主要描述始发路由器数据库中的一些或者全部LSA信息),主要包括接口的MTU,主从位MS,数据库描述序列号等);

3.LSR:链路状态请求数据包(查看收到的LSA是否在自己的数据库,或是更新的LSA,如果是将向邻居发送请求);

4.LSU:链路状态更新数据包(用于LSA的泛洪扩散和发送LSA去响应链路状态请求数据包);

5.LSACK:链路状态确认数据包(用来进行LSA可靠的泛洪扩散,即对可靠包的确认)。

Hello包作用:

1.发现邻居;

2.建立邻居关系;

3.维持邻居关系;

4.选举DR,BDR

5.确保双向通信。

Hello包所包含的内容:

路由器id

Hello&Dead间隔 *

区域id *

邻居

DR

BDR

优先级

验证 *

末节区域 *

注:1.“*”部分全?#31185;?#37197;才能建立邻居关系。

2.邻居关系为FULL状态;而邻接关系是处于TWO-WAY状态。

Hello时间间隔:

在点对点网络与广播网络中为10秒;

在NBMA网络与点对多点网络中为30秒。

注:

保持时间为hello时间4倍

虚电路传送的LSA为DNA,时间?#31181;疲?#27704;不老化.

OSPF的组播地址:

DR将使用组播地址224.0.0.5泛洪扩散更新的数据包到DRothers

DRothers使用组播地址224.0.0.6发送更新数据包

组播的MAC地址分别为:0100.5E00.0005,0100.5E00.0006

OSPF的包头格式:

| 版本    | 类型 | 长度  | 路由器ID | 区域ID  | 验证和 | 验证类型  |验证 | 数据 |
| 1 byte |   1   | 2 | 4 | 4 | 2 | 2 | 8 | variance |

OSPF支持的验证类型:

OSPF支持明文和md5?#29616;ぃ?#29992;Sniffer抓包看到明文验证的代码是“1?#20445;琺d5验证的代码是“2”。

OSPF支持的网络类型:

1.广播

2.非广播

3.点对点(若MTU不匹配 将停留在EX-START状态)

4.点对多点

5.虚电路(虚电路的网络类型是点对点)

虚链路必须配置在ABR上,

虚链路的配置使用的命令是area transit-area-id virtual-link router-id

虚链路的Metric等同于所经过的全部链路开销之和

DR /BDR选举:

1.优先级(0~255; 0代表不参加选举;默认为1);

2.比较Router-id。

次者为BDR。

在Point-to-Point, Point-to-Multipoint(广播与非广播)这三种网络类型不选取DR与BDR; Broadcast, NBMA选取DR与BDR。

先启动OSPF进程的路由器会等待一?#38382;?#38388;,这个时间内你没有启动其它路由的OSPF进程的话,第一台路由就认为自己是DR,之后再加进来的也不能在选举了,这个等待时间叫做Wait Timer计时器,CISCO规定的Wait Timer是40秒。这个时间内你启动的路由是参与选举的,所以真实工作环境中,40秒你大概只启动了两台,DR会再前两台启动的路由中产生,工作一?#38382;?#38388;以后,活的最久的路由最有可能成为DR

OSPF over FRAME-RELAY 的配置:

(1) NBMA : 在HUB?#29616;?#23450;邻居;SPOKE上设置优先级为0。

(2) P-TO-P: 接口下配置命令 ip ospf network point-to-point。

(3) P-TO-MULT P:接口下配置命令 ip ospf network point-to-multipoint。

按需电路配置:

接口下配置命令 ip ospf demand-cricuit。

孤立区域问题解决:

1.虚电路 (虚电路穿过?#37027;?#22495;一定是标?#35760;?#22495;,标?#35760;?#22495;一定是全路由的)

2.隧道

3.多进程重分发

注:如果中间间隔区域为stub区域,则只能用隧道解决.

OSPF分区域的原因:

1.LSA数据过大,造成带宽负载过大。

2.计算全网拓扑,对cup要求过高。

3.数据库过大,对内存要求过高。

OSPF?#37027;?#22495;类型:

骨干: LSA:1 2 3 4 5

标准: LSA:1 2 3 4 5

stub: LSA1 2 3

nssa: LSA1 2 3 7 7(default)

AREA 1 NSSA DEFAULT INFORMATION-ORIGINATE

(ABR上产生默认路由LSA 7)

total-stub: 1 2一条默认3

total-nssa: 1 2 7一条默认3

LSA的类型:

类型1: 路由器链路信息

内容包括:路由器链路Router-id; 接口地址; 接口网络; 接口花费

可使用show ospf database router命令查?#30784;?/p>

类型2: 网络链路信息

由DR通告,如果是点对点的网络类型,没有LSA2

类型3、4:汇总链路(都是ABR通告)

3号通告ospf区域间信息

4号通告asbr的router-id信息(通告nssa区域的abr)

类型5: 通告外部路由

类型7: nssa区域外部路由

类型11: 用于打标签

类型代码

类型名称

描述

1

路由器LSA

每台路由器都会产生,在区域内泛洪

2

网络LSA

DR产生,在区域内泛洪

3

网络汇总LSA

ABR始发,在整个OSPF域中泛洪

4

ASBR汇总LSA

ABR始发,在整个OSPF域中泛洪

5

AS外部LSA

ASBR始发,在整个OSPF域中泛洪

6

组成员LSA

标识OSPF组播中的组成?#20445;?#19981;做讨论

7

NSSA外部LSA

ASBR始发,

8

外部属性LSA

没有实现

9

Opaque LSA(本地链路?#27573;В?/p>

用于MPLS流量工程,不做讨论

10

Opaque LSA(本地区域?#27573;В?/p>

11

Opaque LSA(AS?#27573;В?/p>

OSPF邻居建立过程:

A————————-B

down

init B收到A 发来hello进入init状态

two way hello 4个“*”匹配,选举DR BDR ;A在hello中发现自己的Router-id;

exstart ?#25442;籇BD;确立主从关系(多路访问Router-id高为主,低为从; 串行接口下接口地址大的为主)

exchange ?#25442;?#25968;据DBD (主的先发)

loading ?#25442;?#23436;整数据包LSR LSU

full

注:

每个LSA由序列号确认为最新的更新。

当路由器收到LSA之后的处理过程:

(1)如果数据库有这样的,再查看序列号,如果序列号相同,忽略这条LSA;如果序列号偏大,将其转到数据库,并进行SPF,更新路由表;如果序列号偏小,将一个包含自己的LSA新信息发送给发送方。

(2)如果数据可没有这样的,将其加到数据库表,并发一个ACK返回,并运行SPF,更新路由表。‘

OSPFMetric值:

Cost=10的8次方/带宽,简便记做100Mb/带宽值。Metric值是由cost值逐跳累加的。

环回口的路由,掩码为/32,既我们所?#26723;摹?#20027;机路由”。在?#23548;?#24212;用中,环回口以32位的居多,用作ospf的管理接口。但是如果你想让环回口模拟一个网段,我们可以通过以下配置来消除。

R1(config)#int loopback 0

R1(config-if)#ip ospf network point-to-point

环回口只能配置成point-to-point这种类型,不可以配置成其它的类型。

其他:

1.当一个路由器既是ABR又是ASBR时为了不让巨量外部路由分发进nssa区域使用命令:area 1 nssa no-redistribution default-information originate

2.配置命令show ip ospf database router用来查询拓扑

3.一个路由器在理论?#29616;?#25345;65535个OSPF进程,在?#23548;?#29615;境中一个路由器可支持的OSPF

进程数量与其可用物理接口数量相等。(这个我对老师?#26723;?#26377;疑问,如果我启用了很多环回口,每个环回口一个区域不可?#26376;穡浚?/p>

OSPF汇总

在OSPF骨干区域当中,一个区域的所有地址都会被通告进来。但是如果某个子网忽好忽坏不稳定,那么在它每次改变状态的时候,都会引起LSA在整个网络中泛洪。为了解决这个问题,我们可以对网络地址进行汇总。

Cisco路由器的汇总有两种类型:区域汇总和外部路由汇总。区域汇总就是区域之间的地址汇总,一般配置在ABR上;外部路由汇总就是一组外部路由通过重发布进入OSPF中,将这些外部路由进行汇总。一般配置在ASBR上。

区域汇总:

area area-id range ip-address mask

外部路由汇总:

summary-address ip-address mask

我设计的两个试验,把几个知识点串起来

试验一

用一个试验总结一下ospf over 桢中继的时候,OSPF几种网络类型的差别。

clip_image002

封装好FR,DEBUG看到的几种情况

情况一:两边只起了OSPF进程,其它全部默认

这种情况下邻?#26377;?#35201;手动配置!

R2(config)#router ospf 10

R2(config-router)#neighbor 12.1.1.3

选举了DR,BDR

hello的间隔是30s

OSPF的数据包是单播传送的。

情况二:两边的网络类型改为Broadcast(命令接口下ip ospf network broadcast

这种网络类型下是不需要手动配置邻居关系

有DR与BDR的选举。

Hello时间间隔为10s。

使用224.0.0.5这个组播地址传送数据包。

情况三:网络类型改为Point-to-Point(命令接口下ip ospf net point-to-point

不需要手动指定邻居

没有DR/BDR的选举

Hello时间间隔为10s

使用224.0.0.5这个组播地址传送数据。

情况?#27169;?/b>Point-to-Multipoint(命令接口下ip ospf network point-to-multipoint

不需要手动指定邻居

没有DR和BDR的选举

Hello时间间隔为30s

以224.0.0.5这个组播地址发送数据

情况五:非广播的Point-to-Multipoint

(命令接口下ip ospf network point-to-multipoint non-broadcast)

邻?#26377;?#35201;手动指定,但是邻居只要在一边指定即可。

没有DR和BDR的选取

Hello时间间隔为30s

使用单播传送OSPF数据

列出一张表,方便看

网络类型

邻居自动发现

有无DR选举

Hello间隔

传输方式

默认

30s

单播

Broadcast

10s

组播

Point-to-Point

10s

组播

Point-to-Multipoint

30s

组播

Point-to-Multipoint(非广播)

否,单边指即可

30s

单播

试验二

OSPF的?#29616;?#24635;结:

clip_image004

OSPF的?#29616;?#26377;2种类型(不验证也算的话是3种),使用DEBUG可以看到type0表示无?#29616;ぃ瑃ype1表示明文?#29616;ぃ瑃ype2表示MD5?#29616;ぁ?#26126;文?#29616;?#21457;送密码进行?#29616;ぃ?#32780;MD5?#29616;?#21457;送的是报文摘要。

OSPF的?#29616;?#21487;以在链路上进行,也可以在整个区域内进行?#29616;ぁ?#21478;外虚链路同样也可以进行?#29616;ぁ?/p>

同样也是分情况来讨论。

情况一:R1和R2明文验证

R1(config)#int s1/0

R1(config-if)#ip ospf authentication(启用?#29616;ぃ?/b>

R1(config-if)#ip ospf authentication-key cisco(配置密码)

不配置R2的话

通过debug工具我们可以看到如下信息:

*Aug 15 22:51:54.275: OSPF: Rcv pkt from 10.1.1.2, Serial1/0 : Mismatch Authentication type. Input packet specified type 0, we use type 1

这里的type0是指对方没有启用?#29616;ぃ瑃ype1是明文?#29616;ぁ?/p>

在R2上配置?#29616;ぃ?#20351;得邻居关系?#25351;础?/p>

R2(config)#int s1/0

R2(config-if)#ip ospf authentication

R2(config-if)#ip ospf authentication-key cisco

*Aug 15 22:54:55.815: %OSPF-5-ADJCHG: Process 10, Nbr 1.1.1.1 on Serial1/0 from LOADING to FULL, Loading Done

情况二:在R2和R3的串行链路上进行MD5?#29616;?#30340;:

R2(config)#int s1/1

R2(config-if)#ip ospf authentication message-digest(定义?#29616;?#31867;型为MD5

R2(config-if)#ip ospf message-digest-key 1 md5 cisco(定义key和密码)

R3(config)#int s1/0

R3(config-if)#ip ospf authentication message-digest

R3(config-if)#ip ospf message-digest-key 1 md5 cisco

情况三:增加R2和R3上串行链路的MD5?#29616;?#30340;密码:

在R2原有的配置上?#30001;?#19979;面这条命令:

R2(config-if)#ip ospf message-digest-key 2 md5 openlab

R2#sho ip ospf neighbor

Neighbor ID Pri State Dead Time Address Interface

3.3.3.3 0 FULL/ – – 11.1.1.2 OSPF_VL0

1.1.1.1 1 FULL/BDR 00:00:34 21.1.1.1 FastEthernet0/0

1.1.1.1 0 FULL/ – 00:00:37 10.1.1.1 Serial1/0

3.3.3.3 0 FULL/ – 00:00:31 11.1.1.2 Serial1/1

邻居关系没有丢失。

增?#26377;?#30340;密码钥匙,然后在将原来的密码删除,候邻居关系不受影响。

情况?#27169;?#22312;Area0上进行区域?#29616;ぃ?#20197;前没做过吧)

R1(config)#router ospf 10

R1(config-router)#area 0 authentication

还没有写下一步,就是刚启用,还没设置密码,邻居就down掉了

同样,R2上启用一下,邻居就?#25351;?/p>

或者都设置相同的密码也可以。

情况五:Area0上进行区域?#29616;?#20197;后。。。

R2#clear ip ospf pro清进程,A2区域的学不到邻居了。R3是通过虚链路连接到骨干区域的。因为virtual-link属于Area0,因此在R2配置完成Area0区域?#29616;?#21518;,R3也需要相应的配置。

R3(config)#router ospf 10

R3(config-router)#area 0 authentication

这样就可以了

情况六:单纯的虚链路的?#29616;ぃ?#36825;个以前也没做过吧)

明文?#29616;ぃ琈D5?#29616;ぁ?#37197;置命令如下:

明文:

R2(config-router)#area 1 virtual-link 3.3.3.3 authentication-key cisco

R3(config-router)#area 1 virtual-link 2.2.2.2 authentication-key cisco

MD5:

R2(config-router)#area 1 virtual-link 3.3.3.3 authentication message-digest

R2(config-router)#area 1 virtual-link 3.3.3.3 message-digest-key 1 md5 cisco

R3(config-router)#area 1 virtual-link 2.2.2.2 authentication message-digest

R3(config-router)#area 1 virtual-link 2.2.2.2 message-digest-key 1 md5 cisco

另外通过实验知道虚链路在建立起来后是DNA LSA(不老化LSA),所以如果没有重启OSPF进程的话,即使一端配置了?#29616;ぃ?#34394;链路也是不会断开的。

后面是sniffer抓得包

Hello包

clip_image006

Lsu包

clip_image008

clip_image010

LSACK包

clip_image012

上面是一般情况,下面是明文验证的几个包

Hello

clip_image014

DBD

clip_image016

LSR

clip_image018

LSU

clip_image020

LSACK

clip_image022

下面是MD5?#29992;莧现?#24471;包

Hello

clip_image024

DBD

clip_image026

LSR

clip_image028

LSU

clip_image030

clip_image032

LSACK

clip_image034

思科eigrp技术总结

Operation of EIGRP

EIGRP 是一个距离向量路由协议,但是它还具有链路状态路由协议的一些特征。距离向量的路由协议一般都是基于Bellman-Ford(或 Ford-Fulkerson)算法的。这样的算法容易引起路由循环(loop)和计数无穷大(counting to infinity),所以就必须采取些减少和避免上述问题的措施比如水平分割、holddown timer、毒性反转等。

在距离向量路由协议环境里,由于路由器在给别的邻居(neighbor)传输它所接收到的路由之前,先要进行路由的计算,所以在大型网络里,收?#19981;?#27604;?#19979;?#24182;且一旦链路变化,?#21482;?#24341;起大量的路由被宣告和距离向量路由协议相比,链路状态路由协议受上述问题的影响就小的多。

1.链路状态包(Link-State Packet,LSP)的转发是不依靠路由计算的,所?#28304;?#22411;网络可以较为快速的进行收敛.

2.它只宣告链路和链路状态,而不宣告路由,所以即使链路发生了变化,不会引起该链路的路由被宣告。但是链路状态路由协议使用的是Dijkstra算法,该算法比较复杂,并且较占CPU和内存资源。和其他路由协议单独计算路由相比,链路状态路由协议采用种扩散计算(diffusing computations ),通过多个路由器并行的记?#26376;?#30001;计算,这样就可以在无环路产生?#37027;?#20917;下快速的收敛

EIGRP 的路由 update(更新)的发送周期的不固定的,它只在网络链路发生变化以后才被发送,并且更新中可以只包含发生变化了的路由条目,而且只发给受到影响的路由器.这样就对链路带宽进行了节约。在WAN低速链路上,EIGRP可能会占用大量带宽,默?#29616;?#21344;用链路带宽50%,使用命令ip bandwidth-percent eigrp 来修改这一默?#29616;怠?/p>

EIGRP是一种基于无类的路由协议, EIGRP packet只能用MD5?#29992;?#30340;方式进行验证

EIGRP支持IP,IPX和AppleTalk

EIGRP使用和IGRP相同的公式来计算metric,然而,这个metric要在IGRP算出来的metric 之上乘以1个256

clip_image002

EIGRP的4个组件如上图:

1. Protocol-Dependent Module (PDM)

2.可靠传输协议(Reliable Transport Protocol,RTP)

3.邻居的发现/?#25351;?/p>

4.扩散更新算法(Diffusing Update Algorithm, DUAL)

Reliable Transport Protocol

RTP负责EIGRP packet?#30446;?#38752;的、?#27492;?#24207;的发送和接收,这个可靠的保障是通过Cisco私有的一个算法“reliable multicast(可靠组播)” 实现的,使用组播地址 224.0.0.10,每个邻居接收到这个可靠的组播包的时候就会以一个 unicast 作为确认。?#27492;?#24207;的发送是通过 packet 里的 2 个序列号实现的,每个 packet 都包含发送方分配的 1 个序列号,发送方每发送 1 个 packet,这个序列号就递增 1.另外,发送方?#19981;?#25226;最近从目标路由器接收到的 packet 的序列号放在这个要发送的packet里

EIGRP使用多种类型的packet,这些packet通过IP包头信息里的协议号 88 来标识:

1. Hello packet:用来发现和?#25351;?#37051;居,通过组播的方式发送,使用不可靠的发送

2. ACK(acknowledgement) packet:不包含数据的Hello包,使用unicast的方式,不可靠的发送

3. Update packet:传播路由更新信息,不定期的通过可靠的方式发送(比如网络链路发生变化)。当只有一台路由器需要路由更新时,update通过unicast的方式发送;当有多个路由器需要路由更新的时候,通过组播的方式发送

4. Query(查询) & Reply(应答) packet:是 DUAL finite state machine 用来管理扩散计算用的,查询包可以是组播或unicast;应答包是通过unicast的方式发送,并且方式都是可靠的

5. Request(请求) packet:最初是打算提供给路由服务器(server)使用的,但是从来没实现过

如果packet通过可靠的组播方式发送出去,并且没有收到邻居反馈的ACK包,那么这个 packet会再?#25105;評nicast的方式发送给那个未响应的邻居,如果经过16次的重传unicast,仍然没有收到ACK包的话,那么这个邻居就宣告为无效。

在从组播切换到 unicast 之前,等待ACK包的时间可以由multicast flow timer(MFT)指定,后续的重新传unicast的发送间隔可以由 RTO(retransmission timeout)指定。每个邻居的 MFT 和 RTO 都可以通过 SRTT(smooth round-trip time)来计算,SRTT的单位是(毫秒)ms,用来衡量路由器从发送EIGRP packet到某个邻居并接收到这个邻居的ACK包所花费的平均时间。

Neighbor Discovery/Recovery

在这里,邻居是指网络中直连的通告EIGRP的路由器。EIGRP的Hello包在一般的网络中(比如点到点,point-to-point)是每5秒组播1次(要随机减去 1 个很小的时间防止同步);在多点(multipoint)X.25,帧中继(Frame Relay,FR)和 ATM 接口(比如 ATM SVC)和ISDN PRI接口上,Hello包的发送间隔是60秒。在所有?#37027;?#20917;中,Hello包是不需要确认的。可以在接口配置模式下修改该接口的Hello包默认的发送间隔,命令为ip hello-interval eigrp

当一个路由器收到从邻居发来的Hello包的时候,这个Hello包包含了一个hold time,这个hold time告诉这个路由器等待后续 Hello 包的最大时间。如果在超出这个 hold time 之前没有收到后续 Hello 包,那么这个邻居就会被宣告为不可达,并通知DUAL这个邻居已丢失。默认hold time是3倍于Hello包发送间隔的, 可以在接口配置模式下修改这个默认的hold time,命令为ip hold-time eigrp

EIGRP邻?#26377;?#24687;?#25216;?#24405;在邻居表(neighbor table)中,使用show ip eigrp neighbors命令查看IP EIGRP的邻居

The Diffusing Update Algorithm

DUAL: Preliminary Concepts(预备概念)

为了能够让DUAL正确的操作,低层协议必须满足以?#24405;?#20010;条件:

1.一个节点要在有限的时间里检测到新邻居的存在或和一个邻居的连接的丢失

2.在链路上传输的所有信息必须在有限的时间里按正确的顺序收到

3.所有的消息,包括链路cost的更改、链路故障和新邻居的发现,都应该是在有限时间里,一个一个的?#26469;?#22788;理

Cisco的EIGRP 使用邻居的发现/?#25351;?#21644;RTP 来确保上述前提条件

adjacency(邻接):

在刚启动的时候,路由器使用 Hello 包来发现邻居并标识自己用于邻居的识别。当邻居被发现以后,EIGRP 会在它们之间形成一种邻接关系。邻接是指在这 2 个邻居之间形成一条?#25442;?#36335;由信息的虚链路(virtual link)。当邻接关系形成以后,它们之间就可以相互发?#21520;?#30001;update,这些update包括路由器它所知道的所有的路由及其metric。对于每个路由,路由器都会基于它邻?#26377;?#21578;的距离(distance)和到达那个邻居的链路的cost来计算出一个距离

Feasible Distance(FD,可行距离):

到达每个目标网络的最小的 metric 将作为那个目标网络的 FD。比如,路由器可能有 3 条到达网络 172.16.5.0 的路由,metric分别为380672,12381440和660868,那么380672 就成了FD

Feasible Condition(FC,可行条件):

邻?#26377;?#21578;到达目标网络的的距离小于本地路由器到达目标网络的FD

Feasible Successor(FS,可行后继路由器):

如果一个邻?#26377;?#21578;到达目标网络的距离满足FC,那么这个邻居就成为FS。比如,路由器到达目标网络172.16.5.0的FD为 380672,而他邻居所宣告到达目标网络的距离为 355072,这个邻居路由器满足 FC,它就成为 FS;如果邻居路由器宣告到达目标网络的距离为380928,即不满足FC,那么这个邻居路由器就不能成为FS

注意:FSFC是避免环路的核心技术,FS也是downstream router(下游路由器),因为从FS到达目标网络的距离?#32570;?#22320;路由器到达目标网络的FD要小

Successor(后继路由器):

对于列举在拓扑表里的每个目标网络,将选取 metric 最小的的路由放置在路由表里,宣告这条路由的邻居就成为Successor,或者是下一跳路由器

命令show ip eigrp topology 可查看每个目标网络及相应的FD、FS和Successor

如果FS宣告的路由的metric比当前Successor的metric小的话,那么这个FS就将成为新的Successor,如?#24405;?#31181;情况可能会引起这个现象的发生:

1.发现一条新的路由

2.现有Successor的metric增加,超过了FS的metric,或现有FS的metric减小到小于现有Successor的metric

FS减少了扩散计算的?#38382;?提高了网络性能,同时?#27493;档?#20102;收敛的?#38382;?如果到达Successor的链路出故障,或者链路的 cost 增加,并超过了 FD,那么路由器会先在它的拓扑表中查找 FS,如果有 FS 的话,这个FS将成为新的Successor;如果找不到可用的FS,它才重新进行扩散计算

The DUAL Finite Machine

当 EIGRP 路由器不进行扩散计算的时候,所有的路由都处于被动(passive)状态。当发生输入事件(input event)的时候,路由器会?#26376;?#30001;的FS列表进行重新评估,输入事件的源:

1.直连链路的cost发生变化

2.直连链路状态的变化(比如up或down)

3.收到更新包

4.收到查询包

5.收到应答包

路由器重新评估的第一步是在本地路由器?#29616;?#34892;本地计算(local computation),可能的结果如下:

1.如果FS的metric最小,并且和现有Successor不同的话,那这个FS就成为新的Successor

2.如果新的距离(distance)小于FD,FD将被更新

3.如果新的距离和已经存在的距离不同,将向所有邻居发送更新包

当路由器执行本地计算的时候,路由仍然处于被动状态,如果本地路由器在它的拓扑表里发现可用的 FS,更新包将发送给它所有的邻居,但是路由状态不会改变;如果没有发现可用的 FS,路由器将进行扩散计算并且路由会进入活跃(active)状态。

在路由器扩散计算完成和路由状态返回为被动状态之前,路由器:

1.不能更改路由的Successor

2.不能更改正在宣告的路由的距离

3.不能更改路由的FD

4.不能开始进行路由的另一个扩散计算

路由器是通过向它所有邻居发送一个查询来开始一个扩散计算的。查询包包含了本地路由器计算出来的到达目标地址的新的距离,当每个邻居收到这个查询包的时候,就开始进行自己的本地计算:

1. 如果邻居有到达目标地址的一个或多个 FS,它就反馈应答包给产生这个查询包的路由器。这个应答包包含了这个邻居所计算出的它到达目标地址的最小的距离

2. 如果邻?#29992;?#26377;FS,它就把路由更改为活跃状态并进行扩散计算

扩散计算在查询的时候,?#27573;?#26159;扩大,在应答的时候,?#27573;?#26159;缩小

对于每一台接收查询的邻居路由器,本地路由器会设置一个答复状态标记(reply status flag,r)来不断地跟踪这些所有未处理的查询包。当本地路由器接收到所有发出去的查询包的应答的时候,扩散计算就完成了

在扩散计算?#30446;?#22987;,active timer 设置为3分钟(早期 IOS版本设置为 1分钟),如果在这个 active timer 超时之前仍然没有收到发出去的查询包的所反馈的所有的应答包的时候,那么这些没有收到应答包的路由就被标记为stuck-in-active(SIA),这些没有反馈应答的邻居将从邻居表中被删除,而且扩散计算会认为是这个邻居反馈了一个为无穷大的metric。active timer的修改命令为timers active-time

在扩散计算完成后,最初发送查询包的路由器会把FD设置为无穷大,这样确保了任何反馈应答包的路由器都满足FC并且能够成为 FS。对于这些应答包,metric 的计算是基于应答包中宣告的距离?#30001;?#21040;达这个反馈应答包的邻居路由器的链路cost。metric 最小的成为Successor,并且FD就设置为这个最低的 metric。任何不满足 FC的 FS 将从拓扑表中被删除。注意在收到所有的应答之前是不会选择Successor的

扩散计算的核心思想如下:

1.任?#38382;?#38388;发生了IE的话,将执行本地计算

2.如果在拓扑表里发现了多个FS,metric 最低的作为新的Successor

3.如果没有?#19994;?#21487;用的FS,路由进入活跃状态,并向邻居发出查询包,寻找新的FS

4.当所有发出去的查询包都被应答包响应,或者在active timer超出之前,路由会一直处于活跃状态

5.如果扩散计算结果没有?#19994;?#26032;?#30446;?#29992;FS 的话,那么将宣告目标不可达

EIGRP packet 的活动可以通过命令 debug eigrp packets 来跟踪,默认情况下会显示所有的 EIGRP packet,由于 Hello 包和 ACK 包的数量可能过大导致不便于跟踪,所以可以使用关键字来指定跟踪的 EIGRP packet 类型:debug eigrp packet query reply update

思科BGP技术详解九

第六条:MED,多出口鉴别器,

AS200R

clip_image002如图:

AS100为运营没:AS200为企业,

如果企业做属性影响ISP,即所影响

的是R1R4的属性。

是在本地实现的影响是的外到内。

MED的默?#29616;?#20026;0,越小?#25509;畔取?#20174;R1R4现在默认是从的R3地,现在改成为走上面,即把R3 MED改大即可。“修改的是本地AS内,影响的是对方AS到本地AS的的路径。在r3 上面来做:

用到前面我们学到的?#25104;?#24037;具:router-map.还要匹配一条路径(一个规则)match,先定一个防表:到4.4.4.4的路由,走上面的那一条R2的路径。

R3:Acces-list 10 permit4.4.4.0 0.0.0.0255 为什么不用扩展防表:“只是影响的目的“。

Route-map med(名字) perit 10 (序号)

Match ip addr 10(防表)

Set metric 20(修改MED的值,默认为0.show ip bgp 下,MED是用metric表示的。)

Router bgp 200

Neig 13.1.1.1 route-map med(名字) out 把设置的值?#25104;?#32473;邻居,让他收到这个20

现在是指的邻居到达R4(定防表是指的4.4.4.4),是影响的R1,也就是对R1来?#26723;模?#26159;Out(是邻居R1到达R4,即R1Out接口。)

R4:#Show ip bgp ?#25925;?#36208;的R3 ,没有生效

*>i1.1.1.0/24 3.3.3.3 0 100 0 100 i

* i 2.2.2.2 0 100 0 100 i

*> 4.4.4.0/24 0.0.0.0 0 32768 i

Clear ip bgp * ?#25925;?#27809;有生效:在R3上:show runn,发现是忘记配置set metric 20。配置完成:

&6R1 :show ip bgp 现在是经过R2到达R4的。

Network Next Hop Metric LocPrf Weight Path

*> 1.1.1.0/24 0.0.0.0 0 32768 i

*> 4.4.4.0/24 12.1.1.2 0 200 i

* 13.1.1.2 20 0 200 i

R1#traceroute 4.4.4.4 so 1.1.1.1

1 12.1.1.2 60 msec 72 msec 48 msec

2 24.1.1.2 56 msec * 52 msec

R4#traceroute 1.1.1.1 so 4.4.4.4 回到R1怎么走的下面R3呀?

1 34.1.1.1 52 msec 60 msec 20 msec

2 13.1.1.1 16 msec * 76 msec

总结:也就是在本地做了属性,是影响的对端。

R4上查:(为什么?#25925;?#36208;的R3?)

Network Next Hop Metric LocPrf Weight Path

*>i1.1.1.0/24 3.3.3.3 0 100 0 100 i

* i 2.2.2.2 0 100 0 100 i

R4上再启一个loop 5.5.5.5

R4 :int loop 1

Ip addr 5.5.5.5 255.255.255.0

Router bgp 200

Net 5.5.5.0 mask 255.255.255.0

Exit

Show ip bgp 收到一个5.5.5.5 的网络。

R1show ip bgp

Network Next Hop Metric LocPrf Weight Path

* 4.4.4.0/24 13.1.1.2 20 0 200 i

*> 12.1.1.2 0 200 i

*> 5.5.5.0/24 12.1.1.2 0 200 i

R1收到5.5.5.5应该有两条路径才对,现在只有一条,而且是从Rr2收过来的。原因是:在R3上做了一个Route-map,只匹配了一个permit 10 ,后面跟的是一条隐式的拒绝,必须在permit 10 必须加一条空的route-map med permit 20 才正确。

R1#show ip bgp

Network Next Hop Metric LocPrf Weight Path

*> 1.1.1.0/24 0.0.0.0 0 32768 i

* 4.4.4.0/24 13.1.1.2 20 0 200 i

*> 12.1.1.2 0 200 i

* 5.5.5.0/24 13.1.1.2 0 200 i

*> 12.1.1.2 0 200 i

第五条.Origin属性:

origin属性改路由只能在起源的路由器上改。?#25925;?#20570;这个路径,R1R4,走13.1.1.2(现在走的是12.1.1.2.?#25925;?#29992;Route-map做。先写一个防表:

R1:Access-list 10 permit 4.4.4.4 0.0.0.255

Route-map ccnp permit 10

Macth ip addr 10

Set origin incomplete(就是?)要想路径走下面,是IGP学来的,那么把上面改成EGP或?就可以了。

Router bgp 100

Nei 12.1.1.2 route-map qiyuan in(是影响的对端,是接收r1 的策略,所以R2上是IN方向)

Clear ip bgp * (清一下才生效)

之后,从路由应该从下面R3上走才对。

&5Show ip bgp (方框内:i>?

*> 4.4.4.0/24 13.1.1.2 20 0 200 i

* 12.1.1.2 0 200 ?

*> 5.5.5.0/24 13.1.1.2 0 200 i

从下面R3走了(5.5.5.5的另一条路由怎么没了呢有?),通过修改起源路径,可以证明i>?.还证明了点是起源大于后面的那条属性。

第四条.AS-path属性;

要想证AS-path属性来决定路径,必须在EBGP之间,如果用在IBGP之间都是一样的(从IGBP之间学来了路由不能修改)。

R1R4,是从as 200 学来的,现在是默认从R3走的,改到?#30001;?#38754;走,把下面的路径改长即可,即从下面?#30001;?#19968;个AS 300,那么下面的路?#27602;?#20250;比上面的路径长了,所以就会?#30001;?#38754;R2走了。

R1aaces-list 10 permit 4.4.4.0 0.0.0.255(上一个试验已做)

Route-map ccnp permit 10

Match ip addr 10

Set ccnp prepend 300 (?#27493;?/em>AS-path预附加,即预加一个AS)

Exit

Route-map ccnp permit 20

Exit

Router bgp 100

Nei 13.1.1.2 route-map ccnp in

Exit

Clear ip bgp *in

(&4)Show ip bgp (0 300 200 i>0 200 i,多走了一个AS 300.)

Network Next Hop Metric LocPrf Weight Path

*> 4.4.4.0/24 12.1.1.2 0 200 ?

* 13.1.1.2 20 0 300 200 i

*> 5.5.5.0/24 13.1.1.2 0 200 i

路由是从R2走的,在下面的路径上多了个AS300 ,路径变长了,选择了R2,走的是路径较短的。前面的配置都不生效了,也验证了第四条属性优先于后面的属性。

注意:在前加了一个AS300 ,现实情况有可能AS300 存在网络中,如AS300收到一个包含自己的

路径,是认为有环路了,有要了。一般情况下,定自己或定对方。

第三个,本地始发:

只要IGP可达,NETwork 就能宣告进来。

R2上把2.2.2.0宣进BGp

Router bgp 200

Net 2.2.2.0 mask 255.255.255.0

R2:Show ip bpg

Network Next Hop Metric LocPrf Weight Path

* i1.1.1.0/24 3.3.3.3 0 100 0 100 i

*> 12.1.1.1 0 0 100 i

*> 2.2.2.0/24 0.0.0.0 0 32768 i

r>i4.4.4.0/24 4.4.4.4 0 100 0 i

*>i5.5.5.0/24 4.4.4.4 0 100 0 i

4.4.4.4.通过OSPF也可以学到,是一条写入失败的路由(RIB-failure,是不放进路由中了,但是通过show ip bgp 可以看出选哪一个路径。

R4show ip bgp

Network Next Hop Metric LocPrf Weight Path

*>i1.1.1.0/24 3.3.3.3 0 100 0 100 i

* i 2.2.2.2 0 100 0 100 i

r>i2.2.2.0/24 2.2.2.2 0 100 0 i

*> 4.4.4.0/24 0.0.0.0 0 32768 i

*> 5.5.5.0/24 0.0.0.0 0 32768 i

R4学到了一个rr RIB-failure)路径,路径指向:

R4上,把2.2.2.0 宣到BGP中,看一下,学到的是哪个2.2.2.0 的路径?

R4router bgp 200

Net 2.2.2.0 mask 255.255.255.0

&3Shw ip bgp

Network Next Hop Metric LocPrf Weight Path

*>i1.1.1.0/24 3.3.3.3 0 100 0 100 i

* i 2.2.2.2 0 100 0 100 i

*> 2.2.2.0/24 24.1.1.1 41 32768 I

* i 2.2.2.2 0 100 0 i

*> 4.4.4.0/24 0.0.0.0 0 32768 i

*> 5.5.5.0/24 0.0.0.0 0 32768 i

R4 上学到了2.2.2.0的两条路径,*> 2.2.2.0/24 前面的i没有了,一条是通过R2BGp加入进来的,一条是R4上的bgp加入进来的,是本地始发的路径,选择的R4本地的。前面有i的是通过IBGP邻居学来了。下面?#30446;?#30340;,没有i,说明是本地始发的(不一定是直连路由)。>在本地始发这条上。

*> 2.2.2.0/24后面还一个奇怪的现象,metric41

在本试验中,最优路径选择是R4通过net宣到BGp中的本地的路由,按惯例,宣告的都是直连的它的metric 应该是0,而现在是4141是通过修改OSPFcost?#26723;?#26469;的,也就是IBGP的度量。在R42.2.2.2是本地始发的,所以本地始发的路由的Metric就是IGP 的度量。

第二条,本地优先

是用在IBGP邻居之间,是有本地有多个出口到达外地进,才用。

R4:定一个到达1.1.1.1的防表

Access-list 10 permit 1.1.1.0 0.0.0.255

Route-map bendi permit 10

Match ip addr 10

Set local-priference 120 现在默认R4R1走的R3下面的一条路径,现在通过修改本地优先属性,让R4R2到达R1.本地优先的默?#29616;?#26159;100,越大?#25509;?#20808;,只要把到达R2的改为120即可。

Exit

Route-map bennndi permit 20

Exit

Router bgp 200

Nei 2.2.2.2 route-map bendi in

End

Clear ip bgp *(必须清才生效)

&2R4show ip bgp

Network Next Hop Metric LocPrf Weight Path

*>i1.1.1.0/24 2.2.2.2 0 120 0 100 i

* i 3.3.3.3 0 100 0 100 i

*> 2.2.2.0/24 24.1.1.1 41 32768 i

* i 2.2.2.2 0 100 0 i

*> 4.4.4.0/24 0.0.0.0 0 32768 i

*> 5.5.5.0/24 0.0.0.0 0 32768 i

R4到达2.2.2.2 locprf120(默认是100),locprf大的优?#21462;?#23454;现目的。

第一类,权重属性:

从别的路由器上收到都是0.可以直?#26377;?#25913;权重。现在默认走上面R2,把权重改大,就可以走下面了。

R4 :Router bgp 200

Neig 3.3.3.3 weight 10000

end

Clear ip bgp *

&1Show ip bgp

Network Next Hop Metric LocPrf Weight Path

* i1.1.1.0/24 2.2.2.2 0 120 0 100 i

*>i 3.3.3.3 0 100 10000 100 i

*> 2.2.2.0/24 24.1.1.1 41 32768 i

* i 2.2.2.2 0 100 0 i

*> 4.4.4.0/24 0.0.0.0 0 32768 i

*> 5.5.5.0/24 0.0.0.0 0 32768 i

方框内的weight 变为了10000.路径从3.3.3.3走的。

总结()属性:

看上面的bgp表:

看属性,1.首先看权重(weight&1:权重最大的最优?#21462;?/b>

2.(如没有权重或权重相同)看本地优先(Locprf&2):越大?#25509;畔取?/em>

3.(前两类没有或相同)看本地始发(metric&3):优先IGP度量

4.(……)看AS-path(Path&4):越短?#25509;畔取?/em>

5. (……)看起源(看最后在的是i不是?):i>e>?

6. (……)MED (metric来表示MED&6):越小?#25509;畔取?/em>

7.……

思科BGP技术详解八

一、属性试验:

clip_image001clip_image003

BGP的十二种选路规则倒序的方法来验证属性。如图:

R1AS100 R2-R4AS 200,内?#31185;?/em>OSPF100,每个路由器启loop

基本配置完成,Ping 直连链路。

R1:# Router bgp 100

Router id 1.1.1.1

Neig 12.1.1.2 remote-as 200

Neig 13.1.1.2 remote-as 200

Network 1.1.1.0 mask 255.255.255.0

Exit

R2:# router bgp 200

bgp router-id 2.2.2.2

neighbor ccnp peer-group

neighbor ccnp remote-as 200

neighbor ccnp update-source Loopback0

neighbor ccnp next-hop-self

neighbor 3.3.3.3 peer-group ccnp

neighbor 4.4.4.4 peer-group ccnp

neighbor 12.1.1.1 remote-as 100

R3:# router bgp 200

bgp router-id 3.3.3.3

neighbor ccnp peer-group

neighbor ccnp remote-as 200

neighbor ccnp update-source Loopback0

neighbor 2.2.2.2 peer-group ccnp

neighbor 4.4.4.4 peer-group ccnp

neighbor 13.1.1.1 remote-as 100

R4router bgp 200

bgp router-id 4.4.4.4

neighbor ccnp peer-group

neighbor ccnp remote-as 200

neighbor ccnp update-source Loopback0

neighbor ccnp next-hop-self

neighbor 2.2.2.2 peer-group ccnp

neighbor 3.3.3.3 peer-group ccnp

network 4.4.4.0 mask 255.255.255.0后来配置上的

R4:Show ip bgp 什么也没有显示:

原因:

R3上也要指邻居要指邻居R113.1.1.1R2上也要指邻居R112.1.1.1,也就是不只是AS内部指邻居,ASAS之间也要指邻居。

配置完成:R4:show ip bgp 显示:

Network Next Hop Metric LocPrf Weight Path

*>i1.1.1.0/24 2.2.2.2 0 100 0 100 i

R1#show ip bgp 没有4.4.4.4网络,原因时,show runn发现在R4上没把loop口宣到BGP中,配置: R4:Router bgp 200 Net 4.4.4.0 mask 255.255.255.0

R1show ip bgp 有了:

Network Next Hop Metric LocPrf Weight Path

*> 1.1.1.0/24 0.0.0.0 0 32768 i

* 4.4.4.0/24 13.1.1.2 0 200 i

*> 12.1.1.2 0 0 200 i

4.4.4.4 和其他学到了二条路由,“>”是在下面的一条(有>的是最优路径),是从来12.1.1.2走的。是什么原因从下面选的?

第十二条:对等体的最小IP。不符合。

第十一条:“选router ID 较小的”在这里不符合,因13.1.1.2router-id 3.3.3.3.

第九条:R1上用show ip bpg sum

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

12.1.1.2 4 200 36 41 9 0 0 00:27:28 1

13.1.1.2 4 200 35 37 9 0 0 00:27:25 1

12.1.12建立的时间是:28秒,而13.1.1.2建立的时间是:25秒,是按照第十条()选路规则时行选择路径的。为验证,可以去影响这个路径,可以去修改,可以让他们重新建立连接一下,重新建立邻居,clear一?#24405;?#21487;。R1:clear ip bgp 12.1.1.2

R1:#show ip bpg

Network Next Hop Metric LocPrf Weight Path

*> 1.1.1.0/24 0.0.0.0 0 32768 i

* 4.4.4.0/24 12.1.1.2 0 200 i

*> 13.1.1.2 0 200 i

换过来了。>指向了13.1.1.2成了最优路径。

Show ip bgp sum

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

12.1.1.2 4 200 48 54 10 0 0 00:01:57 1

13.1.1.2 4 200 43 46 10 0 0 00:35:39 1

13.1.1.2建立时间为大于12.1.1.2的建立时间了,所选择了13.1.1.2路径。验证了第十条属性。

第八条:选择IGP最小的路径。

现在默认走的上面有即:show ip bgp

Network Next Hop Metric LocPrf Weight Path

* i1.1.1.0/24 13.1.1.1 0 100 0 100 i

*>i 2.2.2.2 0 100 0 100 i

*> 4.4.4.0/24 0.0.0.0 0 32768 i

那么现在要示它走下面的路径到R4(默认是走的2.2.2.2,度量是11)。要修改把R2IGP路径改大,则会选择R3来走了。能不能实现试验呢?

R4:#Show ip route

34.0.0.0/24 is subnetted, 1 subnets

C 34.1.1.0 is directly connected, FastEthernet0/1

1.0.0.0/24 is subnetted, 1 subnets

B 1.1.1.0 [200/0] via 2.2.2.2, 00:04:36

2.0.0.0/24 is subnetted, 1 subnets

O 2.2.2.0 [110/11] via 24.1.1.1, 02:05:14, FastEthernet0/0

3.0.0.0/24 is subnetted, 1 subnets

O 3.3.3.0 [110/11] via 34.1.1.1, 02:05:14, FastEthernet0/1

4.0.0.0/24 is subnetted, 1 subnets

C 4.4.4.0 is directly connected, Loopback0

24.0.0.0/24 is subnetted, 1 subnets

C 24.1.1.0 is directly connected, FastEthernet0/0

R4:# int f0/0 (指向R2的接口)

Ip ospf cost 40 (修改IGP度量)

cleare ip ospf P (清一下ospf 进程)

R4:show ip route 度量变为41.

34.0.0.0/24 is subnetted, 1 subnets

C 34.1.1.0 is directly connected, FastEthernet0/1

1.0.0.0/24 is subnetted, 1 subnets

B 1.1.1.0 [200/0] via 2.2.2.2, 00:13:04

2.0.0.0/24 is subnetted, 1 subnets

O 2.2.2.0 [110/41] via 24.1.1.1, 00:00:02, FastEthernet0/0 变成40了(还有原先的1

3.0.0.0/24 is subnetted, 1 subnets

O 3.3.3.0 [110/11] via 34.1.1.1, 00:00:02, FastEthernet0/1

4.0.0.0/24 is subnetted, 1 subnets

C 4.4.4.0 is directly connected, Loopback0

24.0.0.0/24 is subnetted, 1 subnets

C 24.1.1.0 is directly connected, FastEthernet0/0

R4#show ip bgp

* i1.1.1.0/24 13.1.1.1 0 100 0 100 i

*>i 2.2.2.2 0 100 0 100 i

*> 4.4.4.0/24 0.0.0.0 0 32768 i

没有切换过来,1.1.1.1的上面一条的下一跳是13.1.1.1,应该是3.3.3.3 才对。

R3#:SHOW runn

rouer bgp 200内,没有把3.3.3.3宣到BGP ?#23567;?/em>

Router bgp 200

Net 3.3.3.0 mask 255.255.255.0

R4 show ip bgp

Network Next Hop Metric LocPrf Weight Path

* i1.1.1.0/24 13.1.1.1 0 100 0 100 i

*>i 2.2.2.2 0 100 0 100 i

r>i3.3.3.0/24 3.3.3.3 0 100 0 i

*> 4.4.4.0/24 0.0.0.0 0 32768 i

?#25925;?#19981;正确,没有切换过来,只是多了一条3.3.3.3的写入路由表失败的路由。1.1.1.1的下一跳?#25925;?#30340;3.1.1.1,把刚配置的命令删了。

R3#show runn

发现:在R3上没有指自己为更新源。由此想到了。IBGP内部的水平分割问题“下一跳不变”的事来,肯定是指下一跳出问题了。配置上到R4上:show ip bgp ,有了,终于把2.2.2.2 切换到3.3.3.3了。验证了在IBGP内部的IGP度量小的路径优先了。同时前和第九条的试验内容没有改变,只是做了第八条试验,所以第八条优于第九条。

#show ip bgp

*>i1.1.1.0/24 3.3.3.3 0 100 0 100 i

* i 2.2.2.2 0 100 0 100 i

*> 4.4.4.0/24 0.0.0.0 0 32768 i

第七条:EBGP>IBGP: EBGPIBGP优?#32570;?#35797;验中没?#23567;?/em>

思科BGP技术详解七

五、BGP的属性

属性决定路由的选路。分为四种类别:公认必遵、公认自选、可选可传递 、可选不可传递,路径属性是Update包携带的。

(一)属性分为:

origin 起源属性。

Next-hop:下一跳属性

AS-path属性

本地优先属性

多出口鉴别器属性

1.公认必遵

对于任?#25105;?#21488;运行的BGP路由器,都必须支持公认必遵属性,并且半路由信息发给其它BGp邻居时,必须中路由中写入公认必遵属性,这些属性是强制定入路由中的,一条不带公认必遵的路由被BGP路由器视为无效而被丢弃。个不支持公认强制属性的BGP,是不正常的,不合法的BGP

BGp路由必须携带的公认必遵属性有三种:origin\next-hop\as-path.

必用的属性。

2.公认自选(well-known discretionary

公认自选属性并不象强制属性那么严格,任?#25105;?#21488;运行BGP的路由器上都必须支持公认自选属性,必须理解认识公认自选属性,但是为路由定入公认自选属性并不是必须的,是否要为路由写入公认自选属性可以自由决定,为路由写上公认自选之后,所有BGP路由都能认识和理解,并且都会自动保留和传递该属性。

3.可选可传递(optional transitive

并不是所有运行BGp的路由器都是能理解和支持可选可传递属性,路由?#30446;?#36873;可传递属性是?#25105;?#20889;入的,其它BGp路由器并不一定能理解,也并不一定能保留和传递该属性,但是当为路由设置了可选可传递后,可以明确要求BGP路由器保留和传递该属性。

意思是:一但用该属性,必须向下传递。

4.选不可传递属性(optional Nontransitive

只有特定的BGp路由器才理解和支持选不可传递属性,并且选不可传递属性理论上是不能手工设置的,即便手工设置了选不可传递属性,这些属性也不能?#25105;?#20256;递,只可?#28304;?#36882;到特定的BGP路由器

意思是:只要设置上,不能随便传,只传递特定的路由器。

(二)分别讨论各种分类:

1.origin(公认必遵的属性)

show ip bgp 在每行的最后有一i,标识的都是起源属性是一个代码,在这里起源是i – IGP

Network Next Hop Metric LocPrf Weight Path

*> 1.1.0.0/22 12.1.1.1 0 0 100 i

*> 2.2.2.0/24 0.0.0.0 0 32768 i

定义:

在路由器之间建立BGP邻居之后,邻居之间只能相互传递BGP路由表中的路由,在初始状态下,BGP的路由表为空,没有任何路由,要让BGp传递相应的路由,只能先将该路由导入BGP表,之后才能在BGP邻居之间传递。默认情况下,任何路由都不会自动进入BGP路由表,只能手工导入,对于路由是怎么进入BGp路由表的,这咱方式记录在路由条目中,称为origin属性,origin属性就?#20174;?#20986;了路由是如何进入BGp 路由表的。要将路由导入BGP路由表,有三种方式:

(意思是:很明显,要建立TCP连接,无论什么时候看到最后是i,i代表IGP,只有在直连链路在路由表出现了,才能有可能加入到路由表,在BGp中,network命令只是把该是路由放入到BGP表中,只要TCP可达,就可以使用network命令把该路由放入到路由表?#23567;?/em>

起源IGP,是IGP加进去的。

E: 代表EBGP

?:代表重分发,同步原则时,没有使用全互连时,要用?了。)

第一条:因为路由器上默认会有IGP路由表,通过命令show ip route可以查看到,这些IGP表中的路由可以被手工导入BGP,通过在BGP进程模式下使用命令network,即可将IGP表中的相应路由导入BGP路由表,并且需要指定掩码,只有network后面的网段和掩码在IGP路由表中能?#19994;?#26102;,才会进入BGP路由表,并不能通过这种方式将一条不存在的路由凭空导入BGP,通过命令network被导入BGP的路由的Origin属性为IGP属性。

意思是:只有直连有了才能进去;掩码宣错了也进不去;通过network导入的是IGP

第二:BGP可?#28304;?/em>EGP路由协议中获得路由信息,而EGP已经被淘汰,被BGP所取代,所以我们很难遇见EGP路由协议,从EGP路由协议获得的路由的Origin属性为EGP

意思是:很难遇到EGP,现在没有了。

第三:BGP路由表除了从IGPEGP获得路由外,还可以将路由重分布进BGP路由表,而重分布的路由的Origin属性为Incomplete(?)。

BGP路由表中到达同一目的地存在多条路径时,会通过比较路由的Origin属性来选择最优路径,它们的优先级为IGP优于EGPEGP优于Incomplete,即IGP>EGP>Incompletei>e>?)。

第三条:我到达相同的网络,即有bgpIGP ?学的来的,优先的顺序j :IGP>egp>inconplete (i>E>?)

2.AS-path(公认必遵的属性)

意思是:一是防止环路,二是比较到达目的的优劣。分为:AS-sequenceAS-set .

AS-sequence是记录序列号。AS-set记录所经过的AS号,但是无序的,也是为了以上环路的中图:

3.next-hop

AS_Path中包含了BGP路由器到达目的地所经过的所有AS的集合,AS_Path中会包含了多个AS号码,号码的多少,逻辑上?#20174;?#20102;到达目的地的远近。

AS_Path还能细分为:

AS_SEQUENCE(有序的AS号码,即AS号码在AS_Path中是按一定顺序排列的)

AS_SET(无序的AS号码,即AS号码在AS_Path中的排列是没有顺序的,通常是将多条拥有不同AS_Path的路由汇总后产生的)

BGP路由表中到达同一目的地存在多条路径时,会优选AS-Path最短的路径

意思是:

宣告路由器(发信息的路由器):是宣告本自治系统的路由器给别的路由器,即从到本身来看其它路由器。

比较到目的地的优劣;

能将多个AS中的地址汇总,要设置一个AS-set,让回来的路径知道去哪里。

3.Next-hop:(网络可达消息通告的网络)(公认必遵的属性)

官方解?#20572;?/b>

也就是BGP将数据包发往目的地的下一跳,BGP路由的下一跳,就是BGP建立邻居时的地址,也是BGP之间建立TCP连接所使用的地址。因为这个地址可以是路由器上?#25105;?#25509;口的地址,是要能通信即可(其连通性由IGP提供保证),所以BGP在将数据包发往下一跳时,通常需要采用递归查询在IGP路由表中查询该下一跳地址。默认情况下,一台BGP路由器将路由传递给eBGP邻居时,会将Next-hop属性改为自己的地址,也就是和对方建立邻居所使用的地址,而在将路由传递给iBGP邻居时,不会改变Next-hop属性。

对于将路由传递给BGP邻居时,是否改变Next-hop属性的功能,可以自由关闭或启用。

BGP路由表中由本地产生的路由而不是从BGP邻居学习来的,即本地发起路由的Next-hop属性都为0.0.0.0

如果宣告路由器和接?#31456;?#30001;器位于不同的自制系统中,那么Next-hop是宣告路由器的接口地址

如果宣告路由器和接?#31456;?#30001;器位于同一自治系统中,且Update消息的NLRI指向的是同一AS内的目的地址,那么Next-hop是宣告该路由的邻居的IP地址

如果宣告路由器和接?#31456;?#30001;器位于同一自治系统中,且Update消息的NLRI指向的是不同AS内的目的地址,那么Next-hop是外部对等体的IP地址.

意思是:

1)如果宣告路由器和与接受路由器位于不同自治系统,下一跳是宣告路由器的接口地址;

2)如宣告路由器与接受路由器位于同一自治系统,宣告的地址为本自治系统,则下一跳是他的更新源。

3)如宣告路由器是宣告的网络是和本向不是同一自治系统,则下一跳是

4.:多出口鉴别器(MED)属性(属于可选非传递属性)

官方:

MED就是BGP路由中的metric,是被设计用来影响在多个下一跳都为eBGP邻居时,如何选择最优路径,因为在多个下一跳都为iBGP时,是建议使用修改Local_Pref属性来影响选路的,而多个下一跳都为eBGP时,则使用MEDMEDBGP路由的metric,所以多条路径中拥有最小MED?#26723;?#36335;径会被优先使用。MED默?#29616;?#20026;0

Local_Pref属性只在同一个AS内部传递,而MED只能在AS之间传递,只有在将路由发给eBGP邻居时,才会传递MED,在发给iBGP时,是不会传递MED的。当一条路由被设置MED值后传递给eBGP邻居,在eBGP邻居收到后,如果将该路由继续传递给iBGP邻居,那么这个值会被还原为默?#29616;?/em>0,也就是说同一个AS内,所有发给iBGP邻居的路由的MED值都为0,这是为了让所有AS内部路由器都能够拥有相同的选路结果。

MED值也是可?#36816;?#24847;修改的。

clip_image002

在上图中,当AS 20中的路由器R4要去往目的地为AS 10的网?#38382;保?#30001;于下一跳R1R2都为eBGP邻居,所以可以通过修改MED值来影响R4对于下一跳的选择。比如将R2MED改为10,而R1MED保持默认不变,那么最终R4将选择R1去往AS 10中的目的地,因为R1MED0小于R2MED10,所以被优先使用。

默认情况下,只有当去往目的地的多个下一跳eBGP邻居都为相同AS时,才会比较MED值,如果多个eBGP邻居为不同AS时,是不会比较MED的,若是要强制在多个不同的eBGP邻居之间比较MED值,需要在BGP进程下输入命令:bgp always-compare-med

意思是:

默认把MED看作是一度量,可以修改

1)在BGP 中,流量是分方向的,从R1loop R4loop ,去的时候走的下面,回来的时候要上面了,这和IGP不一要,IGp是去走?#27169;?#22238;来也走哪。

2)“当存在到某个网段的多个入口的时候作为度量来指明最佳入口路径”MED影响的入站路由。在本地做配置将影响到外面。在本地影响对方进来的流量。

3)影响邻居;

4)默?#29616;?#20026;0.越小?#25509;畔取?/em>

5)相同的自治系统传给对方的流量不会再回来。

6)只有当外部对等体属于同一个相邻的自治系统的时候才会比较多出口鉴

别器值,这个量度只应用于配置的外部对等体之间的连接。即用于外部对等体之间即EBGP之间。

4Local_Pref本地优先(公认自选属性):(是用在IBGp之间)

Local_Pref称为本地优先级,其中的(Local)本地就是指本AS,或AS内的意思,所以可以想象得出,Local_Pref属性的传递?#27573;В?#21482;在同一个AS内有效,一条路由的Local_Pref属性只能在同一AS内部传递,出了AS后就会被还原成默?#29616;怠?/em>

Local_Pref属性在BGP邻居之间是自动传递的,只有在将路由发给iBGP时才会传递,而在发给eBGP时,是没有Local_Pref?#26723;模?#19968;条路由的Local_Pref属性在一个AS内的所有BGP路由器上是完全相同的。Local_Pref的默?#29616;?#20026;100,由此可以看出,一条路由在AS内的所有路由器上默?#29616;?#20026;100

本地优先级属性是用于区分到同一目的地的各个路由优先程度的。本地优先?#23545;?#39640;,路由优先?#23545;?#39640;。默?#29616;?#20026;100

BGP路由表中到达同一目的地存在多条路径时,会比较Local_Pref?#26723;?#22823;小,Local_Pref值大的会被选为最优路径,如110100,那么110会被选为最优路径。

Local_Pref值可以被随意修改,修改后将在整个AS内传递,所以推荐使用Local_Pref属性来控制一个AS的路由器去往目的地在其它AS的路径。如下图:

clip_image004

在上图中,AS 10中的BGP路由器R3可以同时通过R1R2去往目的地在AS 20中的R4上时,可以通过在AS 10内部修改路由的Local_Pref值来影响选路,比如在R1上将路由的Local_Pref值改为110,而路由器R2上不作任何改动,最终R3将选择从R1去往AS 20,因为R1Local_Pref值为110,而R2Local_Pref值为100(默认),所以R3选择R1为最优路径。

因为R1R2在将路由发给iBGP邻居R3?#34987;?#25658;带Local_Pref属性,所以R3同时比较iBGP邻居R1iBGP邻居R2时,才合适使用Local_Pref属性,因为下一跳都是iBGP邻居,如果下一跳不都是iBGP邻居,并不建议修改Local_Pref属性来影响选路。

意思:当到一个外部目的网段有多个路径时本地优先属性用来指明?#26376;?#24452;的优选程度,和多出口鉴别

器一样,本地优先的配置也是基于邻居的,它的默?#29616;?#26159;100,越大?#25509;?#20808;,而且不会被传送给EBGP

对等体。

(三)BGP的选路规则:

1.权重:

当到目的地有多路径时,首先看权重。

权重是cisco私有的,只对本地路由器起作用,不会被告转发给其他任何对等体。

Weight属性为Cisco私有属性,只有Cisco的路由器才能认识和理解Weight。路由的Weight属性只在路由器本地起作用,BGP将路由传递给邻居时,并不会保留WeightWeight?#26723;姆段?#20026;0~65535,默认为0,如果是BGP本地路由,则Weight值为32768。可以手工?#25105;?#20462;改路由的Weight值,可以?#26376;?#30001;进行修改,也可以对整个邻居进行修改,但也只能对本地起作用,路由的Weight值并不会传递给邻居。

BGP路由表中到达同一目的地存在多条路径时,会优选Weight值最大的路径。在Cisco路由器中,比较最优路径的第一条规则就是比较Weight值,所以只要改动Weight值,就绝能够控制Cisco路由器的BGP选路。

2.本地优先:

如果没有权重,看本地优先,越大?#25509;畔取?/em>

3.本地始发:

只要TCP可达,就是到达BGP,学到二条路由,先选择本地始发的路由。

4.最短的AS-Path

5.起源属性:i>e>?

6.MED:多出口器,默?#29616;?#20026;0,越小?#25509;畔取?/b>

7.EBGP>IBGP: EBGPIBGP优先,

8.有二条相同路径(无论是EBGP?#25925;?/em>IBGP),选择最小的IGP度量的路径

如前面8条都相等,则Maxinum-paths才生效。

9.如果路径都是外部的,建立时间最长的优?#21462;?/b>

10.选择最小的router-id

11.选择最小的集群标识符

12.选择最小的对等体的地址。

思科BGP技术详解六

clip_image002

一、过滤:

BGp过滤的工具非常多,以前学得过滤的工具,前缀列表,分发列列,?#25104;洌?#20351;用distributerrecap 都可以用。

试验:如图:

要求:只收到1.1.1.1 路由。过?#35828;?/em>1.1.2.1即可。使用resutribute-list 分发列表即可。在入接口或出接口都行,原因是路径失量协议。那就定在出的方向了。

R1:Int loop 0

Ip addr 1.1.1.1 255.255.255.0

Int loop 1

Ip addr 1.1.2.1 255.255.255.0

Int f0/0

Ip addr 12.1.1.1 255.255.255.0

No shut

R2:int loop 0

Ip addr 2.2.2.2 255.255.255.0

Int f0/0

Ip addr 12.1.1.2 255.255.255.0

配通,启BGP 100 200

Router bgp 100

Bgp router-id 1.1.1.1

Nei 12.1.1.2 remote-as 200

Network 1.1.1.0 mask 255.255.255.0

Router bgp 200

Bgp router-id 2.2.2.2

Nei 12.1.1.1 rremote-as 100

Network 2.2.2.2 mask 255.255.255.0

Show ip bgp sum 看邻居起来否?

Show ip bgp 看在R2学到的路由。

Network Next Hop Metric LocPrf Weight Path

*> 1.1.1.0/24 12.1.1.1 0 0 100 i

*> 1.1.2.0/24 12.1.1.1 0 0 100 i

*> 2.2.2.0/24 0.0.0.0 0 32768 i

收到了三R1上的二条路由。

Access-list 10 permit 1.1.1.0 0.0.0.255

bgp去调用:

Router bgp 100

Nei 12.1.1.2 distribute-list 10 out (必须指定邻居,应用在out 方向)

R2上:show ip route 没有生效,要想看结果,必须clear ip bgp * 才?#23567;?#21407;因是:在现实生活中,有可能配置错误,如配置完意即生效的,会有很麻?#24120;?#36825;样有时间检查错误。引出:

二、BGp邻居及BGP表的内容

主路由表就是路由表:

RJB 表示路由信息数据库,也代表路由表。

BGP表,>表示最优路径,

又有三第表,bgp表使用分别使用不同的路由表接收和发送的网络,通告。

分别是:1.ADJ-RIB-IN:存放的BGP发言人

  2.ADJ-RIB-out :

3.loc-RIB:

1.ADJ-RIB-IN (收过来的):存放从其他BGP对等体那里收到得尚未处理的数据处理的BGp信息,BGP路由处理进程根据这些表中存放的BGP属性决定到某个网段的最佳路径。。

如果本地路由器能够验证下一跳是可以通过本地路由表中的?#31243;?#20869;部网关协议、静态路由或是直连网段到达的,BGP里进程选择路由并放入主IP路由表。意思是,首先验证我的 下一跳是否可,如可达,则放入路由表。

2 ADJ-RIB-out(发出来的):存放应用完的,发给对方。

 工作过程中 In 形成本表(Loc-RIB) 结束的

只有一个本地表

Loc-RIB表的内容:i:起源。首先验证是否下一跳可达,放入到路由表。

三、清除分为:硬清除和软清除

作用:邻居关系重置,当属性配置完成时,不?#24039;?#25928;的,必须重置下邻居才能生效。

硬清:是重置TCP连接,是clear ip bgp *是清空所有邻居,也可指定某个邻居clear ip bgp *12.1.1.1。是从最底层断开重新连接,时间稍长些,现实生活中不用。

软清:现实生活中用的比较多的有新命令和老命令之分:

新命令:清除就是把in表和out表重新应用一下,?#35328;?#20808;in\out表应用上策略就是in表,再去给对方要一个IN表。即重新请求一个in表,对方发一个out,我再应用于一下,所以做策略就生效了。

Clear ip bgp *in (给别人要一个)或clear ip bgp *out (给别人发一个) 在做时,要对每个接口都清一下。

show ip bgp nei 显示:下面的包:

Opens: 2 2

Notifications: 0 0

Updates: 2 2

Keepalives: 194 194

Route Refresh: 0 0(路由刷新报文)

路由刷新报文作用:

在路由器上clear ip bgp *in时,会给对方发一个路由刷新报文,当对收到时,把out发出来,我会收到一in了。

老式命令:

1.Clear ip bgp * soft in :直接输入这条命令不会生效,是在BGP进程中,向邻居指定命令:

nei 12.1.1.1 soft-reconfiguration in bound.只有跟进上这条命令才能生效。

2.clear ip bgp * soft out 直接输入就可以了。

四、汇总:

注:如果把前面的access-list 10 删去了,相当于把 neighbor 12.1.1.2 distribute-list 10 out 命令中的 10 删去了,也就是变成0了(0代表所有网络)。在R2上应该都收不到R1上的两个loop 了。

R1 上再启一loop 2 1.1.3.1/24

R2show ip route

1.0.0.0/24 is subnetted, 3 subnets

B 1.1.1.0 [20/0] via 12.1.1.1, 03:14:43

B 1.1.2.0 [20/0] via 12.1.1.1, 00:00:35

B 1.1.3.0 [20/0] via 12.1.1.1, 00:00:35

2.0.0.0/24 is subnetted, 1 subnets

C 2.2.2.0 is directly connected, Loopback0

12.0.0.0/24 is subnetted, 1 subnets

C 12.1.1.0 is directly connected, FastEthernet0/0

Show ip bgp

Network Next Hop Metric LocPrf Weight Path

*> 1.1.1.0/24 12.1.1.1 0 0 100 i

*> 1.1.2.0/24 12.1.1.1 0 0 100 i

*> 1.1.3.0/24 12.1.1.1 0 0 100 i

*> 2.2.2.0/24 0.0.0.0 0 32768 i

R1上做汇总:

R1:#router bgp 100

Aggregate-address 1.1.0.0 255.255.252.0

Show ip bgp

Network Next Hop Metric LocPrf Weight Path

*> 1.1.0.0/22 12.1.1.1 0 0 100 i

*> 1.1.1.0/24 12.1.1.1 0 0 100 i

*> 1.1.2.0/24 12.1.1.1 0 0 100 i

*> 1.1.3.0/24 12.1.1.1 0 0 100 i

*> 2.2.2.0/24 0.0.0.0 0 32768 i

学到了一条汇总的路由,下面还有三条明细路由,清一下,clear ip bgp * in,还?#23567;?#21407;因:是在BGp汇总时,不仅收到一条汇总路由,?#25925;?#26126;细路由,怎么办? 在汇总的命令后面加一个?#38382;?/em>;summary-only

Router bgp 100

Aggregate-address 1.1.0.0 255.255.252 summary-only

R2:show ip bgp 只剩下一条汇总的和直连的路由了。

*> 1.1.0.0/22 12.1.1.1 0 0 100 i

*> 2.2.2.0/24 0.0.0.0 0 32768 i

思科BGP技术详解五

十四、指定更新源

目的:(做一个路由备份,使在备份链?#20998;?#26356;稳定,一般在IGP中做,也可在EBGP中做):

如图:

clip_image002

R0R1有两条线相连,怎样指邻居?nei 指邻居指什么?现实中不会指两个的。

在运行IBGP时,不会指定物理接口为更新源,一般指loopback接口为更新源,loop 口最稳定。

如果更新源改变,那么在上面的试验中的邻居也要改变,互相指的邻居是更新源。如果指更新,那么IBGP内部IGP协议必须可达,所以内部必须跑IGP协议。

如前面的大图:只用R2R3R4

R2Int loop 0

Ip addr 2.2.2.2 255.255.255.0

Ip ospf 100 area 0

Int f0/1

Ospf 100 area 0

Router bgp 200

Bgp router-id 2.2.2.2

Nei 3.3.3.3 remote-as 200 (建立完邻居以后才能定后面的,要不?#25442;?#25552;示:

Nei 3.3.3.3 next-hop -self

Nei 3.3.3.3 update-source loop 0 指定更新源为loop 0

R3: int loop 0

Ip addr 3.3.3.3 255.255.255.0

Ip ospf 100 area 0

Router bgp 200

Bgp router-id 3.3.3.3

Nei 2.2.2.2 remote-as 200

Nei 2.2.2.2 updata-source loop 0

Nei 4.4.4.4 remote-as 200

Nei 4.4.4.4 updata-source loop 0

:IBGP 内部r中间的路由器,不指定自己为下一跳

R4int loop 0

Ip addr 4.4.4.4 255.255.255.0

Ip ospf 100 area 0

Router bgp 200

Nei 2.2.2.2 remote-as 200

Nei 2.2..2.2 next-hop-self

Nei 2.2.2.2 updata-source loop 0

Nei 3.3.3.3 remoe-as 200

Nei 3.3.3.3 next-hopp-self

Nei 3.3.3.3 updata-source loop 0

配置的过程中注意这种提示:表示3.3.3.3邻居已经建立了。如果不显示,表明没有建立。

*Mar 1 00:15:37.851: %BGP-5-ADJCHANGE: neighbor 3.3.3.3 Up

R2#show ip bgp sum 学到路由了。

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

3.3.3.3 4 200 11 11 1 0 0 00:07:07 0

4.4.4.4 4 200 5 5 1 0 0 00:01:46 0

R4#ping 2.2.2.2 so 4.4.4.4

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:

Packet sent with a source address of 4.4.4.4

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 8/39/76 ms

发现一个问题?#21495;?#32622;非常麻烦。

有一个解决规模的路由的一个办法:叫对等体组(peer-group,可以减少配置量。R2 上用一个名字代替他们对R3R4的两个配置,把3.3.3.3 4.4.4.4加入这个组内。

R2 上,把router bgp 200 删了。

R2:router bgp 200

Nei ccna peer-group

Nei ccna remote-as 200

Nei ccna next-hop-self

Nei ccna update-source loopback 0

Nei 3.3.3.3 peer-group ccna

Nei 4.4.4.4 peer-group ccna

R3: router bgp 200

Nei ccna peer-group

Nei ccna remote-as 200

Nei ccna update-source loopback 0

Nei 2.2.2.2 peer-group ccna

Nei 4.4.4.4 peer-group ccna

R4: router bgp 200

Nei ccna peer-group

Nei ccna remote-as 200

Nei ccna next-hop-self

Nei ccna update-source loopback 0

Nei 2.2.2.2 peer-group ccna

Nei 3.3.3.3 peer-group ccna

只是配置不同了,结果是和原先的一样。

有一个问题:

R2R4上的loop 0口已经在OSPF中了,如果把它们同时加入到BGP会是什么样子?

R2#router bgp 200

Net 2.2.2.0 mask 255.255.255.0

R3#:router 200

Net 3.3.3.3.0 mask 255.255.255.0

R4# router 200

ospfBGP各学到一条路由,但显示掩码不一样,是因为在接口下,没有配置ip opsf network point-to-point

O 2.2.2.2/32 [110/21] via 34.1.1.1, 00:18:15, FastEthernet0/0

B 2.2.2.0/24 [200/0] via 2.2.2.2, 00:02:25

R4:Show ip bgp 2.2.2.0怎么没有学过来呢?(前面没有r).因为在接口下没定ip ops net p-t-p

Network Next Hop Metric LocPrf Weight Path

*> 2.2.2.0/24 0.0.0.0 0 32768 i

r>i3.3.3.0/24 3.3.3.3 0 100 0 i

*>i4.4.4.0/24 4.4.4.4 0 100 0 i

R4 :Show ip bgp 学到了。

Network Next Hop Metric LocPrf Weight Path

r>i2.2.2.0/24 2.2.2.2 0 100 0 i

r>i3.3.3.0/24 3.3.3.3 0 100 0 i

*> 4.4.4.0/24 0.0.0.0 0 32768 i

前面的r代表:r RIB-failure 放入路由失败

通过BGP学到3.3.3.0.通过OSPF学到一个3.3.3.0 前面的>表示是最优路由,放入路由到时失败了

Show ip route 3.3.3.0的路由是通过OSPF学来的。

3.0.0.0/24 is subnetted, 1 subnets

O 3.3.3.0 [110/11] via 34.1.1.1, 00:29:09, FastEthernet0/0

因为opsf 110.BGP 200,用IGP?#24615;?/em>BGP,大于任何的IGP的管理距离,所以放不进路由表。

2)试验是EBGP 多跳

———–EBGP中做“指定更新源”指邻居:

R1R2上做,R1R2中间有一个?#25442;换?/em>

指定更新源,必须IGP到达。可以起OSPF,也可用静态路由(如用OSPF,起不到BGP作用了,通了)

配置静态路由吧:

R1ip route 2.2.2..2 255.255.255.255 12.1.1.2

Ip route 1.1.1.1 255.255.255.255.12.1.1.1

检验一能ping 通吗:

Ping 2.2.2.2 so1.1.1.1

R1#ping 2.2.2.2 source 1.1.1.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:

Packet sent with a source address of 1.1.1.1

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 4/25/60 ms

R1router bgp 100

neig 2.2.2.2 remote-as 200

Neig 2.2.2.2. update-source loop 0

R2 router bgp 200

neig 1.1.1.1 remote-as 100

Neig 1.1.1.1 update-source loop 0

没有建立起邻居关系,原因是:在EBGp之间,TTL的值为1 1.1.1.1 2.2.2.2 2跳,过不去,需要修改TTL。以上试验是EBGP 多跳。

R1:eig 2.2.2.2 ebgp-nultilhop

R1router bgp 100

Nei 2.2.2.2 ebgp-multihot 10(如直接回车,代表默认255跳。也要以后面跟个数字)。

R2 R1R2TTl值不相同也可以。只要能到达对方就?#23567;?/em>

另外:

Neigh 12.1.1.1 route-map

Neigh 12.1.1.1 prefix

说明过滤很灵活,可以过滤AS号、AS号中有2的过?#35828;?#31561;等。

十五、关系建立邻居的条件,如建立不起来,则一直处在active状态

1.版本相同

2. 错误的AS

3. 邻居配置错误。

———————————————————————————————————————————————

思科BGP技术详解四

十二、BGP?#29616;ぃ?/b>

R1#router bgp 100

Neighbor 12.1.1.2 password 123

R2#router bgp 200

Neighbor 12.1.1.1 password 123

十三、水平分割:

———–全互联

把上述路由器全部配置完成。R4的邻居关系建立了:R4能正常收到1.1.1.1路由吗?

R4show ip bgp

Network Next Hop Metric LocPrf Weight Path

*>i3.3.3.0/24 34.1.1.1 0 100 0 i

*> 5.5.5.0/24 45.1.1.2 0 0 300 i

因为:在BGP内部有一个IBGP的水平分割原则。

规则是:IBGP邻居学到的路由,不会再学到另一个IBGP。是为了防止IBGP内部之间产生环路。

R3是从R2IBGP学来的路由,不会向R4 发送。所以R4收不到1.1.1.1的路由了。

为什么公产生这个原则?

R3#show ip bgp

Network Next Hop Metric LocPrf Weight Path

*>i1.1.1.0/24 23.1.1.1 0 100 0 100 i

*> 3.3.3.0/24 0.0.0.0 0 32768 i

* i5.5.5.0/24 45.1.1.2 0 100 0 300 i

收到1.1.1.1这个路由的AS号是100,在一个AS中收到路由都是100EBGP是用记录路径,一但到IBGP中?#29615;?#38450;止环路了。原因就是为防止IBGP之间的环路。

解决方法:用逻辑全互连的方法。

只要TCP可达(只要能拼通),就能建立邻居关系。

R4R3学不到,可以直接从R2学习,如何保证R2R4TCP可达,如何可达?写路由。在AS200内运行IGP协议即可实现。只要TCP到达便可。在AS200内运行OSPF100ospfloopback接口要配置:ip osfp network point-t0-point命令,用来访止:

详细配置

R2 R3 R4上启ospf 能互相ping 通即可。

R2:int f0/1 Ip osfp 100 area 0

R3:int f0/1 Ip ospf 100 area 0

Int f0/0 Ip ospf 100 area 0

R4:int f0/0 ip ospf 100 area 0

Ping 34.1.1.2

可以了。

R2R4建立邻居关系:

R2router bgp 200

Nei 34.1.1.2 remote-as 200

R4: router bgp 200

Nei 23.1.1.1 remote-as 200

R4show ip bgp 有了1.1.1.1的路由了。

Network Next Hop Metric LocPrf Weight Path

* i1.1.1.0/24 12.1.1.1 0 100 0 100 i

r>i3.3.3.0/24 34.1.1.1 0 100 0 i

*> 5.5.5.0/24 45.1.1.2 0 0 300 i

现在有路由了,R4能拼通1.1.1.1 吗?不行,还有下一跳问题:

Show ip route 没有11.1.1路由。

34.0.0.0/24 is subnetted, 1 subnets

C 34.1.1.0 is directly connected, FastEthernet0/0

3.0.0.0/24 is subnetted, 1 subnets

O 3.3.3.0 [110/11] via 34.1.1.1, 00:08:39, FastEthernet0/0

5.0.0.0/24 is subnetted, 1 subnets

B 5.5.5.0 [20/0] via 45.1.1.2, 01:16:18

23.0.0.0/24 is subnetted, 1 subnets

O 23.1.1.0 [110/20] via 34.1.1.1, 00:08:39, FastEthernet0/0

45.0.0.0/24 is subnetted, 1 subnets

C 45.1.1.0 is directly connected, FastEthernet0/1

R2router bgp 200

Nei 34.1.1.12 next-hop-self

注:在AS边界路由器上都是要回next-hop-self 命令,即指下一跳。

R4:Show ip route 有了一条1.1.1.0路由。

34.0.0.0/24 is subnetted, 1 subnets

C 34.1.1.0 is directly connected, FastEthernet0/0

1.0.0.0/24 is subnetted, 1 subnets

B 1.1.1.0 [200/0] via 23.1.1.1, 00:00:14

3.0.0.0/24 is subnetted, 1 subnets

O 3.3.3.0 [110/11] via 34.1.1.1, 00:10:20, FastEthernet0/0

5.0.0.0/24 is subnetted, 1 subnets

B 5.5.5.0 [20/0] via 45.1.1.2, 01:17:58

23.0.0.0/24 is subnetted, 1 subnets

O 23.1.1.0 [110/20] via 34.1.1.1, 00:10:20, FastEthernet0/0

45.0.0.0/24 is subnetted, 1 subnets

C 45.1.1.0 is directly connected, FastEthernet0/1

拼一下,因为没有网络加入到IBGP,所不拼不通。在R4上启一个loop 0 4.4.4.4/25 宣到BGP?#23567;?/em>

IBGP内部,在AS内部运行IGP时,必须建立一个全互联的IBGP关系(也就是互相指邻居)。保证路由

能正常的学习到。

R4是如何到达R1的?R4的下一跳是R2,是通过OSPF,到R2的,是通过IGP?#24615;?#36807;去。

方法二:(老的方法):

—–同步原则(以前有个同步原则:在老的路由器上默认是开启的,但是在新的路由器上默认是关闭的)

IBGP学到的路由,在通告给BGP时对等体时,必须通过IGBP邻居知晓该路由。

也就是:在我的IBGP中有你的一个外部路由才行,从R2学来的路由,我必须通过IGP协议才能给R4,也就是在R2上要做重分布。在老的路由上是默认开启的。现在是默认关闭的 no synchronization。直接通过全互联即可。

新的问题:

R5开起来,配置router bgp 300,邻居关系起来了。启个loop 0 5.5.5.5/24

R1 能学到5.5.5.5吗?

R1show ip bgp 没?#23567;?/em>

Network Next Hop Metric LocPrf Weight Path

*> 1.1.1.0/24 0.0.0.0 0 32768 i

*> 3.3.3.0/24 12.1.1.2 0 200 i

*> 4.4.4.0/24 12.1.1.2 0 200 i

R3上查看:有吗? ?#23567;?/em>

Network Next Hop Metric LocPrf Weight Path

*>i1.1.1.0/24 23.1.1.1 0 100 0 100 i

*> 3.3.3.0/24 0.0.0.0 0 32768 i

*>i4.4.4.0/24 34.1.1.2 0 100 0 i

* i5.5.5.0/24 45.1.1.2 0 100 0 300 i

学不到原?#25925;巧?#38754;方框中的下一跳的问题,R4R5是通过下一跳45.1.1.2学来的,还保持着原样。在R4修改即可:

R4:router bgp 200

Nei34.1.1.1 next-hop-self (指向R3邻居)

Nei 23.1.1.1 next-hop-self (指向R2邻居,要求全互连)

AS 边界路由器上都要定上这条命令,指向所有的邻居。

R1 :Show ip bgp

新的问题:

R3只跑OSPF有用,BGp没有用,能不能把BGP协议删去呀?

不能:R1发数据包到5.5.5.5 因为R2知道5.5.5.5的下一跳是:34.1.1.2,到达34.1.1.2ospf过去的,是通过23.1.1.2到达,数据包到达R3,目的是5.5.5.5R3不知道哪是5.5.5.5。作用是:R3是通过bgp知道的R3通过R4到达。所以不删。

十六、详细论述1.1.1.15.5.5.5的过程:

1.1.1.1的目的地址是5.5.5.5,从R1路由表中到达5.5.5.5的下一跳是12.1.1.2,将数据包传到12.1.1.2,也就是R2.数据到达R2后查找路由表,看到5.5.5.5是通过34.1.1.2学来的。再把数据包发向34.1.1.2,因不直连的,要用IGP路由来?#24615;兀?#35201;查找如何到达34.1.1.2,查到OSPF.ospf显示,到达34.1.1.2是通过23.1.1.2下一跳 到达,所以数据包R3.R3看到这个数据包是到达R5的,是通过EBGP学来是通过IGP?#24615;?#30340;。数据包到达R4R4查路由表,要到达5.5.5.5,下一跳是45.1.1.2,所以到达5.5.5.5

以上配置是在讨论理论上的东东。在现实中不用这种方法。

思科BGP技术详解三

clip_image002

七、bdp的三张表:

1)邻居表:用show ip bgp nei 或:show ip bgp summary (常用)

2BGP:查看用 show ip bgp 显示有三个条目?#32791;?#20010;条目是学来的?2.03.0是常来的。

Network Next Hop Metric LocPrf Weight Path

*> 1.1.1.0/24 0.0.0.0 0 32768 i

*> 2.2.2.0/24 12.1.1.2 0 0 200 i

*> 3.3.3.0/24 12.1.1.2 0 200 300 i

I:本地的为空,小i移到前面了,代表IGP

*:表示是可用的路由。

>:是取优的路径(始终是会选择一条最优路径)

0.0.0.0:指本地BGP网络

200 300 i:从300200过来的,AS离我最近的放在最左边。

3)路由表: ”>”指向的那一条放进路由表?#23567;?/b>

如图:

Best 最优的路径,始终会选一条最优的路径,不会形成负载,但可以用手工形成。

R2上有两个邻居,把BGP的邻居donw,但是直连接电路?#25925;?#36890;的。方法:

Router bgp 200

Nei 12.1.1.1 shut

R2#Show ip bgp sum

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

12.1.1.1 4 100 25 33 0 0 0 00:00:43 Idle (Admin)(手动关闭 )

23.1.1.2 4 300 91 100 11 0 0 01:26:33 1

直连的能拼通:R2#ping 12.1.1.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 8/40/64 ms

R2#show ip bgp nei显示:两个邻居的状态:一个是:shutdown 一个时:Established状态。

BGP neighbor is 12.1.1.1, remote AS 100, external link

Administratively shut down

BGP neighbor is 23.1.1.2, remote AS 300, external link

BGP version 4, remote router ID 3.3.3.3

BGP state = Established, up for 01:28:33

八、消息类型:

BGP四种消息类型四个包:

Open

Dekpalive

Update

natification

clip_image001clip_image002用试验说明:如图:

clip_image004

计算机要桥接本地。启bgp 100 200 R4 R5先不要配置。R1AS 100 R2R3AS200,在?#25442;?#19978;做端口?#25104;洹?/em>

SW1#monitor session 1 source int f0/1 监听会话1,源接口?#25442;换?#26426;f0/1

Monitor session 1 destination int f0/3 监听会话,目的接口是:f0/3.

打开软件,wireshark,点击开始。到R1上打开f0/0接口。过一会后,再no shutdown.wiresshrk软件的过滤栏内输入bgp bgp包过滤出来。 BGp封装于TCP之上,端口号179.

九、包结构:

第一个包:open消息 作用:建立邻居关系。

包含:1.type 1 类型为1

2.版本为4,版本不相等不能建立邻居。

3.本地的ASmy AS

4.holdtime 180s 。可以修改,最小能改成3.keepalivetime60s.是由holdtiom 决定,是3倍的关系)。Holdtiom时间不相等也能建立邻居,建立邻居时则依据较小的时间。

5.BGPID:当OSPFBGp共存时,要保证Router ID一致。

6.用的是TCP协议,要完成三次握手。抓包试验:

试验: (TCP 的三次握手)

Internet protocol ,src12.1.1.1 (12.1.1.2),dst 12.1.1.2(12.1.1.1)

第二个包:keepalive 保活。(是一个空包)

包含:类型为4.

第三个包:updata:更新消息:

包含1.类型:2

2.path attribute:路径属性

3.网络可达性消息(NLRI-network layer reachability information :包含前缀和网络。

第四个包:notificationbgp 发生错误时,会发送natification报文

包含:1.type 类型:notification message 3

2.Error code 错误代码: open message error(open消息错误)

Error subcode错误子代码 : bad peer AS。对端的AS错误(不匹配的AS

十、BGP的邻接状态集:

1.idle:相当于down状态。什么也不干。 idle[?aidl].懒散的;?#38556;?#30340;

2.connet建立:建立TCP的连接。

3.active

4.opensent

5.openconfirm

6.eestablished

详细说明:

第一:idle 状态:初始化TCP的连接。

第二:connet状态:等待TCP的连接(是个?#24067;洌?#22914;果TCP连接成功,则发opensent消息,进入opensent状态。如不成功,则进入Active状态。

第三、Active状态:

第四、opensent:等待对方的Opensent 消息。收到消息,如匹配,则向对方发送keepalive消息,进入openconfirm状态。如不匹配,发送notification消息,回到idle状态,进行下一次的重传。

第五、openconfirm:等待对方发送keepalive消息。如收到keepalive消息,则进入下一状态;如收到notification消息,则进入idle状态。

第六、eestablished:说明邻居关系已经建立。可以发送updata消息,路由器可以更新了。

clip_image005clip_image006clip_image007十一、试验:

如上图?#21495;?#36890;,

BGP也有router-id 选举规则,和原先一样,也可手动指定:bgp router-id 2.2.2.2

各接口配置地址,每个路由器上都有一个loop 0,将网络加入到BGp 中,

R1#Router bgp 100

Network 1.1.1.0 mask 255.255.255.0

R3#router bgp 200

Network 3.3.3.0 mask 255.255.255.0

R3# R3#show ip bgp nei

R3#show ip bgp nei

BGP neighbor is 23.1.1.1, remote AS 200, internal link 内部bgp即:IBGP

BGP version 4, remote router ID 2.2.2.2

BGP state = Established, up for 00:10:25,

Sent Rcvd

Opens: 1 1 发一个收一个OPENS包。

Notifications: 0 0

Updates: 1 1

Keepalives: 9 9

Route Refresh: 0 0

Total: 11 11

还包含

远端的Router-id

internal link :内部即IBGP

BGP state: 如显示established:代表邻居关系已经建立。

Keepalive :60s

R3#show ip bgp

学到了1.1.1.0/24的路由。是通过IBGP学过来路由。

Network Next Hop Metric LocPrf Weight Path

* i1.1.1.0/24 12.1.1.1 0 100 0 100 i

*> 3.3.3.0/24 0.0.0.0 0 32768 i

* i5.5.5.0/24 45.1.1.2 0 100 0 300 i

0.0.0.0 :是直连的链路,默认下一跳是0.0.0.0

I:表示是通过IGBP常来的路由。

R3#ping 12.1.1.1 不通,直连在任何情况下,路由下一跳应该到达。看一下路由表:

R3#show ip route ,显示没有1.1.1.1B路由。没有的原因是下一跳不可达。

34.0.0.0/24 is subnetted, 1 subnets

C 34.1.1.0 is directly connected, FastEthernet0/0

3.0.0.0/24 is subnetted, 1 subnets

C 3.3.3.0 is directly connected, Loopback0

23.0.0.0/24 is subnetted, 1 subnets

C 23.1.1.0 is directly connected, FastEthernet0/1

发现了一个问题:1.1.1.0R2的下一跳是12.1.1.1。不对了。应是:12.1.1.2

R1:#上用ping 3.3.3.3 source 1.1.1.1 不通。

原因:是的。到过1.1.1.0网络的下一跳是12.1.1.1了,应该是23.1.1.。引出了:

BGP网络中的“下一跳规则?#20445;?/em>

EBGP邻居常来的路由,在向IBGP发送时,下一跳地址要改变(默认是不改变的)。

R2EBGpR1上学到1.1.1.1路由,下一跳是12.1.1.1,根据上述规则,R2在发给R3时,下一跳不变也是12.1.1.1,如果R3能正常收到路由,应该改成到R3R1的下一跳:。23.1.1.1

R2 # router bgp 200

R2#nei 23.1.1.2 next-hop-self 23.1.1.1 是指的我的邻居。

意思是:我给我的邻居23.1.1.2发?#21520;?#30001;时下一跳变成我自己。

R3#show ip bgp

显示:有了R31.1.1.1的下一跳地址:23.1.1.1

Network Next Hop Metric LocPrf Weight Path

*>i1.1.1.0/24 23.1.1.1 0 100 0 100 i

*> 3.3.3.0/24 0.0.0.0 0 32768 i

* i5.5.5.0/24 45.1.1.2 0 100 0 300 i

水平分割:

没有收到。原因是IBGP有一个水平分割原则:

R3#Ping 1.1.1.1 source 3.3.3.3

30选5玩法