一、OSI七层模型简介
二、OSI之物理层
三、OSI之数据链路层
四、OSI之网络层
五、OSI之传输层
六、OSI之应用层
七、ARP协议 网络层协议
八、ICMP 网络层协议
九、IP编址
十、IP路由基础
十一、距离矢量路由协议RIP
十二、链路状态路由协议OSPF
十三、交换网络基础
十四、VLAN
十五、ACL网络控制
十六、NAT网络地址转换
十七、网络管理DHCP
十八、广域网技术
十九、无处安放的知识点
二十、telnet远程登录
随记
MAC地址总共有48bit
前24bit是厂商标识符OUI(用于分辨由哪家厂商生产),后24bit由供应商分配
所有Mac地址具有唯一性
帧:帧头部+数据+FCS
| 帧头前面还有一个前导符,用于标识开始
帧头
目标Mac地址:6B,目的设备的Mac地址
源Mac地址:6B,发送方设备的Mac地址
type/length:2B
当值大于等于1536代表type字段(以太网二层帧)
| 用于标识上层(网络层)协议
| 0x0800:IP协议
| 0x0806:ARP
| 0x86DD:IPv6
当值小于等于1500代表length字段(802.3帧)
数据:0~1500B,上层数据内容
| MTU:最大传输单元=1500B(默认)
FCS:4B,帧校验,保证数据帧的完整性
最大数据帧长度:1518B(把上面的长度加起来)
最小数据帧长度:64B(规定的)
接口分割冲突域
所有设备在同一个广播域中
单播:第8bit为0
广播:48bit全F
| 广播是一种特殊的组播
组播:第8bit为1
IP头+(源IP地址+目的IP地址+)数据
IP头(长度20-60字节)
version:4bit,版本号,0100-IPv4,0110-IPv6
header Length:4bit,头部长度
TOS/DS:8bit,差分服务类型。前6bit,服务于QOS
| 优先级越高,越优先处理
total length:16bit,总长度
| 总长度—头部长度=数据长度
| 以下为数据的分片和分片重组
identification:16bit,标识符,用相同的字符来标记
flag:3bit
第1bit:保留
第2bit:DF位,置1=不需要分片,置0=需要分片
第3bit:MF位,置1=有更多分片,即当前分片不是最后一个,置0=当前分片为最后一个分片
fragment.Offset:13bit,分片偏移量,代表当前分片的第一个字节距离数据源第一个字节的偏移量
| 以上
TTL:生存时间,8bit,0~255,数据包每经过一台三层设备认为是一跳,数据包每经过一台三层设备TTL减1,一定程度上防止环路
protocol:协议号,8bit,用来标识上层(传输层)协议
| 6:TCP,17:UDP
header checksum:头部校验,16bit,校验头部信息的完整性,每经过一台三层设备校验值发生变化
S.IP:源IP地址,32bit
D.IP:目标IP地址,32bit
option:选项,长度可变
代表设备:路由器
分割广播域
源端口
目的端口
| 通过目的端口号来标识上层协议
| 即端口号用来区分不同的网络服务(应用层服务)
| FTP:21、20端口
| http :80端口(https :43端口,区别:http是用明文传输的,https是用密文传输的)
| Telnet :23端口
| SMTP :25端口
| (注:以上都属于TCP端口号,所以都是可靠协议)
序列号seq:TCP为每一个字节的数据分配一个序号
确认号ack:表示确认,接收报文序号+1=确认号
| 确认号是序列号加一
头部长度:标识当前报文头部长度有多长
Resv.:保留,即没有用到的
标志位
URG紧急位
| 置1生效,即当前报文中有一些数据需要紧急处理
| 置0不生效
ACK确认位
| 置1,确认号生效
PSH推送位
| 置1,有数据需要及时推送给上层即网络层处理
RST复位位
| 置1,当前连接中断,请求释放连接,重新建立连接
SYN请求位
| 请求建立连接,置1说明是个请求报文,希望我可以跟你建立起连接
FIN终止位
| 置1,请求终止连接
窗口大小:一次能够传输数据的大小,即用于流量控制
以下是保证TCP可靠传输的四个机制
| 三次握手、四次挥手、确认重传机制、滑动窗口机制
TCP建立连接的过程
三次握手(TCP通过三次握手建立可靠连接)
| 两种确认机制:一种是上面说的序列号加一,另一种是序列号直接变为你的确认号(可以理解为对你的确认表示确认)
TCP关闭连接
四次挥手
| 当我收到你的确认报文的时候才会终止连接
| 你发起终止连接请求,我回复确认收到,此时你才关闭连接,既然你不喜欢我则我也发送终止连接请求,你回复确认收到,然后我也关闭连接
TCP传输过程
确认重传机制
TCP滑动窗口机制
| 我的窗口大,你的窗口小,会导致我给你发的后面的报文被丢弃,我要每次都给你重传很累,所以我会改变我的窗口大小跟你一样
UDP:是一种面向无连接的传输层协议,传输可靠性没有保证
源端口
目的端口
| SNMP :161端口
长度:8字节
校验和:保证完整性
文件传输
FTP
| TCP的21、20
TFTP
| UDP的69
NFS
电子邮件
SMTP
远程登录
Telnet
| 端口号23
rlogin
网络管理
SNMP简单网络管理协议
名称管理
DNS域名解析
查看arp缓存表:arp -a
arp缓存表:查看得到目的主机IP地址对应的MAC地址
存在意义:主机封装的时候不知道目的Mac地址(目的IP地址是通过用户间接得到的),ARP的最终目的是完成数据的封装
| 即为了完成数据(数据链路层)封装
什么时候会运行ARP请求:当我的ARP缓存表中没有目的IP与Mac地址的映射关系时
ARP request请求报文:广播报文(目的Mac地址全F)
ARP reply响应报文:单播报文
ARP请求只能访问同网段
网关用来转发来自不同网段之间的数据包
所以若是不同网段通信 则以网关地址为目的IP地址
| 即
| 同网段通信(交换机):ARP请求 以目标主机的IP地址为目的IP发起请求
| 跨网段通信(路由器):ARP请求 以下一跳地址(网关的IP地址)为目的IP发起请求
由此引出ARP代理
ARP代理产生的条件
路由器要开启ARP代理功能
| 华为路由器默认关闭,可手动打开
代理设备需要有对应到达目标网络的路由信息
免费ARP:以自己的IP地址作为目的IP地址发起ARP请求(源IP=目的IP)
| 可用来探测IP地址是否冲突
什么情况发生免费ARP
1.设备IP地址发生变化的时候/设备获取到一个新的IP地址的时候
2.更新ARP缓存条目
收集各种网络信息、诊断和排除各种网络故障
ping | echo request/reply 报文 tracert | tracert显示数据包在网络传输过程中所经过的每一跳 | | icmp 超时消息,ICMP 目标不可达消息 | 1)ttl 逐次增加 | 2)UDP 端口比较大
是属于网络层的协议
调用网络层服务
同时还为网络层提供服务,为网络层提供一种差错消息告错的服务
差错报告消息
目标不可达消息:由于种种原因导致数据包无法传递到目标主机产生的报错
时间超时:防止环路
TTL超时
分片、分组超时
源站抑制:用于控制网络拥塞
重定向消息
查询消息
回显请求报文/应答
链路连通性测试
时间戳请求/应答
用户时钟同步
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
剩下的都是公有地址
127.0.0.0~127.255.255.255(本地)
0.0.0.0
255.255.255.255
主机位全置为0:网络地址
主机位全置为1:广播地址
目的:制造新网络
先判断当前网段实际需要多少个主机位
确定子网位
确定子网网络地址、广播地址、可用主机范围
无类域间路由CIDR
取前面一样的固定不变,后面的全部置为0
子网掩码作用是什么:标识网络位和主机位
选择最优路径
进行数据转发
直连条目
静态路由
要求管理员对网络环境足够熟悉
不适合中大型企业网络,配置繁琐/配置量大,消耗人员成本和时间成本
不消耗路由器进程资源,适合中小型网络
浮动静态路由:用于路由备份
| ip route-static 10.1.1.0/24 preference 100
| 这条是浮动路由(备份的为浮动)
动态路由
给予路由器自主学习路由条目,消耗路由器的资源进程
不需要手工配置
实现原则相对比较复杂
最长匹配原则
| 选掩码最长的,即越详细精确的
路由优先级
度量值
| 不同协议度量
按照更新时是否携带掩码
不携带掩码:有类路由协议
携带掩码:无类路由协议
按照更新的是“路由条目”还是链路状态信息
路由条目信息:距离矢量路由协议 RIP
| 把你的路由表上我没有的条目照抄过来
链路状态信息:链路状态路由协议 OSPF
| 学习到设备本身的信息,像带宽、cost等,自己根据学到的信息写路由表
按照作用范围划分
内部网关路由协议:IGP
| 运行在局域网内部,即运行在内网
外部网关路由协议:BGP
| 可以连接不同网络
路由条目逐跳更新,网络收敛速度慢
跳数限制,最大15跳,16跳认为网络不可达
| 收到16跳的路由信息会把这条叫做毒化路由
是一个有环的协议(即会产生环路)
只能识别跳数,不能识别带宽
更新请求request报文,收到请求的路由器发送response响应报文
每30秒发送路由更新信息
<R1>debugging rip 1 event //开启rip日志消息(日志事件)
<R1>debugging rip 1 packet
<R1>terminal debugging //将日志消息在配置界面显示
<R1>undo debugging all //关闭日志消息
更新时不携带掩码(有类路由协议
不支持VLSM、CIDR
不支持认证
默认自动汇总,不支持手动汇总
广播更新255.255.255.255
更新时携带掩码(无类路由协议
支持VLSM、CIDR
支持认证
默认自动汇总,支持手动汇总
| 关闭自动汇总功能
| 进rip 1,undo summary
广播或组播更新(默认组播224.0.0.9)
验证双方身份的合法性
明文认证/MD5
| rip au si cipher/plain
| cipher和plain是两个参数,plain在查看配置时能看到密码,cipher在查看配置时看不到密码
双方都需要配置认证,要求认证类型和认证密码必须一致,否则认证失败,条目无法学习
隐藏:最大跳数限制
水平分割:(默认开启)
路由器从某个接口学到的路由,不会从该接口再发回给邻居路由器(即当某个down掉时,A不会再把错误的路由信息再发给B)
| 进接口
| rip split-horizon
毒性反转:
指的是B那边的线路down掉后,B不会立即删除,而是把它的跳数置为16跳,并从原接收接口发给邻居路由器
| 进接口
| rip posion-reverse
| 水平分割和毒性反转同时启用时,只有毒性反转生效
触发更新:
指当路由信息发生变化时,立即向邻居设备发送触发更新报文,不用再等更新时间30s,即缩短了时间
metricin(进来的接口,进方向
| 进接口
| rip metricin 2 //收到时cost在原来的基础上加2
metricout
| 进接口
| rip metricout 2 //发送出去时cost变为2
|
input(允许接收rip报文,默认开启)
| 进接口
| undo rip input (配置该接口禁止接收rip报文)
output(允许发送rip报文,默认开启)
| 进接口
| undo rip output(配置该接口禁止发送rip报文)
静默接口/抑制接口
只接收rip报文,更新自己的路由表,但不发送rip报文
| rip 1
| silent- interface g0/0/1
优先级大于input和output
出接口上(一般条目由谁发出来就在谁上汇总
| rip summary- address 网段 掩码
关闭自动汇总
| rip 1
| undo summary
注:因为RIPv2的水平分割功能和自动汇总功能有冲突,所以默认情况下自动汇总功能失效
| 一种是把水平分割功能关掉
| 一种是开启强制汇总summary always
| LAS泛洪
| SPF算法
| 路由计算
建立完邻居关系的路由器会进行LSA(链路状态通告)泛洪
运行ospf并且相邻的路由器会建立邻居关系
路由器收到邻居泛洪的LSA会在本地组建属于自己的链路状态数据库(LSDB)
每台路由器基于自己的LSDB去计算出去往各个节点最优的路径并加入路由表中
邻居表(邻居关系/邻接关系)
链路状态数据库LSDB(拓扑)
路由表
[R1]ospf 1 router-id 1.1.1.1
display router id 查看全局router id
display ospf peer 查看ospf邻居关系、router id
reset ospf process 重置ospf进程
用来标识一整台路由器,点分十进制的形式表示(IP地址的格式)
手动配置最优
若存在逻辑接口,则使用逻辑接口中最大的IP地址作为router id
| 最大活跃的环回口地址(稳定性比较强)
若没有逻辑接口,则使用活跃物理接口的最大IP地址作为router id
| 最大活跃的物理地址
注:router id一旦生成是不支持抢占的,可以通过重置ospf进程来更新router id
| reset ospf pro
ospf 1 router-id 1.1.1.1
area 0
network 192.168.1.0 0.0.0.255(反掩码通告或精确通告都可以)
ospf报文封装在ip报文中,协议号为89
hello报文:用于建立、维护邻居关系
邻居关系:
所有配置ospf的相邻的路由器会建立邻居关系,在这个阶段不涉及LSA泛洪;当状态达到2-way状态的时候表示邻居关系建立
邻接关系:
(部分配置ospf的路由器)
协议号89
组播更新224.0.0.5/224.0.0.6
更新周期:30分钟(1800s)
路由接口优先级
| 优先级为0不参与DR/BDR的选举
| 优先级默认为1,最大值为255
RID大的优先选举为DR
| 所有路由器都会跟DR/BDR建立邻接关系
| 其他路由器DRother之间只建立邻居关系
一个广播域选举一个DR/BDR
邻居发现阶段(邻居关系)
down:初始状态
| 还没开启ospf或正在开启的那个瞬间
| attempt:非广播多路访问环境(NBMA)
init:初始化状态,双方发送hello报文
| 默认hello时间是10秒
2-way:双向通信,在接收到的hello报文中看到自己的RID,选举出DR、BDR
数据库同步阶段(邻接关系)
Exstart:预启动状态,交互空的DD报文,选举主(master)从(slave)关系,同步序列号(隐含的确认作用)
| RID大的会成为主路由器
Exchange:预交换状态,交互有内容的DD报文
| DD报文类似书本的目录信息,不详细
loading状态:加载状态,双方互相发送LSR报文,请求更详细的LSA,对方回复相应的LSU更新信息,收到LSU回复LSAck表示确认
full:达到同步,邻接关系建立成功
存放到LSDB,SPF算法计算最优路径,路由表
哪几类报文中包含LSA信息:LSR、LSU、LSAck、DD(有但不详细)
减小LSDB(链路状态数据库),方便管理
缓解网络动荡带来的问题
减少SPF计算,节约路由器资源
具备防环的作用
area0是骨干区域,其他区域都必须与此区域相连
广播
点到点
NBMA非广播多路访问
点到多点
认证类型/认证密码
hello时间/死亡时间
广播环境,掩码不一致
RID冲突
ospf接口开销=带宽参考值/带宽(参考值为100Mbit/s)
方法一
| 直接修改cost值
| 进接口
| ospf cost xx
方法二(不常用)
| 修改参考值
| ospf
| bandwidth- reference xxx
display ospf int g0/0/0 看hello时间
修改hello时间
| 进接口
| ospf timer hello 1~65535秒
修改接口优先级
| 进接口
| ospf dr-priority 0~255
目的Mac全为F
交换机无对应MAC地址表项——Mac地址表
端口接收到报文时——检查源Mac地址
Mac地址表有相应信息:
刷新时间(动态mac地址表项会老化,静态Mac地址表项不老化)
| 老化时间300s
Mac地址表无相应信息:
地址学习
端口转发报文时——检查目的Mac地址
目的Mac地址为全F:泛洪
存在目的Mac地址表项:转发
不存在目的Mac地址表项:泛洪
学习,转发,泛洪,更新,丢弃
收到打标签
发送拆标签
只转发允许发送列表中的
发送时
标签与端口pvid一样,拆掉转发
标签与端口pvid不一样,直接转发
收到时
有标签,转发到相应vlan
无标签,打上自己端口的pvid,转发到相应vlan
基于端口(常用)
基于mac地址
基于IP子网划分
基于协议
基于策略
dis vlan
vlan batch 10 to 20 批量创建vlan
port trunk pvid vlan 10 在trunk端口里配置pvid为10(平常可不配,两端都配上一致的pvid可抓到不打tag的数据包)
dis port vlan active
单臂路由(一个物理接口,划分多个虚拟子接口)
| int g0/0/0.1
| dotlq termination vid 10 //把该接口与vlan10进行关联(当该接口收到vlan10标签的报文时会拆掉标签,发送时打上标签)
| ip add(要先关联再配置IP地址,不然该IP地址不生效)
| arp broadcast enable //开启arp广播功能
三层交换(使用vlanif虚拟接口)
对数据包进行分类,不同类型不同处理
ACL可通过定义规则来允许或拒绝流量通过
核心技术是包过滤
基本ACL(2000-2999)
| 只能基于源IP地址匹配流量,不能基于目的IP、协议、端口等匹配流量
高级ACL(3000-3999)
| 可以基于源IP、目的IP、端口、协议号等匹配流量,较为灵活和精细
二层ACL(4000-4999)
rule-id:ACL条目编号,从小到大依次递增,默认以5为起始,以5为间隔
动作
permit
deny
source越精确越好
根据rule-id从小到大依次查询,一旦匹配上跳出过滤器
查询整张列表后未匹配上,华为路由器对该流量不做处理(未匹配上,正常转发)
acl 2000
rule 5 deny source 192.168.10.2 0.0.0.0 编号为5,拒绝来自192.168.10.2的流量
int g0/0/0
traffic-filter outbound/inbound 2000 调用出方向/进方向的acl
(配错了就进acl视图undo rule 5)
能控制telnet的原因是它走的是vty虚拟通道
user-in vty 0 4
traffic-filter outbound/inbound 2000或acl 2000 inbound
acl 3000
rule 5 permit tcp source 192.168.10.1 0 destination 112.18.1.2 0 destination-port gt www/80
rule 10 deny tcp 拒绝其他tcp业务
源NAT技术,转换的是源IP地址,一对一映射,需要管理员手工配置
地址池
设定访问外网的流量(通过ACL实现)
NAPT端口映射
(网络地址端口转换技术),即除了IP地址的映射,还有一个端口的映射
| s:192.168.1.1:1025 —>s:200.10.10.1:2843
| s:192.168.1.2:1028 —>s:200.10.10.1:2844
| 即可以给多个用户共用一个公有地址
这种方式叫它Easy IP,将多个内部地址映射到同一个公有地址的不同端口,即不用配置地址池,直接用网关出接口的IP
配置
静态NAT
| dis nat static
动态NAT
| nat address-group 1 200.10.10.1 200.10.10.200即表示这个地址池有1~200个地址可用
| acl 2000
| rule 5 permit 192.168.1.0 0.0.0.255
| 进网关出接口
| nat outbound 2000 address-group 1 no-pat(no-pat即不使用端口转换)调用acl
|
| dis nat server
easy ip
| acl 2000
| rule 5 permit source 192.168.10.0 0.0.0.255
| int g0/0/1在出口调用acl
| nat outbound 2000
|
| dis nat outbound 查看nat使用的类型
nat服务器
| 进公网接口(还是出接口)
| nat server protocol tcp global current- interface(即使用当前接口当作公网地址,也可以自己随便写一个)www inside 192.168.10.1(内网地址) www/80(开放www服务)
NAT的作用
私有地址到公有地址的映射
| 节约公网地址的使用,使得私网主机可以访问公共网络
静态NAT
私有地址—公有地址,一对一映射(手动配置)
一个内网映射一个公网地址
动态NAT
地址池
定义访问公网的流量
NAPT
允许多个内网的主机映射到一个公网地址的不同端口
属于动态NAT
easy ip
是NAPT里的一种特殊应用
接口地址池(主机直接连着dhcp服务器)
| dhcp enable //开启dhcp功能,让它变成dhcp服务器
| 进接口
| dhcp select interface //开启接口地址池
| 以下选敲
| dhcp server dns-list 10.1.1.2 //告诉主机它的dhcp服务器是10.1.1.2
| dhcp server excluded-ip-address
全局地址池
| dhcp enable
| ip pool pool2
| network 网段 24
提供了认证、授权、计费三种安全功能
| 路由器不支持计费
认证:验证用户是否可以获得网络访问的权限
授权:授权用户可以访问或使用网络上的哪些服务
计费:记录用户使用网络资源的情况
配置
| aaa
| local- user Lyn password cipher xxx //创建用户
| local- user Lyn service-type telnet
链路控制协议LCP阶段:用来建立、拆除和监控PPP数据链路
网络层控制协议NCP阶段:用于对不同的网络层协议进行连接建立和参数协商
| LCP
| 认证
| NCP
PAP,认证关系由被认证方发起,在被认证方上配置user和密码
| 明文传输
CHAP,认证关系由认证方发起
| 使用challenge加密密码信息
aaa
local-user GOK password xxx
dialer-rule
dialer-rule 1 ip permit 允许所有IP的流量让我拨号
int dialer 1 进入拨号口
dialer user 用户名(一定要是PPPoE服务器上存在的用户)
dialer-group 1
dialer bundle 1
二层交换机分割冲突域
路由器分割广播域和冲突域
集线器Hub属于同一个冲突域同一个广播域
逻辑接口
比较稳定
int loopback 0
IP address 1.1.1.1 24
就创好了
最长匹配原则
优先级
cost值
eg1
| 192.168.1.1 0.0.0.1 匹配的是什么范围的流量
| 答:只能匹配到192.168.1.1和192.168.1.0的流量
eg2
| 192.168.1.1 0.0.0.254
| 答:192.168.1.1~255
eg3
| 192.168.1.0 0.0.0.254
| 答:192.168.1.2/24 ~192.168.1.254/24 这个范围内的偶数动作
user-interface vty 0 4
| 进入vty虚拟通道
user privilege level 15
| 设置用户登录权限为level 15
authentication-mode password
set authentication password cipher 密码
| 设置用户登录模式为密码模式,登录密码为密码
telnet 192.168.12.1(系统视图下)
| 在R2上远程登录R1
` 一些当初学习初级网络时随手记下的笔记,可能有点杂乱。