前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网络工程师_思科 | 讲一下路由协议,顺便拓展一下OSPF高级部分

网络工程师_思科 | 讲一下路由协议,顺便拓展一下OSPF高级部分

作者头像
网络技术联盟站
发布2019-08-21 17:30:48
1.2K0
发布2019-08-21 17:30:48
举报
文章被收录于专栏:网络技术联盟站

IP地址---32bit--4Byte---点分十进制---192.168.1.1/24--192.168.1.1 255.255.255.0

网络前缀 网络掩码

192.168.1.1 255.255.255.0----192.168.1.0/24

网络位(固定不变) 主机位(可以变化)

192.168.1.0 0.0.0.1

代码语言:javascript
复制
A  1-126    1.0.0.1--126.255.255.254    /8
   10.0.0.0-10.255.255.255    
B  128-191                              /16
   172.16.0.0---172.31.255.255
C  192-223                              /24
   192.168.0.0--192.168.255.255
D  224-239--组播
E  240-255--科研--实验

  • 网络地址:主机位全0
  • 广播地址:主机位全1

192.168.1.0/26---有多少个可以使用的地址?

192.168.1.0000000/26

192.168.1.00 000000/26

192.168.1.00 111111/26

网络位26(固定这个网段) 主机位6-----2^6-2

192.168.1.129/28-----有多少个可以使用的地址?

网络位28 主机位4-----14

留出多少个主机位----至少50个地址

192.168.10.00000000/26

000000

111111----62

192.168.10.1---192.168.10.254----大的地址范围

192.168.00001010.00xxxxxx/26

192.168.10.0/26

192.168.10.0---63/26----

192.168.00001010.01xxxxxx/26

192.168.10.64/26

192.168.10.64-127/26

192.168.00001010.10xxxxxx/26

192.168.10.128/26

192.168.10.128-191/26

192.168.00001010.11xxxxxx/26

192.168.10.192/26

192.168.10.192-255/26

192.168.10.192/26------网段----192.168.10.192 255.255.255.192

掩码怎么写?:前面26位都是1,后面6位是0

1111111.1111111.1111111.11000000

255.255.255.192

192.168.1.0/24

1111111.1111111.1111111.00000000

255.255.255.0

/20

1111111.1111111.11110000.0000000

255.255.240.0

网络汇总:

192.168.8.0/24----192--属于C类的地址 /24

192.168.9.0/24

192.168.10.0/24

192.168.11.0/24

192.168.0.0/16

192.0.0.0/8

0.0.0.0/0----所有的ip地址

172.16.8.0/16------172属于B类地址 /16

172.16.9.0/16

172.16.10.0/16

172.16.11.0/16

172.16.8.0/22

路由器的接口隔离网段,隔离广播。

总结:ip地址格式--32bit--网络位和主机位

网络前缀和掩码 --192.168.1.1/24

  • 掩码变短的汇总叫:CIDR--无类域间路由
  • 掩码变长的汇总叫:VLSM--可变长子网掩码

路由--------------------------------------------------------------------

R1#show ip int bri //查看接口状态和ip

路由器工作原理:看包目的ip地址,查路由表。

  • 直连---本地接口配置ip地址和up
  • 静态---手工写的
  • 动态---自己学习---OSPF、 EIGRP

静态路由:

代码语言:javascript
复制
R1(config)#ip route 23.1.1.3 255.255.255.255 f0/0 12.1.1.2

ip route +目的网段+目的网段的掩码+出接口/下一跳

出接口---本地出接口

下一跳---和我路由器直连的下一跳

R1(config)#no ip routing //关闭路由功能

默认路由---缺省路由-----到处可见

代码语言:javascript
复制
R3(config)#ip route 0.0.0.0 0.0.0.0 f1/0 23.1.1.2 

代码语言:javascript
复制
S       23.1.1.3 [1/0] via 12.1.1.2, FastEthernet0/0

[X/Y]

  • X:管理距离----区别路由协议--直连(0)--静态(1)--动态OSPF(110)---EIGRP(90)
  • Y:度量值

