课本:
目录
- 🕒 1. 概述
- 🕘 1.1 GNS3
- 🕘 1.2 Wireshark
- 🕒 2. PPP协议
- 🕒 3. VLAN技术
- 🕒 4. STP技术
- 🕒 5. IPV6
- 🕒 6. 路由表
- 🕒 7. RIP协议
- 🕒 8. OSPF协议
- 🕒 9. BGP协议
- 🕒 10. 应用层
- 🕒 11. GNS3综合实验
🕒 1. 概述
网络协议分析的方法:静态的代码分析、动态的流量分析
🕘 1.1 GNS3
IOS 的命令行接口(Command-Line Interface,CLI)是配置、监控和维护 Cisco 设备的最主要用户接口。
CLI 有多种模式:
命令模式 | 访问方法 | 提示符 | 退出方法 | 用途 |
---|---|---|---|---|
User EXEC(用户模式) | 连接设备 | Router> | 输入命令logout 或quit | 改变终端设置 执行基本测试 显示系统信息 |
Privileged EXEC(特权模式) | 在User EXEC 模式下输入命令enable (若设置了enbale密码,还需输入密码) | Router# | 输入命令disable 或exit ,退回到UserEXEC模式 | 执行show 和debug 命令向设备复制镜像文件 重启设备 管理设备配置文件 管理设备文件系统 |
Global configuration(全局配置模式) | 在 Privileged EXEC 模式下输入命令configure terrminal (简写conf t ) | Router(config)# | 输入命令exit 或end ,或按Ctrl+Z 组合键,退回到Privileged EXEC 模式 | 设置设备全局属性 |
Interface configuration(接口配置模式) | 在Global configuration模式下输入命令interface (简写int ) | Router(config-if)# | 输人命令exit 退回到Global Configuration模式输人命令 end ,或按Ctrl+Z组合键,退回到Privileged EXEC模式 | 设置指定端口属性 |
常见指令:
1、设置路由器接口地址及掩码
R1#conf t # 进入特权模式
R1(config)#int f0/1 # 指定接口
R1(config-if)#ip add 10.0.1.1 255.255.255.0 # IP地址及掩码
R1(config-if)#no shut # 开启接口
2、设置PC的IP地址、掩码及默认网关
PC-1> ip 10.0.0.2/24 gateway 10.0.0.1 # /24就是地址掩码255.255.255.0,10.0.0.1是默认网关
3、保存相关配置
R1#write
PC-1> save
4、在PC1上pingPC2(10.0.1.2):
PC-1> ping 10.0.1.2
🕘 1.2 Wireshark
Wireshark分组嗅探器包括两部分:分组捕获器、分组分析器
Wireshark的过滤器:捕获过滤器、显示过滤器
显示过滤器:可以用比较运算符比较协议字段值,用比较结果作为过滤条件;可以用逻辑运算符连接多个比较表达式,构成复杂的显示过滤器。
🕒 2. PPP协议
现在全世界使用得最多的数据链路层协议是PPP
PPP包含三大部分内容:
- LCP(链路控制协议):用于建立、配置、维护和终止PPP链路;
- NCP(网络控制协议):用于建立、配置网络层协议;
- PAP(口令认证协议)和CHAP(基于挑战的握手认证协议):用于认证,可选用。
在建立、保持和终止PPP链路的过程中,PPP链路需要经过5个阶段:
- 链路不可用阶段(Dead)
- 链路建立阶段(Establish)
- 认证阶段(Authenticate)
- 网络层协议阶段(Network)
- 链路终止阶段(Terminate)
LCP的三大功能:链路配置、链路终止、链路维护
链路建立和配置流程:
- 当需要建立逻辑链路时,发起方发送Configure-Request(配置请求)报文,用于协商参数;
- 若接收方收到的每一个配置选项的值都可接受,则回送Configure-Ack(配置确认)报文;
- 若收到的配置选项是可以识别,但部分配置选项参数不能接受,则回送Configure-Nak(配置否认)报文,并标示出需要重新协商的配置选项;
- 若配置选项不可识别或不可接受,则回送Configure-Reject(配置拒绝)报文。
链路终止流程:
- Terminate-Request(终止请求)报文
- Terminate-Ack(终止应答)报文
链路维护流程:
- Code-Reject(代码拒绝)
- Protocol-Reject(协议拒绝)
- Echo-Request(回复请求)和Echo-Reply(回复应答)
- Discard-Request(丢弃请求)
NCP是一组协议,其中对应IP协议用的是IPCP协议,其配置选项有:多个IP地址、IP压缩协议、IP地址。
PAP协议:口令认证协议;优点:PAP的整个认证流程非常简单;缺点:认证只能在链路建立阶段进行,身份和口令是以明文进行传输,安全性低。
CHAP协议:基于挑战的握手认证协议;CHAP协议可以在链路建立和数据通信阶段多次使用,进行认证,同时安全性较高。
CHAP协议认证过程是挑战应答,认证方产生一个随机数发送给被认证方,被认证方收到随机数后加上自己的身份和口令信息,使用事先协商的算法进行加密处理,默认使用MD5。将加密结果送给认证方,认证方把本地储存的用户口令提取出来,加上用户身份信息和之前产生的随机数,同样进行加密处理,将加密处理的结果与收到的结果进行对比,相同即认证成功,不同即认证失败。
PPP协议实验:
配置R1:
R1#conf t
R1#username R2 password 1234
.... # 配置接口IP
R1(config)#int s0/0
# 设置s0/0口作为DCE设备,为DTE设备提供时钟以便同步,时钟速率为128000(bit/s),注意仅DCE路由需要配置
R1(config-if)#clock rate 128000
R1(config-if)#enc ppp
R1(config-if)#ppp authen chap
R1(config-if)#no shut
🕒 3. VLAN技术
VLAN技术出现的原因:维护人员无法控制二层交换,导致传统以太网存在网络安全性差、网络效率低和业务扩展能力差的问题。VLAN可以隔离广播风暴。
为了实现转发控制,在待转发的以太网帧中添加 VLAN标签 ,然后设定交换机端口对该标签和帧的处理方式。VLAN帧是按照IEEE 802.1q进行封装的。
VLAN的划分方式:基于端口(最常用)、基于MAC地址、基于协议、基于子网、基于策略(详细介绍)
VLAN 技术的出现将链路分成:
- 干道链路(Trunk Link):连接交换机和交换机的链路。通过的帧一般为带Tag 的VLAN 帧,也允许通过不带Tag 的以太网帧。
- 接入链路(Access Link):连接用户主机和交换机的链路。通过的帧为不带Tag 的以太网帧。
交换机的端口类型有以下两种:Access、Trunk
- 接入端口(Access):接收到的都是Untagged 帧,接收帧时,给帧加上Tag 标记。发送帧时,将帧中的Tag 标记剥掉。
- 干道端口(Trunk):在发送帧时,如果VLAN ID 跟默认VLAN ID 相同,则剥离VLAN;如果跟默认VLAN ID 不同,则直接发送。在接收帧时,如果没有Tag,则标记上该端口的默认VLAN ID;如果有Tag,则判断该干道端口是否允许该VLAN 帧进入,如果不允许进入,则丢弃该帧。
实现VLAN间通信的办法:单臂路由(共用一个物理接口、使用不同的物理接口)、三层交换机
🕒 4. STP技术
生成树STP提出的原因:避免路由环路。STP通过构造一棵无环的树的方法达到裁剪冗余的环路的目的,同时实现链路备份和路径最优化。
在二层网络中用交换机ID(或者网桥ID)来描述网络中的交换机。一个交换机ID由两部分组成,前16 位表示的是交换机的优先级,后48 位表示的是交换机的MAC 地址。
根交换机是交换机ID最小的交换机。
根端口是指从一个非根交换机到根交换机总开销最小的路径所经过的本地端口。这个最小的总开销值称为交换机的根路径开销,是该路径上所有出端口的端口开销总和。
STP为每个网段选出一个指定端口,指定端口到根交换机总开销最小。根交换机的所有端都是指定端口。根端口的对端端口一定是指定端口DP。
除了根端口和指定端口外的端口为预备端口,根端口进而指定端口为转发状态,预备端口为阻塞状态。
生成树的工作原理:生成树计算的第一步是选举根交换机。根交换机的选举基于交换机ID。交换机ID最小的成为根交换机。生成树生成的第二步是为每个非根交换机选举根端口。根端口到根交换机的路径开销最小。生成树生成的第三步是为每个网段选出一个指定端口。指定端口到根交换机的路径开销最小。在完成根端口和指定端口的选举后,交换机上所有的既非根端口,也非指定端口的端口,统称为预备端口。为防止环路,STP 会将交换机上的预备端口进行逻辑阻塞,进而生成无环的生成树。
例子:
STP实验:
IOU1#show spanning-tree # 查看生成树的情况
# 更改IOU3的优先级,使其成为根网桥
IOU3(config)#spanning-tree vlan 1 priority 4096
🕒 5. IPV6
IPv6 地址是一个 128
位的二进制数。
IPv6 地址分为三种类型:
- 单播地址:传统的点对点通信。
- 多播地址:一点对多点的通信,广播看作多播的一个特例。
- 任播地址:任播的目的站是一组计算机,但数据报在交付时只交付离发送方最近(由路由协议度量)的一个计算机。
IPv6分组和IPv4分组的区别:IPv6分组是固定首部+载荷的构成,IPv4分组是固定首部+选项字段+载荷的构成。IPv6 把原来 IPv4 首部中选项的功能都放在扩展首部中,并将扩展首部留给路径两端的源站和目的站的主机来处理。
IPv6定义了6种扩展首部:
- 逐跳选项
- 路由选择
- 分片
- 目的选项
- 认证
- 封装安全有效载荷
- 无下一扩展首部
从IPv4到IPv6的过渡技术:双协议栈、隧道技术
ICMPv6报文分为两大类:
- 差错报文:目的不可达、分组超大消息、超时、参数错误等;
- 信息报文:回送请求和响应。
🕒 6. 路由表
路由表为分组转发提供了到达目的地址的“最佳路径”。
路由项的基本信息:<目的网络地址,下一跳地址,转发接口,路由代价>
Router#show ip route
Codes: C-connected, S-static, R-RIP, D-EIGRP,
EX-EIGRP external,O-OSPF, IA-OSPF inter area
E1-OSPF external type 1,E2-OSPF external type 2,
*-candidate default
Gateway of last resort is 10.5.5.5 to network 0.0.0.0
172.16.0.0/24 is subnetted, 1 subnets
C 172.16.11.0 is directly connected, serial1/2
O 172.22.0.0/16 [110/20] via 10.3.3.3,01:03:01, Serial1/2
S* 0.0.0.0/0 [1/0] via 10.5.5.5
- “C”代表该路由信息来源是直连网段。
- “O”代表该路由信息来源是通过OSPF动态路由协议。
- “S”代表该路由信息来源是静态路由。
- “172.22.0.0/16”表示其目标网段为172.22.0.0,其子网掩码为255.255.0.0。
- “[110/20]”就是指管理距离/度量值,OSPF的管理距离为110,其度量值为20
- “10.3.3.3”是指数据包要想到达“172.22.0.0/16”的下一个转发路由器端口地址(下一跳)。
- “01:03:01”说明动态路由己学到该路由,且该路由已经存在1小时3分1秒。
- “Serial1/2”说明IP数据包将由本地路由Serial1/2接口发送出去。
路由表中的路由信息主要通过三种方式获得:添加直连路由、添加静态路由、计算动态路由
路由管理距离:是路由器用来评价路由信息可信度的一个指标,定义了路由来源的优先级别。从0到255的整数值。等级值越小,协议的信任度越高。
管理距离值:直连<静态<EBGP<OSPF<ISIS<RIP<IBGP
路由的度量值:度量一条路径的代价,衡量路径的好坏的依据,如跳数、带宽、负载等
静态配置路由实验:
# R2上配置到192.168.1.0/24和192.168.2.0/24网段的静态路由
R2(config)#ip route 192.168.1.0 255.255.255.0 10.1.1.1 # 目的网段+掩码+接口/IP
R2(config)#ip route 192.168.2.0 255.255.255.0 10.1.2.2
# R1和R3上配置默认路由。
R1(config)#ip route 0.0.0.0 0.0.0.0 f0/0
R3(config)#ip route 0.0.0.0 0.0.0.0 f0/1
🕒 7. RIP协议
RIP协议:是一种基于距离向量算法的动态路由选择协议。优点:简单。缺点:适用于小型互连网。以跳数为度量值,16
表示网络不可达。
RIP每隔30秒与邻居路由器交换各自的路由表。
RIP1 和 RIP2 使用 UDP520
端口发送或接收 RIP 报文。
RIP存在计数到无穷的问题,解决方案有:水平分割(简单与带毒性)、触发更新。
RIP 协议报文由固定首部和路由项列表组成。
🕒 8. OSPF协议
OSPF:开放最短路径优先协议,一种基于链路状态选路算法的路由协议。
OSPF的基本思想:将互联网络抽象成一个有向加权图,路由器监测所连接网络的链路状态,并与其他路由器交互,进而构造出当前网络的链路状态数据库,并计算从自己出发到任一网络的最佳路由,从而建立起自己的路由表。
OSPF把自治系统划分成若干个区域,每个区域有一个 32
位的编号,可用类似于 IP 地址的点分十进制法表示,区域 0.0.0.0
是一个特殊的区域:主干区域,其他区域称为非主干区域。
根据作用不同,路由器被划分为 4 种类型:内部路由器、区域边界路由器、主干路由器、AS 边界路由器
OSPF 支持 5 种网络类型:
- 点到点网络:看作两条有向边。
- 虚拟链路:也看作一个点到点网络。
- 点到多点网络:看作一组点到点网络。
- 广播网络
- 非广播多址接入网络
OSPF定义了5种类型的报文:
- HELLO 报文:路由器发现邻居并监测与邻居链路的状态;在广播网络或 NBMA 网络上选举指定路由器(DR)和备份指定路由器(BDR)
- 数据库描述报文:与邻接路由器交换链路状态数据库摘要
- 链路状态请求报文:向邻接路由器请求具体的链路状态
- 链路状态更新报文:向邻接路由器发送具体的链路状态
- 链路状态确认报文:对接收到的链路状态通告进行确认,以实现可靠的链路状态传输
DR和BDR选举(仅广播网络和非广播多址接入网络需要):通过Hello包进行选举。优先级最高的路由器成为 DR;优先级次高的路由器成为 BDR。优先级为0
的路由器没有选举资格。若两个路由器的优先级相同,标识符(路由器ID)更大的胜出。DR和BDR一旦选定,即使OSPF区域内新增优先级更高的路由器,DR和BDR也不重新选举。
OSPF的工作流程:邻居关系的建立—>邻接关系的建立—>主从关系的确认—>双方交互各自的链路状态数据库摘要—>向对方请求链路状态并更新自己的数据库—>若链路状态变换,更新自己的数据库,向邻接路由器发送链路状态更新报文,通知变化的链路状态(洪泛)
🕒 9. BGP协议
自治系统内部的路由协议,IGP:RIP、OSPF;
自治系统之间的路由协议,EGP:BGP
BGP边界网关协议,一种自治系统间的选路协议,在 AS 之间交换网络的可达性信息,管理员可以通过应用一些路由控制策略进行路由控制
自治系统中,运行 BGP 协议的路由器称为 BGP 发言人,用一个 4
字节的 BGP 标识符进行标识;
建立连接的两个 BGP 发言人互称为对等发言人,位于一个AS的为内部对等发言人(IBGP),位于不同 AS为外部对等发言人(EBGP)
BGP 发言人之间用 TCP 作为传输协议,端口号为179
两个 BGP 发言人建立 TCP 连接后:
- 发送打开报文,协商路由信息交换参数。
- 发送更新报文,交换各自的 BGP 路由表。
- BGP 发言人之间周期性交换保活报文,以检测对方是否活跃。
- 协议运行过程中若发生错误,BGP 发言人向对方发送通知报文。
BGP4 定义了 4 种报文:
类型 | 报文名称 |
---|---|
1 | 打开(OPEN)报文 |
2 | 更新(UPDATE)报文 |
3 | 通知(NOTIFICATION)报文 |
4 | 保活(KEEPALIVE)报文 |
BGP的路径属性:公认必遵、公认任意、可选过渡、可选非过渡
- Origin属性:该属性定义了BGP 路径信息源头,实际上也就是BGP 发言人 产生BGP 路由的方式。有3 种起源属性值:
IGP、EGP和Incomplete
。 - AS_PATH属性:BGP 路由在传输的路径中所经历的AS 的列表。在BGP进行选路时,AS_PATH越短越被选择。
- Next Hop属性:到达某个目的网段的下一跳信息
- BGP 在向EBGP 邻居通告路由时,或者将本地发布的BGP 路由通告给IBGP 邻居时,下一跳属性是本地BGP 与对端连接的端口地址。
- 对于多路访问的网络(广播网或NBMA 网络),下一跳会根据实际接口情况变化
- BGP 在向IBGP 邻居通告从其他EBGP 得到的路由时,不改变路由的下一跳属性,而直接传递给IBGP 邻居。
- 本地优先级属性:路由器接收到去往同一目的地的多条路由,可以根据本地优先级属性值的高低进行路由选举。值越高,链路越优先。
- MED属性:用于控制数据流怎样进入本AS,MED值越小,链路越优先。
属性名 | 公认/可选 | 必遵/任意 | 过渡/非过渡 |
---|---|---|---|
Origin | 公认 | 必遵 | — |
As_PATH | 公认 | 必遵 | — |
Next hop | 公认 | 必遵 | — |
Local-Preference | 公认 | 任意 | — |
MED | 可选 | — | 非过渡 |
Community | 可选 | — | 过渡 |
🕒 10. 应用层
🕒 11. GNS3综合实验
题目:一个公司有总部和分部,现在想实现公司总部和公司分部之间的网络互通。AS65100是公司分部,AS65101是运行商网络,AS65102是公司总部。R1、R2属于AS65101,R3、R4属于AS65100,R5、R6、R7属于AS65102。为了实现互通,R1和R3、R2和R5采用直连物理接口建立EBGP邻居关系,R1和R2之间采用各自的Looback 0 接口建立IBGP邻居关系,同时R1、R2、R3和R4运行RIP
,R5、R6、R7运行OSPF
。并且R1的f0/1口、R2的f0/0口、R3的f0/0口、R5的f0/1口的为被动口。
其中,PC1、PC2、PC3、PC4是模拟四个部门的PC机,分属于VLAN10、20、30和40,需要在R4和R7上配置单臂路由实现连通。
设备名 | 端口 | ip地址 | 掩码 | AS ID |
---|---|---|---|---|
R1 | f0/1 | 192.168.3.1 | 255.255.255.0 | 65101 |
f0/0 | 192.168.4.1 | 255.255.255.0 | ||
loopback0 | 1.1.1.1 | 255.255.255.0 | ||
R2 | f0/1 | 192.168.4.2 | 255.255.255.0 | 65101 |
f0/0 | 192.168.5.2 | 255.255.255.0 | ||
loopback0 | 2.2.2.2 | 255.255.255.0 | ||
R3 | f0/1 | 192.168.2.3 | 255.255.255.0 | 65100 |
f0/0 | 192.168.3.3 | 255.255.255.0 | ||
R4 | f0/0 | 192.168.2.4 | 255.255.255.0 | 65100 |
f0/1.1 | 192.168.1.4 | 255.255.255.0 | ||
f0/1.2 | 192.168.9.4 | 255.255.255.0 | ||
R5 | f0/1 | 192.168.5.5 | 255.255.255.0 | 65102 |
f0/0 | 192.168.6.5 | 255.255.255.0 | ||
f1/0 | 192.168.7.5 | 255.255.255.0 | ||
R6 | f0/1 | 192.168.6.6 | 255.255.255.0 | 65102 |
R7 | f0/0 | 192.168.7.7 | 255.255.255.0 | 65102 |
f0/1.1 | 192.168.8.7 | 255.255.255.0 | ||
f0/1.2 | 192.168.10.7 | 255.255.255.0 |
设备名 | 端口 | ip地址 | 掩码 | 网关 |
---|---|---|---|---|
PC1 | e0 | 192.168.1.1 | 255.255.255.0 | 192.168.1.4 |
PC2 | e0 | 192.168.9.1 | 255.255.255.0 | 192.168.9.4 |
PC3 | e0 | 192.168.8.1 | 255.255.255.0 | 192.168.8.7 |
PC4 | e0 | 192.168.10.1 | 255.255.255.0 | 192.168.10.7 |
设备 | 接口 | 接口类型 | 所属VLAN |
---|---|---|---|
IOU1 | E0/0 | Trunk | |
E0/1 | Access | VLAN 10 | |
E0/2 | Access | VLAN 20 | |
IOU2 | E0/0 | Trunk | |
E0/1 | Access | VLAN 30 | |
E0/2 | Access | VLAN 40 |
实验步骤:
一、路由器与PC基本配置(接口IP、掩码及网关)
二、 配置VLAN(以IOU1为例)
IOU1(config)#vlan 10,20 # 创建VLAN
IOU1(config-vlan)#exit
# 配置设备端口为 Access 类型
IOU1(config)#int e0/1
IOU1(config-if)#sw ac vl 10
IOU1(config)#int e0/2
IOU1(config-if)#sw ac vl 20
# 配置设备端口为 Trunk 类型
IOU1(config)#int e0/0
IOU1(config-if)#sw tr enc dot1q
IOU1(config-if)#sw mo tr
IOU1(config-if)#sw tr al vlan all # all是全部通过,如果需要单独设置通过VLAN则改为相应VLAN号即可
# 在IOU1上查看VLAN
IOU1#show vlan
IOU1#show int e0/0 sw
三、 配置单臂路由(以R4为例)
# 配置子接口IP
R4(config)#int f0/1.1
R4(config-if)#enc dot1q 10 # 封装dot1q协议
R4(config-if)#ip add 192.168.1.4 255.255.255.0
R4(config)#int f0/1.2
R4(config-if)#enc dot1q 20
R4(config-if)#ip add 192.168.9.4 255.255.255.0
注:如果是三层交换机模拟路由则需要开启路由功能,之后操作与上述单臂路由相同。
IOU1(config)#ip routing
四、 配置RIP(以R1为例)
R1(config)#router rip # 启动RIP
R1(config-router)#ver 2 # 指定RIP的版本
R1(config-router)#no auto # 关闭路由聚合
R1(config-router)#net 192.168.3.0 # 指定直连网段(注意不需要掩码)
R1(config-router)#net 192.168.4.0 # 指定直连网段
R1(config-router)#net 1.1.1.0 # 环回口网段
R1(config-router)#pass f0/1 # 指定被动接口(通常是AS的边界)
五、 配置OSPF(以R6为例)
R6(config)#router ospf 1 # 启动OSPF路由协议(记得加进程号)
# 指定直连网段
R6(config-router)#net 192.168.6.0 0.0.0.255 area 10 # 0.0.0.255是通配符掩码,网络地址掩码的反码
注:如果需要观察OSPF的DR/BDR选举进程,可以通过重启已经选举出来的DR/BDR进程的方法
R6#clear ip ospf process # 重启OSPF进程
六、配置BGP(以R1为例)
R1(config)#router bgp 65101 # 启用 BGP路由协议
# 配置BGP邻居,其中R2为IBGP对等体
R1(config-router)#nei 2.2.2.2 remote 65101
R1(config-router)#nei 2.2.2.2 update loopback0 # 用loopback接口地址作为IBGP邻居标识时,必须指定邻居的更新源接口。
# 配置R3为EBGP对等体
R1(config-router)#nei 192.168.3.3 remote 65100
# 路由重分布
R1(config-router)#redis rip
# 如果是OSPF,写法为redis ospf 1
R1#show ip route # 查看路由表
R1#show ip bgp # 查看BGP路由表
R1#show ip bgp neighbors # 查看BGP邻居路由器
七、 路由重分布
R3(config)#router rip
R3(config-router)#redis bgp 65100 metric 5 # 跳数为5
R5(config)#router ospf 1
R5(config-router)#redis bgp 65102 # 将BGP进程的信息重分布到OSPF进程
八、测试连通性
❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页