面试复习归纳
说明
记录一下面试的复习思路与总结
参考阅读
【?网络面试100问?】
协议栈攻击
别再翻来翻去找资料了,关于OSPF,都总结在这了!!!
终于可以把TCP讲清楚了
生成树原来这么简单
一篇文章带你看清《OSPF网络类型》的真面目
《关于计算机网络的思维导图》
一、自我介绍
一分钟以内
二、网络基础
1、OSI、TCP/IP模型
此板块包含如下内容
1、OSI模型详解
2、TCP/IP模型详解
4、封装与解封装
5、比较与区别
1.1 OSI
应用程(数据 data):
通过人机交互提供各种各样的服务
表示层(数据 data):
为上层用户解决用户信息语法问题 编码 解码 加密(即时数据) 解密
会话层(数据 data):
发现 建立 维持 终止 会话进程 建立虚拟的端到端的链接
什么是虚拟的端到端的连接?
首先对于TCP连接来说,建立的是真实的通道,有明确的两端的;而虚拟的通道是只有本端没有对端的,存在虚拟的标识,用于隔离其他不同的流量
传输层(数据段 segment):
功能:
1.数据分段
2.使用端口号区分不同的服务
3.可靠传输
区分不同的流量
端口号:
静态:1-1023 与流量存在一一对应并绑定的关系
动态:1024-65535 一一对应
定义传输的方式
可靠传输 TCP
1、如何可靠?
确认、重传、排序、流控(滑动窗口)
注意:重排序与流控是TCP的一种优化机制;TCP保证可靠性是由确认与重传输来决定的
2、什么是面向连接?
发送数据包之前,一定要进行一个协商,确保双方能够收发数据、确保双方的链路可以正常通信(双方的端口是开放的)
举例:上课前老师将时间与学生进行协商
3、如何保证TCP的面向连接?
三次握手--->确保双方的端口开放,确保双方都具有收发数据包的能力
三个分片分别是如何保证可靠性的?
第一个包通过第二个包的显式确认来保证可靠
第二个包通过第三个包的显式确认来保证可靠
第三个包是一个隐式确认的包
显式:要有一个明确的回复
隐式:不需要收到任何恢复,但是还是完成了确认
四次分手
为什么需要发两次FIN(中止报文)?
使通信两端都中止此次对话
不可靠传输 UDP
说明:无ACK(确认号)、seq(序列号);即无序的传递
注意:因为没有seq,导致数据分片后,不能重排序;所有存在RTP(real time protocol)实时协议;即UDP+RTP
网络层(数据包 packet):
1.使用IP地址进行逻辑寻址
2.建立两个节点间的连接
目的:完成路由的选择
数据链路层(数据帧 frame):
根据不同的物理链路来定义不同的二层数据封装
局域网封装(即以太网封装,存在MAC地址)
Ethernet2封装 用的多,基于TCP/IP模型
目标MAC 源MAC 类型字段(描述上层所使用的协议)
广域网封装(PPP)
IEEE802.3封装 用的少,基于OSI
1.MAC 媒介访问控制层 通过MAC地址进行物理寻址
2.LLC 逻辑链路控制子层 表示上层的封装 为上层提供FCS校验
物理层(比特流 bit):
定义电气、电压、接口规范,光学特性
总结:
上三层为应用程序对数据进行加工和处理——数据流层
下四层为数据传输层面——传输流层
1.2 TCP/IP模型
TCP/IP模型:
应用层(应用、表示、会话)
端到端层(传输层)
互联网层(网络层)
网络接口层(数据链路层、物理层)
认为TCP与IP十分重要,所以就称为TCP/IP模型
1.3 封装与解封装
数据封装:
应用、表示、会话对数据进行加工和处理,来到四层选择传输方式,形成四层的PDU,叫做Segment(分片);
来到三层,加三层头部(IP逻辑寻址),三层的PDU叫做Packet(数据包)
来到二层,加二层头部(MAC物理寻址),二层的PDU叫做Frame(数据帧)
来到一层,进行串行化
什么是串行化?
二层的数据帧转换成一层的比特流(弱电信号),这个过程就叫做串行化;接口带宽越大,每秒就可以将更多的数据帧串行化比特流
比如,10Mbit/s 表示每秒可以把10M的数据转换成数据流
数据的解封装:
一层比特流转换二层数据帧叫格式化
查看目的MAC,如果是找的自己,继续解封装,不是直接丢弃
撕掉二层的封装,查看三层的目的IP,如果找的是自己,继续解封装,不是直接丢弃
撕掉三层的封装,查看目标端口,查看是否打开,没打开直接丢弃
1.4 比较
两种模型的区别:
1、OSI模型数据封装时,必须具有完整的封装;而TCP/IP支持跨层封装
2、OSI一般用于理论,而TCP/IP模型一般用于工业生产
3、OSI支持多种网络层协议;TCP/IP仅仅支持IP协议栈(IPV4、IPV6)
跨层封装:
2、应用层
包含对常用的应用层协议的说明;如HTTP、HTTPS、DNS、FTP、DHCP
2.1 DHCP
概述
1.首先,客户端向所有的DHCP服务器发送DHCP discover包(广播包);这一步可以理解为海投简历
2.收到此包的DHCP服务器向客户端进行DHCP offer的回应(单播);这一步可以理解为企业提供offer
3.客户端向全网发送一个DHCP request(广播);这一步可以理解为对其他企业说,我有offer了,不去你那了
4.DHCP服务器向客户端发送DHCP ack的确认包(单播);这一步可以理解为求职者与企业间确认了劳务管理
总结
客户端发送的报文都是广播包,第一次的广播是为了让所有的企业看到自己,第二次广播是为了告诉其他企业自己已签到offer
2.2 DNS
概述
1.客户端在浏览器输入网址后,对于这个域名,首先查看浏览器的缓存,若没有记录,查看本地的hosts文件,去本地DNS服务器;这个过程属于递归查询
2.本地DNS服务器拿到这个域名后,先去找13台根服务器,然后就存在两种方式
迭代查询:
根域名服务器返回顶级DNS服务器的IP给本地的DNS服务器
顶级域名服务器返回权限DNS服务器的IP给本地的DNS服务器
递归查询:
根DNS-->顶级DNS-->权限DNS-->顶级DNS-->根DNS-->本地DNS
图解
2.3 NFS
概述
NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。
NFS这个服务器的端口开在2049,但由于文件系统非常复杂。因此NFS还有其他的程序去启动额外的端口,这些额外的用来传输数据的端口是随机选择的,是小于1024的端口;既然是随机的那么客户端又是如何知道NFS服务器端到底使用的是哪个端口呢?这时就需要通过远程过程调用(Remote Procedure Call,RPC)协议来实现了.RPC服务(portmap 或rpcbind服务)
RPC服务是什么?
RPC(Remote Procedure Call)即远程过程调用。RPC 最主要的功能就是在指定每个 NFS 功能所对应的 port number ,并且回报给客户端,让客户端可以连结到正确的port上去
工作流程图解
1)首先服务器端启动RPC服务,并开启111端口
2)服务器端启动NFS服务,并向RPC注册端口信息
3)客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口
4)服务端的RPC(portmap)服务反馈NFS端口信息给客户端。
5)客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。
2.4 FTP
概述
FTP:File Transfer Protocol 文件传输协议,应用层的文件共享服务
是互联网控制文件实现双向传输,同样ftp也是一个应用程序,不同系统对应的应用程序也不同,但是所遵循的是同一个协议,即vsftpd
假设有在两台主机 一台主机远程连接的服务器为文件共享服务器 本地主机为客户端在两台主机正常建立连接的情况下可以通过本地主机基于ftp协议访问服务器的文件并将文件下载到本地。如果同样服务器允许客户端写入可以将本地文件上传到服务端。文件传送(file transfer)和文件访问(file access)之间的区别在于:前者由FTP提供,后者由如NFS等应用系统提供。
主被动模式
主动模式:
被动模式:
为了解决服务器发起到客户的连接的问题,产生了被动模式,在被动方式FTP中,命令连接和数据连接都由客户端,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。
比较:
主动模式对ftp对服务器管理有利,是由FTP服务器主动与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞。
而被动模式对客户端管理有效,它是企图与服务端的随机端口建立连接但是这个端口很可能又会被服务端的防火墙所拒绝。
总结:
被动模式中只需要在服务器端的特殊端口关闭防火墙即可,而主动模式下的主机数量有很多,需要在每个主机的特殊端口都要关闭防火墙(麻烦)
一般做安全措施我们是在被动模式下做,由于主动模式是打开一个端口给客户端传送数据,我们做安全措施都是基于端口来做所以不太好做,一般也不建议去做。但是被动模式也是在不停地放端口,所以慢慢的ftp慢慢的在淘汰。
2.5 WEB
概述
1.首先,用户在本地电脑的浏览器上输入一个网址,即向服务器发出一个web请求
2.被访问的web服务器寻找页面,资源,内容等
3.web服务器将文档、图片、视频等资源返回给访问的浏览器
细化
协议
1、 www所用的协议:http协议(Hyper Text Transport Protocol,HTTP,超文本传输协议)。
2、www服务器需要提供可让客户端浏览的平台。目前最主流的Web服务器是Apache、Microsoft的Internet信息服务器(Internet Information Services,IIS)和unix nginx。
3、服务器所提供的最主要数据是超文本标记语言(Hyper Text Markup Language,HTML)、多媒体文件(图片、影像、声音、文字等,都属于多媒体或称为超媒体),HTML只是一些纯文本数据,通过所谓的标记来规范所要显示的数据格式。
4、客户端收到服务器的数据之后需要软件解析服务器所提供的数据,最后将效果呈现在用户的屏幕上。那么著名的浏览器就有内建在Windows操作系统内的IE浏览器了,还有Firefox浏览器和Google的chrome浏览器。
网址
web服务器提供的这些数据大部分都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在某个特殊的目录下面,这个目录就是我们整个网站的首页,在redhat中,这个目录默认在/var/www/html。浏览器是通过你在地址栏中输入你所需要的网址来取得这个目录的数据的。
URL:Uniform Resource Locator,统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。
<协议>://<主机地址或主机名>[:port]/<目录资源,路径>
浏览器常支持的协议有:http、https、ftp等。
主机地址或者主机名:主机地址就是服务器在因特网所在的IP地址。如果是主机名的话,那么就需要域名解析了。
端口:http为80/8080。https为443。
图解
LAMP/UNMP架构
Linux/Unix+Apache/Ngix+MySQL+PHP/Python/Perl
3、传输层
功能:
1.数据分段
2.使用端口号区分不同的服务
3.可靠传输
MTU: Maximum Transmit Unit,最大传输单元,数据链路层--->IP层最大一次传输数据的大小;以普遍使用的以太网接口为例,缺省MTU=1500 Byte,这是以太网接口对IP层的约束,如果IP层有<=1500 byte 需要发送,只需要一个IP包就可以完成发送任务;如果IP层有> 1500 byte 数据需要发送,需要分片才能完成发送
MSS:Maximum Segment Size ,TCP-->IP层最大分段大小;MSS是TCP用来限制application层最大的发送字节数。如果底层物理接口MTU= 1500 byte,则 MSS = 1500- 20(IP Header) -20 (TCP Header) = 1460 byte
区分不同的流量
端口号:
静态:1-1023 与流量存在一一对应并绑定的关系
动态:1024-65535 一一对应
定义传输的方式
可靠传输 TCP
1、如何可靠?
确认、重传、排序、流控(滑动窗口)
注意:重排序与流控是TCP的一种优化机制;TCP保证可靠性是由确认与重传输来决定的
2、什么是面向连接?
发送数据包之前,一定要进行一个协商,确保双方能够收发数据、确保双方的链路可以正常通信(双方的端口是开放的)
举例:上课前老师将时间与学生进行协商
3、如何保证TCP的面向连接?
三次握手--->确保双方的端口开放,确保双方都具有收发数据包的能力
三个分片分别是如何保证可靠性的?
第一个包通过第二个包的显式确认来保证可靠
我想要和你通信;
你可以用哪个序列号作为起始数据段来回应我.
第二个包通过第三个包的显式确认来保证可靠
我已经收到你的请求了,你可以传输数据了;
你要用哪个序列号作为起始数据段来回应我
第三个包是一个隐式确认的包
"我已收到回复,我现在要开始传输实际数据了
显式:要有一个明确的回复
隐式:不需要收到任何恢复,但是还是完成了确认
四次分手
为什么需要发两次FIN(中止报文)?
使通信两端都中止此次对话
4、缺点:传输速率慢
因为在tcp连接中运用了大量的确认机制、重传机制这些东西,他要保证每个数据包都必须完整的安全的送达,所以速率肯定是要牺牲的
不可靠传输 UDP
说明:无ACK(确认号)、seq(序列号);即无序的传递
注意:因为没有seq,导致数据分片后,不能重排序;所有存在RTP(real time protocol)实时协议;即UDP+RTP
3.1 三次握手
追问:为什么需要三次?
TCP是可靠的传输控制协议,三次握手能保证数据可靠传输又能提高传输效率。
如果TCP的握手是两次:
1、客户端:SYN延迟
2、服务器端:ACK未到
为什么是三次握手?为什么不能是2、4次?
两次 导致信息不匹配
四次 把TCP会话重复发送,浪费带宽资源,没有意义
SYN,ACK种是不携带数据的,
SYN是用来同步序列号的
ACK是用来确认收到的SYN的,用于确认包的
3.2 四次断开
4、网络层
此板块包含对常见的网络层协议的详解;及路由器与三层交换机的区别,对动态路由的分类
如OSPF;RIP;BGP;NAT;路由
4.1 动态路由协议
动态路由协议:各台路由器上运行相同的协议,这些协议会让设备间进行沟通,通过学习的方式来获取未知的路由条目信息,最终实现全网可达
4.1.1 背景
动态路由协议的障碍:
1、安全
2、选路不佳---最严重为出现环路
3、对硬件资源的占用
动态路由协议的优点:
1、配置管理方便
2、针对拓扑变化自动重新收敛
3、实用于较大复杂的网络环境
动态路由协议的追求:
1、占用资源少
2、选择路径佳
3、收敛速度快--信息同一时间全网同步,将降低出环的概率;
4.1.2 分类
1.按照使用范围(AS 自治系统)
IGP 内部网关路由协议(RIP、OSPF、EIGRP、ISIS)
EGP 外部网关路由协议(EGP V1-V2 BGP V1-V4 V4+)
什么是自治系统?
自治系统:autonomous system。在互联网中,一个自治系统(AS)是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元(例如一所大学,一个企业或者一个公司个体)。一个自治系统有时也被称为是一个路由选择域(routing domain)。一个自治系统将会分配一个全局的唯一的16位号码,有时我们把这个号码叫做自治系统号(ASN)。
AS自治系统----0-65535 其中1-64511公有 64512-65535私有
以下两种是基于IGP的分类 基于更新时是否携带子网掩码、基于算法的工作特点
2.按照是否携带网络掩码
有类别:通告路由时,携带主类掩码,有ABC类之分
无类别:通告路由时,不携带主类掩码,无ABC之分
3.按照算法特点进行分类
DV (Distance Vector) 距离矢量
邻居间共享路由表
传闻型协议
更新量小
总结:基于路由表的路由传递,通过RIP学习并加表以及通告到RIP协议的接口的路由
LS (Link State) 链路状态
邻居间共享LSA(链路状态通告)
主要共享拓扑信息
更新大
为了防环
4.2 三层设备
4.2.1 路由器
概述:三层设备,存在逻辑地址(IP地址)
当数据包进入路由器时,路由器先查看数据包中的目标MAC地址;
1、广播 解封装到3层
2、组播 每一个组播地址均存在自己的MAC地址;基于目标MAC就可以判断本地是否需要解封装;若本地加入了该组将解包,否则直接丢弃
3、单播 目标MAC为路由器接收到该流量的接口mac地址 --解封装;目标MAC不是本地路由器的mac地址 --丢弃
二层解封装完成后,查看3层报头;默认路由器仅查看目标ip地址;
目标ip:
1、 广播 解封装
2、组播 若路由器加入了该组,解封;若没有加入,丢弃
3、 单播 目标ip地址为路由器,继续解封
目标ip地址为其他设备,路由器将查询本地的路由表—TCAM
交换机的CAM表二进制表格,TCAM由1、0、x构成 x标识主机位
4.2.1 三层交换机
概述:三层交换机是二层交换机和路由器的功能集合设备;
工作过程
当一个数据包进入3层交换机后
1、先查看源mac地址,生成CAM
2、 再查看目标mac地址
a.广播 洪泛 同时解封装
b.组播 洪泛或者基于组转发 若该设备处于该组同时解封
c.单播 目标mac为本地,直接解封 目标mac为其他设备基于cam表转发
3、解封装后,查看目标ip地址;此时行为将和路由器一致
4.3 OSPF
4.3.1 工作过程
数据包与状态机
5个数据包
Hello包:发现、建立邻居(邻接)关系、维持、周期保活;存在全网唯一的RID,使用IP地址表示
DBD包:data basic describe 数据库描述包、本地数据库的目录(LSDB的目录(所有LSA集合))
LSR包:Link status Request 链路状态查询(请求)包 目的是基于DBD包中的未知信息进行查询
LSU包:Link status Update 链路状态更新包 携带了真正的LSA信息(链路状态通告),路由信息或拓扑信息 ,单播回复LSR,用于确认LSR请求
LSACK包:Link status Acknowledge 链路状态确认包,对传递LSA信息进行确认,保障可靠性
7个状态机
Down : 未启动协议,一旦启动OSPF协议后,进行hello的收发,进入下一状态
Init(初始化):,若收到了携带了自己的RID的hello包,则和对方一起进入下一状态
two-way(双向通信):邻居关系建立的标志;此时进行条件匹配,若成功,RID大的优先进入下一状态;若失败,则保持邻居关系,hello包10s周期保活即可
条件匹配:点到点网络直接进入下一状态;MA网络将进行DR/BDR选举
选举DR:
1.比较接口的优先级(0-255),越大越优
2. 比较router-id ,越大越优。
注意:
DR是接口概念
DR不能抢占
若优先级为0,视为放弃选举
Exstart(预启动):使用类似hello 的DBD进行主从关系选举,route-id数值大为主;优先进入下一状态;若MTU不一样的话,就停留在这个状态,MTU在OSI中是2层或3层 2层的大于3层
类Hello的DBD包:这里的DBD包中并没有真正的数据库信息,只是为了选出一个在下一个状态优先共享自己LSDB的主路由器
主从选举的目的: 在下一状态时,被选举为主路由器的优先将自己的LSDB发送出去
Exchange(准交换):使用真正的DBD包进行数据库目录的共享,共享的是LSDB;(交换完成后需要用LSAck包进行确认)
Loading (加载):使用LSR/LSU/LSack来获取未知的LSA信息(共享拓扑图)
Full(转发):邻接(毗邻)关系建立的标志
另外,由于OSPF网络类型的不同则还有一种特殊的状态
Attempt(尝试) :在NBMA等网络类型中,路由器之间不能自动建立邻居关系,必须使用单播邻居建立,若邻居指定发生错误,则进入该状态.
工作过程
启动完协议后(down后),本地使用组播地址224.0.0.5收发OSPF的hello包,若收到的hello包中携带了本地的RID之后,邻居关系建立,生成邻居表;
此时进行条件匹配,匹配失败将维持邻居关系,仅hello包10s周期保活即可;匹配成功者间可以建立邻接关系,邻居间使用DBD进行数据库目录的比对;之后使用LSR查询目录中未知的LSA信息,对端使用LSU来携带传递LSA,最终需要LSack进行接收确认;当本地收集到区域内所有设备的LSA后,生成LSDB—链路状态数据库表;
本地基于LSDB启用SPF算法,计算到达所有未知网段的最短路径,然后将其加载到路由表内;
两种关系的建立标志
邻居关系:two-way双向通信
邻接关系:Full状态
4.3.2 区域划分
骨干区域的任务就是汇总每一个区域的网络拓扑到其他的区域。所有的区域间的通信都必须通过骨干区域,非骨干区域间不能通信,所以就不会产生路由环路了。
两种区域类型:
1.骨干区域:区域0 存在并且唯一
2.非骨干区域:非0区域
规则区域的划分
1.OSPF网络中必须存在并唯一的骨干区域(若OSPF仅仅存在一个区域可以为非0区域)
2.非骨干区域必须与骨干区域直接相连(非骨干不能非骨干直接相连)
4.3.3 LSA类别
- LSA存在的意义
所有的LSA组成链路状态数据库,形成数据库目录; - LSA的功能特性
传递拓扑信息,交换数据库目录,最终全网可达 - LSA更新方式
1、30min周期更新
2、触发更新 ——接口变化(增删改)
分类
1类LSA(router)
产生原因:需要知道同一个区域内的拓扑信息
功能:用于在本地设备所在区域内传递路由和拓扑信息
传播范围:在本地所在区域内,终止于ABR(连接相同协议的不同区域的边界路由器,即产生3类LSA信息)
2类LSA (network)
产生原因:
1、一类LSA中如果出现了MA网络,并不知道MA网络中的设备的数量和连接的情况
2、 MA网络中 只有DR路由器才会产生2类LSA
功能:描述MA网络中所存在的所有路由器,该MA网络的网络掩码是多少
传播范围:在本区域内传输,终止于ABR(无论是否存在MA接口)
3类LSA (summary)
产生原因:各个域间需要传递路由,为了全网可达
功能:用于在不同区域之内传递路由(只有路由信息)
传播范围:在区域间传递(默认仅仅在某个区域中传输,进入其他区域时必须由新的ABR重新产生)、整个OSPF 域 (不属于任何一个路由器)
5类LSA (external) 外部LSA
产生原因:不同的协议存在同一个网路中,为了全网可达
功能:将外部路由引入OSPF域中
由于不同动态路由协议的metric计算方式的不同,所以在进行路由引入时,存在一个种子度量值,默认为1
OE五类LSA存在两种类型OE1、OE2
OE1:会计算沿途的累加
OE2:metric值无论如何传递都不会发生变化,即不会计算沿途累加
4类LSA ASBR summary LSA ASBR汇总LSA
功能:用于宣告ASBR位置
传播范围:只能在一个区域内传播,进入不同区域由新的ABR重新产生,ASBR所在区域基于1类交代位置
7类LSA Type-7(external) 通过nssa区域产生的外部路由
功能:在本NSSA区域中,用于通告外部路由信息
传播范围:仅仅在本NSSA区域传输
LSA优化
由于存在多种类别的LSA,即数据库表会很繁琐,查询起来很不方便,为了减少数据库的更新量,减少数据库的目录,可对LSA进行优化;有以下两种方法
优点:减少骨干区域的更新量
1、汇总
分类:
1、域间路由汇总-->ABR
2、域外路由汇总-->ASBR
2、特殊区域
成为条件:
1、不能是骨干区域
2、不能存在的虚链路(不规则区域,即不符合OSPF的区域划分原则)
3、存在ASBR与否,取决于需要成为什么区域
1、不存在ASBR
stub(末梢区域):拒绝4/5类的LSA;生成一条3类的缺省路由指向骨干区域
totally stub(完全末梢区域):在末梢区域的基础上,进一步拒绝3的lsa,仅保留一条3类的缺省;配置:先将该区域配置为末梢区域,然后仅在ABR上定义完全即可
2、存在ASBR
nssa(非完全末梢区域):该区域拒绝其他区域的ASBR产生的4/5LSA;本地区域内ASBR产生的5类LSA,以7类在本区域传播,从本区域进入骨干区域时由ABR(新的ASBR)转换为5类;同时自动产生一条7的缺省指向骨干区域(华为设备产生缺省,cisco设备不产生)
totally nssa(完全的非完全末梢区域):在NSSA的基础上,进一步拒绝3的LSA;生成一条3类缺省指向骨干区域;
先将该区域配置为NSSA区域,然后仅在ABR上定义完全即可
4.3.4 NP位
4.4 RIP
使用范围:IGP
三个版本:RIPV1不携带掩码无ABC之分、RIPV2携带掩码有主类之分、RIPNG适用于IPV6
算法:基于贝尔曼·福特算法,典型的DV型路由协议,基于UDP的520端口进行封装
防环机制:采用条数作为度量,最大15跳,16跳不可达
组播更新地址:RIPV1 255.255.255.255 RIPV2 224.0.0.9
与OSPF的区别
1、按照算法特点;RIP是DV、OSPF是LS
DV (Distance Vector) 距离矢量
邻居间共享路由表
传闻型协议
更新量小
总结:基于路由表的路由传递,通过RIP学习并加表以及通告到RIP协议的接口的路由
LS (Link State) 链路状态
邻居间共享LSA(链路状态通告)
主要共享拓扑信息
更新大
为了防环
2、数据包层面
request 请求 当一个路由器运行RIP,接口激活RIP功能,还没有收到任何的响应报文,就发送request
response 响应 一旦收到response后,以后就没有request包了,即使用response来传递路由信息
OSPF五个包
3、更新方式
RIP:周期+触发
4、封装
OSPF基于IP封装,协议号89
RIP基于UDP封装,端口号520
5、防环
RIP
水平分割、跳数限制、毒性逆转水平分割、计时器
Update 更新计时器 30s -->就是RIP协议的路由条目的发送周期间隔
Invaild 无效计数器 180s -->当一条路由条目180s没有在收到,将状态置为possibly down,可能死亡状态,说白了就是死亡了
Flush 刷新计时器 240s -->当一条路由持续240s没再收到,就将其从路由表中删除,说白了就是死透了,该直接埋了
Hold Down 抑制(冻结)计时器 -->当一条路由信息无效后180s没收到,就会抑制从该网段发来的信息,实际作用时间只有60s 为了防环
OSPF
基于SPF算法,计算出一个树状无环的路由
6、更新方式
RIP
异步更新:运行一个散列函数,每个路由器随机在0-0.15中产生一个散列数,用这个散列数乘上30s(周期更新的时间)为下一次更新的提前量,(如果产生的是0.1 乘上30为3,即下一次更新为27s后)使更新时间提前(0-0.15)X 30s,实际更新时间:25.5-30s
OSPF
周期+触发更新
4.5 BGP
以下两点导致路由不优,不能加表的解决办法
1、下一跳属性
2、IBGP水平分割
下一跳属性:将EBGP邻居学习路由传递给IBGP邻居时,下一跳不发生变化(导致下一跳不可达)
解决:在既有EBGP和IBGP的路由器上针对IBGP邻居做出更改下一跳属性为自己
IBGP水平分割
1.路由反射器
2.EBGP联邦
3.全互联
4.5.1 选路规则
BGP是高级的距离矢量型协议;高级在多种属性
1、优选 Preferenge_Value值最高的路由(私有属性,仅本地有效)。入向调用,不传递;大优
Cisco叫weight,权重,思科私有
2、优选本地优先级 (Local_Prefereace)最高的路由。 最常干涉IBGP关系的选路;只在IBGP邻居关系间传递;用于限制离开本AS的流量;大优
3、本地起源;(起源于本地最优先,Next-hop为 0.0.0.0 )手动聚合>自动聚合>network>import>从对等体学到的。
4、优选 AS_Path短的路由。 EBGP/IBGP关系均可被干涉,但只能在EBGP邻居间修改;最前端号码为最新经过的AS号;
5、起源类型 IGP>EGP>Incomplete。 起源属性 i优于e优于?; 可在控制层面任意接口修改
network 宣告本地路由表中的任意路由 i 0
egp 早期的ebg协议学习的路由重发布到BGP协议中 e 1
import 将本地通过其他协议学习的路由重发布到BGP协议中 ? 2
6、对于来自同一AS的路由,优选MED(多出口的鉴别属性)值小的。 最常用于干涉EBGP选路的属性
MED就是人为的利用路由器优选路径的规则—先比较管理距离(华为为优先级),若一直再比较度量值(华为cost)
7、优选从 EBGP学来的路由(EBGP>IBGP)。
8、优选AS内部IGP的Metric最小的路由。
9、优选 Cluster_List最短的路由。
10、优选Orginator_ID最小的路由。
11、优选Router_ID最小的路由器发布的路由。
12、优选具有 较小IP地址的邻居学来的路由。
如何操作?
遵循三步走
1、前缀列表抓路由
2、指定策略改属性
3、对邻居调用,分清除入向和出向
4.6 NAT
Cisco的SNAT(静态NAT 一对一)对应的是华为的静态nat
Cisco的DNAT(动态NAT 多对多)对应的是华为的动态nat
Cisco的PAT(一对多)对应的是华为的easy nat服务器 最常用!!!
Cisco的端口映射(使用不同的端口来标明不同的服务)对应的是华为的nat服务器
配置完成各个接口的IP后,Cisco要在边界路由器上定义内外网的方向;HUAWEI不需要定义,但是要直接在外网的接口上配置内外网的转换
注意:转换的外网不能使用接口的IP,使用的是与外网接口的IP相同的一个网段
4.7 静态动态优缺点
静态是手工配置的,存在局限性,即当网络的拓扑发生变化,网络改造或扩展时,静态路由需要全部重新写
动态是基于算法的,比如距离矢量型路由协议RIP就是基于贝尔曼福特算法;OSPF基于SPF(迪杰斯特拉算法);基于算法的很明显有智能、合理、逻辑等优点
4.8 vpn,mpls
解决数据层面的路由黑洞
控制层面:路由条目的生成;一条路由条目根据AD、metric是否足够小来决定能否加表
数据层面:按照路由条目转发数据包;数据包来到路由器上,路由器查表,看从哪个口转发
怎样匹配路由表?
1、与操作
将目的IP与所有的网络掩码进行"与操作"的结果若跟此掩码对应的网络号一致 则可以进行数据转发
2、最长匹配
使用最长的掩码进行数据转发
3、递归查找
动态方式学习到的路由是下一跳法;此时以下一跳IP为目的IP继续进行三步走;这么一个过程就叫做递归查找
**IPSec(Internet Protocol Security):**是一组基于网络层的,应用密码学的安全通信协议族。IPSec不是具体指哪个协议,而是一个开放的协议族。
IPSec VPN**:**是基于IPSec协议族构建的在IP层实现的安全虚拟专用网。通过在数据包中插入一个预定义头部的方式,来保障OSI上层协议数据的安全,主要用于保护TCP、UDP、ICMP和隧道的IP数据包。
ESP:50
AH:51
5、VLAN、交换机、生成树
5.1 VLAN
作用:用于解决广播风暴的一种协议级的轻量级技术,可以逻辑性的划分广播域,从而减小广播风暴的可能,范围;
优点:
1、减少广播风暴,广播流量,广播的产生
2、安全(配合Trunk干道的使用,大大提高安全性)
3、便于管理(不同楼层的部分有可能属于同一种业务,将交换机部署在不同的楼层划分VLAN)
5.2 交换机
作用
1、提供端口密度
2、无限延长传输距离 HUB对波进行失真,即对电流及进行了放大,还对波形进行了识别并恢复
3、隔离冲突域 背板有独立的交换信道
4、实现单播传输,即一对一传输
工作方式
基于源MAC地址学习,基于目标MAC地址转发,对于未知单播洪范
洪范情况:
1.广播、目标MAC地址为全F
2.组播(可能洪范-无组播部署时)
3.未知的单播
5.3 MAC地址表
存在的意义:
IP是逻辑寻址,为了找到一个范围;MAC是精确制导,为了在一个范围内找到那个精确主机
MAC地址表–>存与内存中
CAM表–>CAM芯片,做数据交换的速度非常快(做的是二元运算)
二元运算是什么?
使用CAM芯片对MAC地址表的内容进行匹配
能匹配
不能匹配
MAC给CAM同步,即让CAM芯片去计算匹配
MAC地址表:CAM表(VLAN ID + MAC地址 + 接口编号进行哈希运算后二进制显示)
什么是哈希运算?哈希算法是加密算法吗?
Hash算法就是散列函数,不是加密算法
常用 MD5 SHA-1 -128 -256 -512
特点:
1. 不等长输入,等长输出 (无论用多大的数据进行HASH,计算出来的都是等长的字符串)
2. 雪崩效应(源数据产生微小的变化,HASH运算后都会差异十分大)
3. 不可逆向运算(使用HASH运算后字符串不能逆向算出原始的数据)
加密算法有对称加密、非对称加密两种
加密算法三大核心:
1. Key值
2. 可以解密
3. 加密后的内容比源数据大
5.4 STP
10G万兆-----2
1G千兆--------4
100M百兆-----19
10M十兆-----100
端口角色
Blocking:不能收发BPDU,数据,被动等待20s(最大等待时间)进入下一状态
Listening:可以收发BPDU,不能收发数据,进行STP选举,被动等待一个forward delay 15s(转发延时)进入下一状态
Learning:可以收发BPDU,不能收发数据,可以学习BPDU中的源MAC地址(MAC地址学习状态),被动等待一个forward delay 15s进入下一状态
Forwarding:可以收发BPDU和数据,mac地址学习和生成树接口状态切换完成
端口状态
根端口:用于接收来自根的BPDU信息,只能存在于非跟网桥之上,并且一个交换机只能存在一个
指定端口:用于发送或转发BPDU信息,存在于每条链路中,一条只能存在一个指定端口,根网桥的所有接口全为指定端口
非指定端口(阻塞端口):逻辑上打破环路,即阻塞接口
选举过程
选举过程为:根网桥–>根端口–>指定端口–>非指定端口
BPDU字段
BID:16bit桥优先级(Bridge Priority)+48bitMAC地址;取值范围为0-65535,桥优先级默认为第15位为1,,就是32768(但是BID优先级数值必须为4096的倍数,范围也可称为0-61440)
为什么是4096的倍数?
BID优先级是由BID优先级(4bit)+VLAN ID(12bit)+MAC地址(48bit)
VLANID是2的12次方,即4096,所以步长为4096
5.5 RSTP边缘端口
BPDU Flags
Bit7:TCA Topology Change Acknowledge 拓扑变更确认
Bit6:Agreement 同意
Bit5:Forwarding 转发状态
Bit4:Learning 学习状态
Bit3 和 Bit2:Port Role端口角色
00:Unknown 未知
01:Alternate/Backup 替代端口/备份端口
10:Root Port 根端口
11:指定端口
Bit1:Proposal 请求
Bit0:TC Topology Change 拓扑变更
1,6 用来生成树选举
2,3 描述端口角色
4,5 描述端口状态
RSTP中定义的端口角色,但是这个功能十分的鸡肋
针对交换机的access接口,连接的是终端用户例如router、PC、server (非网桥,交换机)等等,这些不需要运行生成树的接口。
默认进入listening状态,等待30s进入转发状态.
边缘端口:edge port ,非trunking,access接口, 对于这种不做生成树选举的端口直接进入forwarding状态;但是需要手工开启
非边缘端口:nonedge port ,trunking 接口
<HUAWEI> system-view
[HUAWEI] interface gigabitethernet 0/0/1
[HUAWEI-GigabitEthernet0/0/1] stp edged-port enable
三、网络安全
1、什么是安全
1.1 网络安全
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。
2、虚拟化、云计算
2.1 云计算
云计算是计算能力,网络能力和安全能力的共享。是互联网服务的基础设施。
2.2 虚拟化
架构
寄居架构(Hosted Architecture)
在操作系统之上安装和运行虚拟化程序,依赖于主机操作系统对设备的支持和物理资源的管理
裸金属架构(“Bare Metal” Architecture)
直接在硬件上面安装虚拟化软件,再在其上安装操作系统和应用,依赖虚拟层内核和服务器控制台进行管理
通过虚拟化技术,将很多个软硬件资源虚拟成多个逻辑的独立资源;软件虚拟化,硬件辅助虚拟化,软件又可以分为全虚拟化和半虚拟化
堆叠(iStack)
特点:
1.简单的接口扩充,由主交换机去接管备交换机
2.比CSS技术差得多,一般做在低端交换机上
缺点:
升级、割接时会导致业务中断
意义:简化拓扑,简化管理,无环路分析
由于iStack在性能、切换上的缺陷;切换要满足内存级的切换,进而衍生出CSS
虚拟化:处于硬件与操作系统间的层,即通过虚拟化层将多台硬件集合起来(分布式);这个过程就叫做资源池化,即将所有的资源统一池化
资源池化意味着硬件资源的重新分配,按需,精确,
什么是内存级切换?
挂起就是一个典型的内存级的切换,挂起:把内存的数据放到硬盘中
纵向虚拟化
无线网络的标准:802.acg;所以以太网设备是不能转发无线的数据帧的
WLAN系统一般由AC(接入控制器)和AP(无线接入点)组成。
AP:为Access Point简称,一般翻译为“无线访问节点”,它是用于无线网络的无线交换机,也是无线网络的核心。
AC的概念:它是指无线接入控制服务器(AC), 接入控制器(AC) 无线局域网接入控制设备,负责把来自不同AP的数据进行汇聚并接入Internet。
详细:
AP(漫游)将数据帧给到交换机,交换机不能解封装,即要交给AC,AC解开后成为以太网帧,交给交换机,此时交换机进行正常的解封装
纵向虚拟化:
AC去管理AP,所有的用户认为所有的AP是一台设备;将其应用到交换机上,即AC是总的管理的交换机,统一化管理下属AP;可以理解为AC是大脑,AP是手,脚,等
架构
叶脊架构+trill
产生
产生于数据中心
不同于普通的企业网络,企业网更多的是纵向流量,而数据中心的更多的是横向流量
结构:数据中心的网络在核心层上横向铺设大量的交换机
3、常见的加密算法
常见的 对称加密 算法主要有 DES、3DES、AES 等
常见的 非对称算法 主要有 RSA、DSA 等
散列算法 主要有 SHA-1、MD5 等。
四、操作系统
1、Linux
Linux是一种自由和开放源码的类UNIX操作系统
一切皆文件
完全免费,具有开放性,
用户、多任务
良好的可移植性,良好的用户界面(命令界面,图形界面等)
1.1 操作命令
最常用:
ip a 查看ip地址
dhclient 地址请求
pwd 指出当前工作环境 print workdoing directory
su 切换到root用户并不切换环境(工作目录) switch user
su redhat 切换为用户身份,但不切换工作目录(工作环境)
kill -9 ID 结束相应的进程
touch 文件名 创建文件
mkdir 目录名 创建目录 -p parents 父目录 -v verbose 详细信息
ln 原文件 目标文件 创建硬链接 指向相同的索引节点号inode
ln -s 原文件 目标文件 创建软链接 快捷方式
Nano 文件名 编辑文件
cat 文件名 查看文件
rm -f -R 文件/目录的路径 -f强制删除,-R递归删除(将某个目录下的文件都删除)
df -h 查看磁盘分区
du -a /文件的绝对路径 查看文件分区
挂载:
mount 镜像 挂载点
umount 挂载点
文件/目录权限的修改:
read write execute
user group other
r w x
4 2 1
u g o
chmod -R u/g/o +/- r/w/x 文件/目录的绝对路径
-R是递归 即如果修改的是目录文件 则其下的所有文件都会被修改
文件/目录的所属修改:
uid gid
ID/name ID/name
chown -R uid:gid 文件/目录绝对路径
chgrp gid 文件/目录绝对路径
which 只想查看命令路径但是不想查看别名路径
\which ls
which --skip-alias ls
who 查看谁登陆到当前系统相关用户信息
-b 最近一次系统是什么时间启动的 tty本地虚拟终端
-d 显示死亡进程
-r 显示运行级别
w就是who是增强版的who(可以显示登录用户,以及在做什么)
详细:
文件/目录的复制与移动:
cp [命令选项] 源文件 目的文件
常用命令选项:
-f:强行复制文件或目录,不论目标文件或目录是否已存在
-i:覆盖既有文件之前先询问用户
-p:复制的时候保留文件原有的属性,时间戳等信息
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理
-a:归档复制,常用于备份 (-rp)
mv [命令选项] 源文件 目标文件
常用命令选项:
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理'。
查看目录文件:
命令格式:主命令 选项 参数(操作对象)
列出目录下的内容(list):ls
ls -l 以长列表方式列出 =ll
ls -r 逆序列出
ls -d 查看当前目录.
ls -ld 长列表列出当前目录的详细信息
ls -lh 显示目录或文件大小
ls -a 列出隐藏文件,包括.和..
ls -A 列出隐藏文件,不包括.和..
ls -i 显示文件索引节点号(inode)。一个索引节点代表一个文件,在linux中保存在磁盘分区 中的文件都给它分配一个编号,称为索引节点号inode。
man ls 查看ls的使用手册
enter键可以一行一行的翻,空格键可以一页一页的翻
按q键退出
文件查找:
find
-name 指定名字查找
-inum
-iname 指定名字进行查找忽略大小写
-user 查找属主为指定用户的文件# find /tmp -user redhat
-group 查找属组为指定组的文件
-uid
-gid
-nouser 查找没有属主的文件
-type TYPE(f d b c p s )# find / -type l ls
组合测试查找: 与( -a)或(-o)非(!)
find /tmp -nouser -o type f -ls
find /tmp -nouser -a type f ls
强大的工具 man手册
linux中使用man命令来查询命令的帮助文件,命令格式如下:
man [章节] command
常用命令如下:
d, Ctrl+D: 向文件尾部翻半屏;
u, Ctrl+U: 向文件首部翻半屏;
q: 退出;
#:跳转至第#行;
1G: 回到文件首部;
G:翻至文件尾部。
命令的帮助文件通常存放在/usr/share/man目录下。
man包含9个章节,章节用数字表示,分别是:
用户命令
系统调用
C库调用
设备文件及特殊文件
配置文件格式
游戏
杂项
管理类的命令
Linux 内核API
如果查询命令的时候不追加章节,则默认从第一个章节开始查询,以此类推,直到找到对应要查询的命令为止。
强大的vim vim大法好
安装软件
什么是yum?
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
1.2 无法开机
1、root用户密码忘记
进入系统时按‘e’进入挽救模式,然后将ro后的删除,改为rw,后加rd.break
chroot /sysroot/ ##切换到shell模式
echo xxxxxx | passwd --stdin root ##echo后面的为更改的root密码 touch /.autorelabel重启SElinux 两个exit重启
2、磁盘引导阶段,mbr主引导故障
由于是虚拟机,直接添加光驱并由光驱启动
注意:要更改启动选项,启动时进入光驱拯救模式
3、文件引导阶段
引导的文件丢失
内核文件丢失
系统镜像文件丢失
五、综合
1、电脑不能上网
1、分级定位-->确定是不能上内网还是外网;业务,区域,部门
2、物理硬件方面
无线,有线
网卡
驱动
网线
3、软件协议方面
查看有无被DHCP服务器分配到IP,是否过期,是否地址冲突
去网关192.168.1.1
去DNS 114.114.114.114
查看路由器是否工作正常,有无路由表,有无哪些策略把我的主机给过滤了
4、外部原因
运营商
解决:重新获取IP、将无线路由器重启,打电话询问运营商是否正常
2、qq能上,但是浏览器打不开网页如何解决
1、分级定位
2、物理硬件方面
驱动
网卡
3、DNS服务器的问题
重启路由器
在“运行”中执行ipconfig /flushdns来重建本地DNS缓存
4、浏览器的问题
重装浏览器
5、防火墙策略
6、感染病毒