越小越优

不同路由协议管理距离和度量值都是不一样的。

路由器发包----默认的源ip就是本地的出接口ip地址

路由器查表原则:最长掩码匹配原则

路由器工作原理------查表原则------交换机工作原理----集线器工作原理------

应用层(message):应用程序-

  • telnet---23---远程登陆--管理设备
  • ssh-----22----加密的telnet
  • http----80----网页---61.135.169.121 80
  • https---443----京东网页--111.206.231.1 443
  • dns-----53-----域名解析系统
  • ftp-----20(数据) 21(控制)---文件传输协议---
  • Ser-U-----3cdaemon(搭建日志服务器) 设置共享文件夹
  • snmp----161----简单网络管理协议----网络管理软件
  • SMTP----25----简单邮件传输协议--发邮件
  • IMAP----143---收邮件--同步
  • pop3----110---邮局协议版本3---收邮件---不同步

表示层:加密 解密 压缩 解压缩

会话层:维持会话连接

传输层(segment):建立端到端的连接

  • TCP(协议号6)---传输控制协议----可靠---http--https--telnet
  • UDP(协议号17)---用户数据包协议---不可靠--语音--视频--组播

网络层(packet):逻辑寻址(ip地址) 数据转发(数据包)

IP包头:源目ip 协议号

常见设备:路由器 三层交换机

数据链路层(frame):物理寻址(mac地址) 数据转发(数据帧)

帧头:源目mac 类型位

常见设备:二层交换机 网卡 网桥

物理层(bit):传输介质

常见设备:光纤 网线(理论传输距离100M)

无线 hub(中继器) 集线器(放大信号)

路由器工作原理:当路由器收到一个数据包之后,提取包里面目的ip地址,查路由表转发数据。

交换机工作原理:当交换机收到一个数据帧之后,提取帧里面的目的mac地址,查mac表转发。

集线器的工作原理:当集线器通过一个端口收到数据后,通过除接收端口以外其他所有的端口泛洪出去。

交换机基于源ma学习(目的是为了形成mac地址表),基于目的mac转发。

PC1#show int f0/0 //可以查看接口mac

数据包在网络设备之间传递的过程中,源目ip都是不变的,源目mac会随着每个网段都会变化

路由器的接口是隔离广播的

交换机:

1.如果SW有192.168.1.1 mac,直接回应

2.如果没有,sw 1口---mac pc(192.168.1.100)(mac地址表)

泛洪出去

sw 2口---mac R(192.168.1.1)

R3#show ip route //查看路由表

  • 单播:1对1 ----微信私聊
  • 组播:1对多 ---建立讨论组----亮剑--发电报---电视--
  • 广播:1对所有 ----群发

telnet---应用--端口号--23

ping--工具--测试连通性的工具--借助于ICMP协议

192.168.1.1/24

前缀 掩码

32bit----8bit=1byte

192.168.1.0/24---网段

192.168.1.0 255.255.255.0

255=11111111

192.168.1.---网络位

.0---主机位

192.168.1.1-----192.168.1.254

0和255不用

主机位全0代表是网络地址 主机位1代表是广播地址

私有地址的分类

  • A类:10.0.0.0至10.255.255.255
  • B类:172.16.0.0至172.31.255.255
  • C类:192.168.0.0至192.168.255.255

当你PC上不去网?

1.ping 127.0.0.1---看网卡工作是否正常

2.ipconfig-all--看ip和网关是否正常-----

3.ping 网关是否通----------------说明不是你PC的问题

4.出口出口器

ping 公网-----通---不是运营商的问题

配置的问题

静态缺点:不适用于大型网络 扩展性不好

静态优点:稳定性 开销小(不消耗CPU)

动态路由协议最终目的:形成路由表

OSPF:Open Shortest Path First----动态---IGP--链路状态(LSA--link-state)

公有的协议

仅支持IP环境------IPX--红色警戒--补丁包--MPLS V**---Win--Linux--Win2008--Unix

仅支持等价的负载均衡

