One.IP路由基础
1.1路由器
-
路由器:一个接口为一个广播域IP选路和路由器工作原理
路由器可以区分广播域和冲突域
工作在网络层,可以根据目的IP进行数据的转发或者接收
路由器在转发数据的时候,可以选择一条路由器本身认为最优的路径路由器是根据路由表进行路径选择
路由表简单理解就是指导路由器进行数据转发的地图
路由器收到一个数据,解封装到网络层,发现目的IP不是自己,则进行数据转发…转发数据的时候,路由器会查询路由表,根据路由表选择一条最优的路径,并进行MAC重新封装再转发…
–如果路由表没有数据的目的IP相关的信息
–则路由器将该数据丢弃…
1.2路由表
-
路由表组成:
目的地址:表示能够前往的目的信息 目的IP+掩码
NextHop(下一跳):指明IP数据包经过的下一台路由器的接口IP地址(通过下一跳的IP获取相应的MAC)告诉我们下一跳的MAC地址是多少
出接口(Interface):指明该IP数据包应该从哪个接口发送出去 -
路由表的形成:
1、通过配置IP可以形成一条路由信息(直连) 比如IP地址为192.168.1.10/24,则路由表中为192.168.1.0/24
2、手动配置(静态路由):手动指明目的是什么,下一跳,出接口,以及优先级
3、动态:通过路由协议进行路由信息的获取 -
路由选择
同一个目的地址192.168.1.0-
如果是不同来源
优先级:用来判断不同的路由来源,哪个比较优
直连优先级为0 静态优先级为60 动态不同协议不同优先级(RIP:100,OSPF:10)
优先级的数值越低越优先 -
如果同一个来源,有不同路径
cost(开销值):用来判断同一个来源,不同的路径优先级
比如:RIP通过跳数(hop),经过几台路由器
cost的数值越低越优先 -
如果同一个目的地址,同来源,同COST
则进行负载分担(负载均衡)
直连的cost值一般为0
假设数据报文中目的IP是192.168.1.1
路由器的路由表有如下几条
192.168.1.1/32 RIP 100
192.168.1.0/24 OSPF 10
192.168.0.0/16 静态 60
最长掩码匹配原则(越精确越优先) 有多个匹配目的网络的路由条目,则路由器会选择掩码最长的条目.
192.168.1.0000 0001
192.168.1.0000 000
192.168.1.0000 00路由器在匹配数据报文的目的IP的时候
1、最长掩码匹配
2、判断最优的来源
3、判断最优的cost
4、负载均衡 -
1.3下一跳和出接口
-
需要知道下一跳(获取对方的MAC地址)和出接口(可有可无,路由器可以自行判断)才能将数据转发出去
-
网络中存在两种链路
- 以太网(可以同时连接多个主机或网络互联设备)
在以太网中配置静态路由,下一跳必须填写,出接口可写可不写 - 串行链路(同一条链路只能连接A和B):
串行的底层协议不需要MAC地址 - 下一跳和出接口任选一个
- 以太网(可以同时连接多个主机或网络互联设备)
1.4 三种特殊路由
-
goktech
-
路由器查询的时候是进行的全表查询
-
负载分担:
逐流分载(针对的是不同的端)
逐包分载(实现线路利用的最大化)
–目的地址,掩码,优先级,开销值均一致 多条链路同时使用 -
浮动路由(路由备份):多条链路中,部分链路使用,部分链路进行备份
–原理:修改静态路由的优先级
比如目的地址192.168.1.0/24
1、下一跳:1.1.1.1 优先级为60
2、下一跳:2.2.2.2 优先级为70
这个时候,路由器只会将最优的路径显示到路由表中,另外一条次优路由会被隐藏在路由器的数据库中.
正常情况下,最优的路由会显示在路由表中并使用.如果最优的路由出现路径故障,次优的会显示到路由表中并使用,故障的路由则被隐藏到数据库中. -
缺省路由(默认路由)
目的地址和掩码全为0
当路由表中没有任何一条路由能够进行数据匹配,则使用默认路由进行数据转发
默认路由一般用于:连接Internet的出口 也可以用于一个最边界的设备连接其他网络
优点:减少配置量
缺点:不安全
缺省路由优先级是60(静态路由),但是匹配的优先级为最低
-
ONE OVER
Two.静态路由
2.1静态路由的配置
由管理员手动指定的 目的地址 掩码 优先级 下一跳 出接口的路由信息
指令 ip route-static 192.168.1.0 255.255.255.0(24) 10.1.1.1 s2/0/0
表示开始配置静态路由 表示目的地址+掩码 下一跳 出接口
ip route-static 目的地址 掩码 下一跳 出接口
2.2静态路由的特点:
适用于小型网络环境
配置量较大
不能随着网络的变更自行更新
TWO OVER
Three.距离矢量路由协议RIP
距离矢量路径协议:RIP
协议优先级–管理距离
cost–度量值
3.1RIP的介绍
-
动态路由协议:RIP
工作在应用层,使用了UDP协议,并且端口号是520
RIP协议优先级:100
RIP使用的cost值(开销值)是跳数(hop)
RIP版本分为v1版本和v2版本. -
距离矢量路由协议:通过动态学习,能够知道目的地址和掩码的信息…同时知道去往该目的地址方向是什么,距离是多远…但是中间会经过哪些谁,经过哪些路径,并不能得知…
-
RIP特点:1、配置简单 2、适用于小型网络 3、配置量小,路由信息可以随着网络的变动自动更新 4、易于维护
-
RIP是一种比较简单的IGP协议(内部网关路由协议)
3.2RIP的工作机制
-
goktech
1、路由器第一次运行RIP的时候,会发送一个RIP的request:为了请求更新(请求对方路由器将路由信息发送给自己) 第一次才会发送
2、收到请求的路由器会将自己的路由信息(加入了RIP协议的)回应给请求方 response
3、第一次的请求–响应交换完成之后,路由器会周期性发送response响应 周期时间为30s -
关于跳数:
对于一条路由信息来说,起始路由器上该路由条数为0.该起始路由器向外发送response响应的时候,会将跳数hop+1,后续每一台路由器向外发送response的时候,hop+1
跳数最大上限为15跳,0-15跳可用,16跳表示不可达. -
RIP发送消息的时候
- 如果是RIPv1版本,则发送广播消息,目的地址为255.255.255.255
- 如果是RIPv2版本,则发送组播或者广播消息,目的地址为244.0.0.9或者255.255.255.255
- 224.0.0.9:专门用来作为RIP的路由协议目的地址,只有开启了RIP的路由器才能接受并处理
-
RIP三种时间的介绍
三种时间:更新周期(30s) 老化时间(180s) 垃圾收集时间(120s)- 更新周期:30s
- 老化时间:180s
路由器会认为该路由可能不可达,跳数设置为16
此时该路由条目并没有被删除,继续保持在路由表中 - 垃圾收集时间:120s
在到达老化时间(180s)之后,记120s,之后将该路由删除… - RIP路由器收到一次更新,就将路由条目从0开始计时
3.3RIP两种版本的比较
RIPv1 vs RIPv2
-
认证只是为了识别RIP报文是否合法,而不是进行数据加密
认证分为:
1、明文认证:数据传输过程中,密码明文显示
2、MD5认证 密文认证 -
goktech
RIPv1是有类路由协议,不支持VLSM和CIDR
RIPv1版本发送response报文的时候,不会带掩码信息.
RIPv1是通过IP前缀判断掩码信息
RIPv2是无类路由协议,支持VLSM和CIDR
RIPv2发送response的时候,会携带掩码信息… -
RIPv1报文结构:
command:表示报文是请求还是响应,1表示请求,2表示响应
version:版本
address family identifier:AFI,表示支持的协议类型 比如支持IPv4
IP address:表示目的地址所在的网段(通过network宣告的网段)
metric:cost值,度量值,也就是跳数 -
RIPv2报文结构:
command:表示报文是请求还是响应,1表示请求,2表示响应
version:版本
address family identifier:AFI,表示支持的协议类型 比如支持IPv4
route tag:用来标识路由,比如非RIP路由进入RIP区域,可以进行标识
IP address:表示目的地址所在的网段(通过network宣告的网段)
subnet mask:子网掩码
next-hop:表示下一跳 正常情况下,RIP的路由更新之后,路由器会认为下一跳就是发送更新的那个人
metric:cost值,度量值,也就是跳数 -
认证
AFI:0xffff(表示该项剩下的部分为认证信息)
MD5雪崩效应(完整性校验) 哈希算法 MD5不能进行逆推 (部分可以推算出来,撞库)
R1对密码进行MD5 R2也对自己的密码进行MD5算出128bit
Authentication:认证方式 明文密文
3.4RIP的更新机制
- 一是定期更新,二是触发更新。“定期更新”是根据设置的更新计时器定期发送RIP路由通告。该通告报文中携带了除“水平分割”机制抑制的RIP路由之外本地路由器中的所有RIP路由信息。而“触发更新”则是RIP路由器仅在有路由表项发生变化时发送的RIP路由通告,仅携带本地路由表中有变化的路由信息
- RIP路由的更新规则如下:
- 更新的某路由表项在路由表中没有,则直接在路由表中添加该路由表项;
- 路由表中已有相同目的网络的路由表项,且来源端口相同,那么无条件根据最新的路由信息更新其路由表;
- 路由表中已有相同目的网络的路由表项,但来源端口不同,则要比较它们的度量值,将度量值较小的一个作为自己的路由表项;
- 路由表中已有相同目的网络的路由表项,且度量值相等,保留原来的路由表项。
3.5RIP环路:
-
RIP环路产生原因:回环口172-R1------R2
正常情况下,R1会将172作为response响应发送给R2
R2学习到172的条目,下一跳是R1,跳数为1
同时到周期更新的时候,R1 R2会交互172,但是R1因为自己的172是直连,所以不学习,R2会刷新学习R1的172出现故障的时候,刚好R2将该路由更新发送给R1
就会导致R1学习到172的条目,下一跳是R2,跳数为2
此时就会出现R1和R2路由器上172的条目互指(出现互指即为环路) -
解决方法:
1、最大跳数15跳,16跳不可达.(理论有效,实际无效) 两台路由器之间交互更新,每一次跳数+1,直到最后有一台路由器收到跳数为16
2、水平分割:从A路由器收到的信息,不再转发给A 从某个接口收到的路由更新,不会再从该接口发送出去.
3、触发更新:当路由发生变动的时候,直接发送变化后的response报文 比如R1的172条目发生故障,则直接告知R2,该条目故障
4、路由中毒:将故障条目置位16跳
触发更新和路有中毒一般是一起用的
5、毒性逆转:收到中毒消息的路由器,直接向发送方回应response消息 比如R1发送16跳的信息,则R2回复16跳的更新
6、老化时间&垃圾收集时间:水平分割开启的情况下,即R2不会对R1进行交互 -
水平分割和毒性逆转会冲突:
如果两者一起开启,则毒性逆转生效
默认情况下,水平分割开启
3.6RIP命令(HUAWEI):
- 协议视图配置:
rip:表示开启rip协议
version 2:表示修改版本为v2
network 10.0.0.0:表示宣告10开头的所有接口(将10开头的所有路由信息加入RIP)
network后面写的是主类:A类写x.0.0.0 B类写x.x.0.0 C类写x.x.x.0
正常情况下:RIP路由器发送RIP的response是,hop+1…RIP路由器正常情况下接收response时,hop+0(改变策略)
-
接口视图配置
rip metricout 2 //表示将发送时的hop+2
rip metricin 2 //表示接收的时候,也对hop值进行增加,hop+2 -
接口视图下开始RIP认证
rip authentication-mode simple(MD5) cipher(plain) 123
//表示接口开启RIP认证,认证方式为明文,密码为123
rip authentication-mode md5 nonstandard plain 123 10
//表示接口开启RIP认证,认证方式为MD5,标准为IETF标准,密码为123,KEY ID为10,同时本地存储为明文 Hash只算密码,key id也要相同,不然不通过,二次校验码,更换密码不中断,华为同一时间之内只能存在一个key id…两端的密码和key id一定要相同 -
查看一个接口配置了哪些RIP参数:
display rip 1 interface G0/0/0 verbose -
查看RIP协议配置
display cu conf rip -
针对RIP报文:
接口视图下
禁止RIP发送数据或者禁止接收数据
undo rip input
undo rip output
表示禁止发送和接收rip报文,其他报文正常通过该禁止接收发送另外一种方式:静默接口
协议视图下:silent-interface g0/0/0 //表示禁止g0/0/0接口向外发送RIP报文,但是允许接收RIP报文 -
汇总:
假设目的地址为172.16.1.0 172.16.2.0 172.16.3.0
对于RIP来说,需要通过命令告知路由器进行汇总
协议视图下
summary always:表示开启强制自动汇总
undo summary:表示关闭汇总
RIP默认情况下有开启汇总,但是被水平分割抑制手工汇总:接口视图下:rip summary address 172.16.0.0 22 //表示手动对路由进行汇总
什么时候会汇总:
当路由器发现发送路由的时候,发送的路由和接口主类不一致,则汇总…
比如路由为172.16.1.0 172.16.2.0 172.16.3.0 但是接口是10.1.1.1
一个主类是172.16.0.0 一个主类是10.1.1.1
主类不一致,则发生自动汇总,汇总成172.16.0.0/16
THREE OVER
Four.OSPF概述与实验
4.1OSPF的背景
- 链路状态路由协议-OSPF(全称:开放式最短路径优先)
(无环的路由协议)OSPF邻接关系建立过程
由IETF组织制定 - IGP:内部网关路由协议(RIP、OSPF、EICRP:思科私有、IS-IS)
EGP:外部网关路由协议(EGP、BGP)
由某个特定路由协议形成的网络称为自治区域 - RIP的局限性
D-V:收敛速度慢
主动机:每隔30s自动发送报文
被动机:自动接收报文
收敛慢,容易产生环路,扩展性差
4.2OSPF的介绍
-
OSPF优先级:10
-
采用SPF算法
-
链路–>路由器接口
状态–>描述接口及其与邻居路由器之间的关系 -
OSPF的优越性:
- 无环路
- 收敛快(1、区域划分,2、算法)
- 扩展性好(Options)
- 支持认证(哈希MD5认证)
-
骨干区域(常规区域) 非骨干区域(非常规区域)
要求:默认情况下,两个非骨干区域不能相邻 -
LSA:链路状态信息,LSDB:链路状态信息库(LSA的集合)
一个网段既有一个LSA(包含网段信息…包含路由信息)
LSA泛洪:转发给相邻的路由器…(从接口泛洪出去)
链路信息收集
最后整理为一个LSDB
再经过SPF算法算出最短路径树
度量值为开销值(开销值越低越快到达目标网络)
开销值可基于带宽进行计算
最后加工进一个路由表.
4.3OSPF三张表
- 邻接表:列出本地路由器全部已经建立邻接关系的邻居路由器信息
- 链路状态数据库LSDB:列出网络中其他路由器的信息,由此显示了全网的网络拓扑
- 路由表:列出通过SPF算法计算出的到达每个相连网络的最佳路径
4.4Route ID
-
Route ID:是一个32位的值
-
在自治系统中唯一标识一台运行OSPF的路由器,每台运行OSPF的路由器都有一个Router ID 可以是任意的IP地址
- 标识路由器的身份
- 选举DR,BDR的依据
-
Router ID的选举规则:
-
手动配置Router ID最优
-
若存在逻辑接口,则使用逻辑接口中最大的IP地址作为Router ID(回环口)
-
若没有逻辑接口,则使用活跃物理接口的最大IP地址作为Router ID(物理接口)
-
-
主从关系:先比较优先级,优先级相同则比较Router ID…
-
选举DR,BDR的作用:
DR(指定路由器),BDR(备份指定路由器)
尽可能少的建立邻接关系…
同一个网段选举出一个DR和一个BDR
Other DR:其他路由器 -
基于这个原因会使用到两个组播地址:224.0.0.5 224.0.0.6
224.0.0.6是由DR/BDR加入…BDR备份DR的邻接关系…
而Other DR,BDR/DR加入224.0.0.5…建立起邻接关系,实现LSDB同步 -
优先级为0表示不参加选举(ospf dr-priority X)
X:0~255:ospf dr-priority X更改优先级
重启进程进行重新选举 -
OSPF区域:骨干区域和非骨干区域
-
ABR:区域边界路由器(area broden router)
ASBR:一边基于OSPF的协议,另一边是另外的协议
4.5OSPF邻接关系建立过程
- OSPF为传输层协议,封装在IP报文中,协议号为89
- OSPF报文类型有五种:
- Hello报文
- DD(Database Description)数据库描述报文:LSDB–DB
- LSR(Link State Request)链路状态请求报文
- LSU(Link State Update)链路状态更新报文
- LSACK(Link State Acknowledge)链路状态回复报文
-
邻居列表:Route ID
双方都收到hello包,(其中一个包的邻居列表和接收方对应,则接收方进入Init状态…)
并且邻居列表都是自己,就会进入2-way状态,邻居关系建立成功…
40s之内如果没有建立起邻接状态,则进入down状态 -
两台路由器A,B之间运行OSPF,互相发送hello报文…
一开始路由器A发送给路由器B的hello报文中的邻居列表为空,路由器B收到之后进入init状态,并将其中的Router ID修改为路由器A的Router-ID,发送至路由器A…
路由器A收到路由器B的回应后将路由器B的邻居状态置为2-Way状态
反之同理
一旦双方都收到活跃邻居为自己,则进入2-way状态…
——说明双方邻居建立成功 -
双方从2-way状态从发送空的DD报文进入ex-start状态,期间会根据Router ID的优先级或者大小选举出主从路由器
由从路由器先向主路由器发送含有LSA摘要信息的DD报文(如果接受到的一方没有相关摘要,则发送LS请求报文),双方进行LSDB同步
经过有内容的DD报文交互之后,主从路由器会向对方请求自己所不具备的LSA详细内容(也就是发送LSR报文)
当对方在收到LSR报文时候,会通过LSU报文,将对方所请求的LSA信息发给对方…(从ex-change过渡到Loading状态)
收到LSU报文之后的一方,会进行报文收到确认回复(LSACK报文)
一旦双方都收到LSAck报文则进入full状态
——说明双方邻接关系建立起来,LSDB已经完成同步,获取当前网络拓扑
4.6杂东西
- 抓取流量包对应字段的意义:
I:是否为第一个报文
M:后面还有没有更多的DD报文
MS:谁是主路由器,谁是从路由器 - OSPF支持的网络类型:
1、广播类型
2、点到点类型 - OSPF支持的网络类型:
1、广播类型
2、点到点类型 - OSPF开销:ospf cost… ospf的接口开销值 = 带宽参考值/带宽
(带宽参考值为100Mbit/s)
在ospf协议视图下,bandwidth-reference xxxx可以修改带宽参考值 - 更改hello时间能够同时更新死亡时间
更改死亡时间 hello时间不会更改 - 明细匹配、减少算法运行时间(通告的时候不使用有类的划分方式)
4.7OSPF路由协议特点
1、可适应大规模网络
2、路由变化收敛速度块
3、无路由环路
4、支持VLSM
5、支持等价路由
6、划分区域,方便管理
7、以组播地址发送协议报文
8、触发更新
4.8ospf配置
1、ospf router-id x.x.x.x
2、area 0(搭建区域)
3、network x.x.x.x x.x.x.x (反掩码)网络位全0,主机位全1
4、display ospf peer(查看当前邻居)
5、terminal debugging(华为自带的抓包特性)
6、debugging ospf packet
7、Autype:0表示不认证 1表示简单认证 2表示MD5认证
8、ospf timer hello xx
9、reset ospf 1 process:重启进程(用户视图下)
10、ospf dr-priority X更改优先级
DR BDR在显示的时候写的是接口ip
FOUR OVER