配置:

代码语言:javascript
复制
R1(config)#router ospf 100  
 //启用OSPF协议,进程号是100(标识本地的OSPF进程)只具有本地意义


R1(config-router)#router-id 1.1.1.1  
//RID用于标识一台OSPF路由器的 可以不配置,让设备自己选举


R1(config-router)#network 12.1.1.0 0.0.0.255 area 0 
 //宣告网段,所有本地直连的网段


R1(config-router)#network 1.1.1.0 0.0.0.255 area 0

OSPF有2种正常区域:0(骨干区域)和非0(非骨干)

如果网络中只有一个区域,可以是0区域,可以是非0区域

如果网络中有多个区域,必须存在0区域,非0区域必须要和0区域互通

RID的选举方法:

1.手工配置--最优

2.激活的IP地址最大的环回口

3.激活的IP地址最大的物理口

R1#clear ip ospf process //清理OSPF进程,重新建立

  • Hello:建立邻居,维持邻居
  • DBD:数据库描述--Database Description--描述自己有哪些LSA
  • LSR:链路状态请求--Link State Request--请求自己没有的,对方有的LSA
  • LSU:链路状态更新--Link State Update---回应LSR
  • LS ack:链路状态确认--Link State Acknowledge
代码语言:javascript
复制
集五福:
男孩                           女孩


你好                           你好-----Hello


和谐福2                        友善2
敬业福2                        富强2----DBD
爱国福2




你把友善和富强发给我呗               ----LSR




                               给你 ----LSU


确认                                ---LS ack

DR和BDR:实际上把性能高的设置成DR和BDR

224.0.0.5 ---所有的OSPF路由器都监听这个地址

224.0.0.6 ---OSPF的DR(指定路由器)和BDR(备份指定路由器)侦听

DR和BDR的选举机制:

1.接口优先级--默认是1--越大越优(0-255)

2.看RID--越大越优

DR和BDR能不能被抢占的问题:不能被抢占--如果想抢占的话--清理OSPF进程--设备关机重启

OSPF基于IP传输的----协议号89

OSPFv2--IPv4

OSPFv3--IPv6

Hello 10s 40s

接口优先级和RID

OSPF三张表:

  • 路由表:R1#show ip route ospf

[110/2]--管理距离/度量值(metric)

  • 邻居表:R2#show ip ospf neighbor
  • 链路状态数据库:R2#show ip ospf database----NP具体说

OSPF 7个状态--邻接关系的建立过程:

1.Down:刚刚启用OSPF进程,还没有宣告接口

2.Init:收到了对方的Hello,看到了---接口优先级和RID,把对方设置为Init状态--Hello

3.Two-way:两个人都看到了对方的Hello包,看到了---接口优先级和RID-----Hello

--------------------------------------------------------------------邻居

选举DR和BDR

4.Exstart:选举主/从关系--Master/Slave--谁的RID大,谁就是Master-----Hello

5.Exchange:交换DBD------说自己有哪些----他有哪些东西----------------DBD

6.Loading:加载状态--------------------LSR LSU LS ack

7.Full: 更新完毕

--------------------------------------------------------------------邻接

当一台路由器通过多种方式收到相同的路由条目,怎么选择:(越小越优)

1.看管理距离----直连0---静态1--OSPF--110---EIGRP90

2.度量值--每个协议计算度量值不一样

OSPF度量值的计算:

路由条目传递方向所有入站接口开销的累加。

R3#show ip os int lo0 //查看接口开销

R3#show int lo0 //查看接口带宽

开销=cost=100M/接口带宽(M)

LSA介绍---link-state

LSA一共有11种类别,我们经常使用的是前七种。而第六类LSA是用于组播ospf(它是为IPV4组播而设计),所以现在我们暂时使用不到。

1.Router LSA------------路由器lsa

2.Network LSA-----------网络lsa

3.Summary Net Lsa-----------汇总lsa

4.Summary ASB LSA-------

5.Autonomous system external LSA

7.Defined for not-so-stubby area-------只存在于Nssa区域(特殊区域)

注意:描述LSA时,研究它时一般通过三点去研究

(1)传播范围

(2)通告者

(3)包含信息

1.Router LSA------------路由器lsa

(1)传播范围---只会在本区域内泛红

(2)通告者-----每一台路由器关于每个区域只会产生1条1类的lsa,ABR关于每个区域都会产生1条

(3)包含信息---有几条链路在本区域---链路前缀--掩码--度量值--S口 链路前缀--度量值--F口

R1#show ip os database router 1.1.1.1 //查看R1的1类lsa详细信息

R1#show ip ospf database //查看LSDB

Link ID:1类lsa的标识--RID

ADV Router:Advertisement Router---通告者---谁产生的

Seq#:序列号,防止重复报文

路由器收到1条lsa:

1.去看自己的lsdb,没有,直接添加到lsdb

2.如果有,对比序列号

一样,丢弃

新收到的序列号大,替换掉原来的

新收到的序列号小,丢弃

Checksum:检验数据完整性

Link count:链路数量

S口默认认为有两种网络类型:

1.点对点---point-to-point

2.a Stub Network

1类的lsa谁产生,每台路由器都会产生。

区域内部路由器只会产生1条,如果路由器是ABR,这台设备关于每个区域都会产生1条。

2.Network LSA-----------网络lsa

(1)传播范围---本区域内泛红

(2)通告者---DR发的--用DR的RID来表示的

(3)包含信息---广播网段的---广播网段的链路前缀--链路掩码--没有度量值(结合1类的)

Link ID:2类lsa的标识---DR接口的IP地址

ADV Router:本广播网段DR的RID来表示的

R2#show ip os int f2/0 //查看f2/0口下面ospf的信息

R2#show ip os database network //查看2类lsa的详细信息

3.Summary Net Lsa-----------汇总lsa

(1)传播范围--除了本区域以外,其他所有的OSPF区域

(2)通告者--本区域的ABR

(3)包含信息

每一条3类的lsa代表一条域间路由--O IA

Link ID:域间路由的前缀

4.Summary ASB LSA

(1)传播范围---除了ASBR所在区域其他所有的区域

(2)通告者---本区域的ABR

(3)包含信息

描述ASBR的位置,描述谁是ASBR的。

Link ID:ASBR的RID来表示的

5.Autonomous system external LSA

(1)传播范围--所有的正常OSPF区域

(2)通告者---ASBR--用ASBR的RID来表示

(3)包含信息

每一条5类的lsa代表一条域外路由---默认情况是就是O E2

EIGRP--RIP--重分布进入OSPF--路由类型默认是OE2---度量值默认20

BGP------------------------------------------------------1

  • O OSPF区域内
  • O IA OSPF 域间路由
  • O E1 OSPF外部路由---会累加OSPF内部的度量值
  • O E2 OSPF外部路由---默认度量值20--不会累加OSPF内部的度量值

O>O IA>O E1>O E2

Cost=100M/接口带宽(M)

代码语言:javascript
复制
R2(config-if)#router os 100
R2(config-router)#auto-cost reference-bandwidth 1000  //修改参考带宽


R2(config)#int f2/0
R2(config-if)#ip ospf cost 100  //修改接口cost

四种特殊区域:

Stub Area----末节区域

Totally Stub Area---完全末节区域

Nssa(Not-so-stub area)--并不完全末节区域

Totally Nssa---完全Nssa

OSPF划分区域作用:

1.防止环路

2.限制lsa的传递

作用:限制lsa传递

Stub:末节区域

1.不能有ASBR

2.不能把区域0设置成Stub

3.虚链路不能穿越Stub

4.如果有多个ABR,都向Stub区域注入默认路由-----次优路径

代码语言:javascript
复制
R2(config)#router os 100
R2(config-router)#area 1 stub  //区域内所有的路由器上做

1.把4类和5类的lsa过滤掉了

2.ABR会向Stub区域内部注入1条三类的默认,默认度量值是1----目的是去往OSPF外部

代码语言:javascript
复制
R2(config-router)#area 1 default-cost 9  //修改ABR注入默认路由的默认度量值

Totally Stub Area---完全末节区域

R2(config-router)#area 1 stub no-summary //只需要在ABR上做,完全Stub区域内部其他的路由器只需要做R1(config-router)#area 1 stub

1.把3类,4类,5类的lsa过滤掉

2.ABR会向完全Stub区域内部注入1条三类的默认

往OSPF整个区域内部下放缺省路由:

代码语言:javascript
复制
R4(config)#router os 100
R4(config-router)#default-information originate always  

//无论本地是否有缺省路由,都往OSPF内部下方一条缺省路由

代码语言:javascript
复制
R4(config)#router os 100
R4(config-router)#default-information originate  

//往OSPF内部下放缺省路由,要求本地必须有一条默认

代码语言:javascript
复制
R4(config)#ip route 0.0.0.0 0.0.0.0 +下一跳  

Nssa:Not-So-Stubby Area---并不完全末节区域

代码语言:javascript
复制
R3(config)#router os 100
R3(config-router)#area 2 nssa

1.可以有ASBR--可以有外部路由重分发进来

2.把4.5类的lsa过滤掉了

3.Nssa区域的ASBR重分发进来的外部路由以7类的lsa存在

(7类的lsa只存在于Nssa区域)

4.Nssa区域的ABR会把7类的lsa转换成5类,发给其他区域

5.Nssa区域的ABR过滤了4类和5类的lsa,重分发到OSPF其他区域的外部路由,Nssa学不到

6.Nssa的ABR需要手工注入一条7类的默认----O N2

R3(config-router)#area 2 nssa default-information-originate

R2#show ip os border-routers //查看边界路由器

R3:转换器(如果有多个ABR,RID大的是转换器)----7转5

ASBR:产生5类的lsa就是ASBR。

代码语言:javascript
复制
R2#show ip os da external
Forward Address: 4.4.4.4  //标识真实的ASBR的

代码语言:javascript
复制
R3(config-router)#area 2 nssa translate type7 suppress-fa  //隐藏真实的ASBR

完全Nssa:

R3(config-router)#area 2 nssa no-summary //只需要在ABR上做

在Nssa的基础上把3类的明细过滤掉,同时注入一条3类的默认。

虚链路---ospf专属的:

在出现问题的ABR和距离区域0最近的ABR上建立虚链路。

注意点:不能跨越骨干区域,不能跨越特殊区域

代码语言:javascript
复制
R2(config)#router os 100
R2(config-router)#area 2 virtual-link 3.3.3.1  //对方的RID
R2#show ip ospf virtual-links  //查看虚链路信息

虚链路上,一旦虚链路建立成功,就不再发送hello,lsa永不超时。

OSPF协议认证

明文认证

密文认证

部署认证两种方式:

1.链路级认证(支持明文也支持密文)

2.区域级认证(支持明文也支持密文)

1.链路级认证:

a.明文

命令:

代码语言:javascript
复制
R2(config)#interface s1/1      
R2(config-if)#ip ospf authentication-key cisco //定义认证时使用的明文秘钥   
R2(config-if)#ip ospf authentication //启用认证

b.密文

命令:

代码语言:javascript
复制
R2(config)#int s1/1    
R2(config-if)#ip ospf message-digest-key 13 md5 cisco //定义一个密文认证所使用的MD5的秘钥。注意:key-id和秘钥都必须一样。    
R2(config-if)#ip ospf authentication message-digest  //启用密文认证  

2.区域级认证:

解释:在一台路由器上定义了关于一个区域的某种类型认证,则必须要在这个区域内的

所有路由器上做相同认证配置。

虽然是区域认证,但这个区域里每个网段可以使用不同的秘钥。只要保证一条链路两端接口秘钥一致即可。

a.明文

命令:

代码语言:javascript
复制
R1(config)#int s1/1       
R1(config-if)#ip ospf authentication-key CCIE  //定义明文的认证秘钥       
R1(config)#router ospf 110           
R1(config-router)#area 0 authentication  //启用认证  

b.密文

命令:

代码语言:javascript
复制
R1(config-if)#int s1/1       
R1(config-if)#ip ospf message-digest-key 12 md5 cisco //密文认证秘钥       
R1(config)#router ospf 110       
R1(config-router)#area 0 authentication message-digest //启用区域密文认证

3.虚链路认证:

a.明文

命令:

代码语言:javascript
复制
R3(config)#router ospf 110
R3(config-router)#area 2 virtual-link +对端RID authentication  //启用认证
R3(config-router)#area 2 virtual-link +对端RID authentication-key cisco

上述拓扑中,因为虚链路早就建立完成。所以虽然只一端启用了认证,正常情况下邻接关系会DOWN,但虚链路建立完成之后,不会再发送HELLO包(而HELLO包中携带认证字段),认证不会被发送,所以邻接关系不会DOWN。

对于虚链路认证,只有刚开始建立时才会生效。所以启用虚链路认证,要在一开始就配置。

b.密文

命令:

代码语言:javascript
复制
R3(config)#router ospf 110
R3(config-router)#area 2 virtual-link 91.1.1.1 message-digest-key 1 md5 cisco
R3(config-router)#area 2 virtual-link 91.1.1.1 authentication message-digest

启用VL的密文认证(只有在VL初始化建立邻接关系的时候生效)

OSPF网络类型

1.Loopback

必须启用环回口!

特点:无论接口掩码多少,都以/32主机路由通告。

代码语言:javascript
复制
R1(config)#int lo0
R1(config-if)#ip ospf network ?

2.Point-To-Point

Serial

特点:把该类型的接口宣告进OSPF,可以直接建邻居。而OSPF是以组播发送Hello包。所

以该接口是支持组播的。

Hello 10, Dead 40, Wait 40

没有DR和BDR

3.Broadcast

Ethernet(e) 快速Ethernet(fast) 千兆Ethernet(gigabit)

特点:支持组播,有DR和BDR

Hello 10, Dead 40, Wait 40

DR和BDR不是由接口类型决定,由网络类型决定的。

4.NBMA--非广播多路访问网络--Non-Broadcast Multi Access

FR主接口/FR的多点子接口

特点:不支持组播,只支持单播。

代码语言:javascript
复制
R2(config-if)#ip ospf network non-broadcast  
R2(config-if)#router os 100
R2(config-router)#neighbor 12.1.1.2  //手动建立邻居,对方的ip地址

Hello 30, Dead 120, Wait 120

有DR和BDR

5.Point-To-Multipoint

支持组播发送

Hello 30, Dead 120, Wait 120

无DR和BDR

6.Point-To-Multipoint Non-Broadcast 不支持组播,

5.6这俩默认没有网络接口类型

代码语言:javascript
复制
R1(config-if)#ip ospf network point-to-multipoint non-broadcast

Hello 30, Dead 120, Wait 120

无DR和BDR

OSPF路由汇总(路由条目):

域间汇总:在ABR,针对3类的lsa进行汇总

代码语言:javascript
复制
R2(config)#router os 100
R2(config-router)#area 1 range 192.168.0.0 255.255.240.0

域外汇总:在ASBR,针对5类的lsa进行汇总

代码语言:javascript
复制
R4(config)#router os 100
R4(config-router)#summary-address 172.16.0.0 255.255.248.0

在你做汇总的路由器上回产生一条指向null0的汇总路由条目,防止环路。

努力学习,勤奋工作,让青春更加光彩

再长的路,一步步也能走完,再短的路,不迈开双脚也无法到达

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络技术联盟站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的四七层流量分发服务,访问流量经由 CLB 可以自动分配到多台后端服务器上,扩展系统的服务能力并消除单点故障。轻松应对大流量访问场景。 网关负载均衡(Gateway Load Balancer,GWLB)是运行在网络层的负载均衡。通过 GWLB 可以帮助客户部署、扩展和管理第三方虚拟设备,操作简单,安全性强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档