计算机网络实验

本实验由重庆交通大学计算机曙光2001班杨宇航完成

1、前言

​ 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。

​ 本计算机网络实验教程由验证性、Wireshark 和 Cisco Packet Tracer 实验等三个部分组成,可以让我们掌握基础的计算机网络基础,依次基础对网络协议进行抓包分析,最后可以通过模拟实验进行进一步模拟重现。

2、验证性实验

2.1、ipconfig

ipconfig是调试计算机网络的常用命令,可使用它显示计算机中网络适配器的IP地址、子网掩码及默认网关。

直接使用ipconfig会显示简略的网络连接配置信息,加上参数(/all)可以显示详细信息。同时还有其他的参数可以通过ipconfig /?来查看使用方法。

ipconfig

以太网适配器 以太网:

连接特定的 DNS 后缀 . . . . . . . :

本地链接 IPv6 地址. . . . . . . . : fe80::46ec:8dcc:b426:e466%9

自动配置 IPv4 地址 . . . . . . . : 169.254.177.32

子网掩码 . . . . . . . . . . . . : 255.255.0.0

默认网关. . . . . . . . . . . . . :

实作一

ipconfig /all

Windows IP 配置

主机名 . . . . . . . . . . . . . : LAPTOP-ROV6QNJT

主 DNS 后缀 . . . . . . . . . . . :

节点类型 . . . . . . . . . . . . : 混合

IP 路由已启用 . . . . . . . . . . : 否

WINS 代理已启用 . . . . . . . . . : 否

以太网适配器 以太网:

连接特定的 DNS 后缀 . . . . . . . :

描述. . . . . . . . . . . . . . . : Realtek PCIe GbE Family Controller

物理地址. . . . . . . . . . . . . : 98-FA-9B-CA-5C-4C

DHCP 已启用 . . . . . . . . . . . : 是

自动配置已启用. . . . . . . . . . : 是

本地链接 IPv6 地址. . . . . . . . : fe80::46ec:8dcc:b426:e466%9(首选)

自动配置 IPv4 地址 . . . . . . . : 169.254.177.32(首选)

子网掩码 . . . . . . . . . . . . : 255.255.0.0

默认网关. . . . . . . . . . . . . :

DHCPv6 IAID . . . . . . . . . . . : 110688923

DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-25-13-0F-94-98-FA-9B-CA-5C-4C

TCPIP 上的 NetBIOS . . . . . . . : 已启用

Windows IP 配置::

主机名:本机PC的hostname,主机名指得是网络上设备的名称,主机名即计算机名,是用来标识计算机在“网上邻居”里是身份的,这样其他用户在网上邻居里就可以找到想要查看的计算机。 主DNS后缀:DNS后缀是用来解析主机名用的。默认是为空的,也就是使用本地解析。若此项不为空,会在主机名后自动添加此项所指定的后缀,此时便需要通过DNS服务器进行解析。 节点类型:在因特网中,每台主机和路由的每个接口都必须拥有一个全球唯一的IP地址。但这些地址不能以随意的方式自由选择,一个接口的IP地址的组成部分需要由其所连接的子网来决定。网络设备上的接口可设为access接入,trunk中继,hybrid混合三种类型,接口设为哪一种类型取决于相应接口的用途。 IP路由已启用:路由是把信息从源穿过网络传递到目的的行为,在路上,至少遇到一个中间节点。路由通常与桥接来对比,在粗心的人看来,它们似乎完成的是同样的事。它们的主要区别在于桥接发生在OSI参考协议的第二层(链接层),而路由发生在第三层(网络层)。这一区别使二者在传递信息的过程中使用不同的信息,从而以不同的方式来完成其任务。“否”表示该机未提供路由服务。 Wins代理已启用:与DNS一样,是用来将主机名解析为IP地址的。

以太网适配器 以太网:

连接特定的DNS后缀:网卡对应的DNS服务器帮助解析IP。此处为空,说明本地的连接没有DNS服务器。 描述:网卡的品牌型号。 物理地址:以太网适配器(网卡)的物理地址。 DHCP已启用:DHCP是动态分配IP的协议,IP自动获取时会启用。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。 自动配置已启用:同上。 本地链接 IPv6 地址:IPv6表示法的IP地址%后面的9是网络号的个数。 自动配置IPv4 地址:本地在局域网内的IP地址。 子网掩码:用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在广域网上。将其转化成二进制,前面为1的部分表示网络号,后面为0的部分表示主机号。 默认网关:默认网关IP地址,当一台主机找不到可用的网关,便会将数据包发给默认指定的网关,由默认网关来处理数据包。 DHCPv6 IAID:身份关联标识符。 DHCPv6 客户端 DUID:DHCP 唯一标识符 。 TCPIP 上的 NetBIOS:当安装TCP/IP协议时,NetBIOS 也被Windows作为默认设置载入,我们的计算机也具有了NetBIOS本身的开放性。

实作二

2.2、ping

PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序 。ping 是工作在 TCP/IP 网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态。

实作一

ping www.cqjtu.edu.cn

正在 Ping www.cqjtu.edu.cn [218.70.34.236] 具有 32 字节的数据:

来自 218.70.34.236 的回复: 字节=32 时间=4ms TTL=58

来自 218.70.34.236 的回复: 字节=32 时间=5ms TTL=58

来自 218.70.34.236 的回复: 字节=32 时间=4ms TTL=58

来自 218.70.34.236 的回复: 字节=32 时间=6ms TTL=58

218.70.34.236 的 Ping 统计信息:

数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

最短 = 4ms,最长 = 6ms,平均 = 4ms

ping命令默认会发送四个ICMP的数据包进行探测网络情况。 字节:表示ICMP报文中测试数据的字节数量。 时间:表明数据包发送往返行程的时间,综合四个包将对其进行计算。 TTL:生存时间,指定IP包被路由器丢弃之前允许通过的最大网段数量。 “已发送=4”:发送了4个包;“已接收=4”:收到4个回应包;“丢失=0”:丢包数为0。

实作二

ping /?

用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]

[-r count] [-s count] [[-j host-list] | [-k host-list]]

[-w timeout] [-R] [-S srcaddr] [-c compartment] [-p]

[-4] [-6] target_name

选项:

-t Ping 指定的主机,直到停止。

若要查看统计信息并继续操作,请键入 Ctrl+Break;

若要停止,请键入 Ctrl+C。

-a 将地址解析为主机名。

-n count 要发送的回显请求数。

-l size 发送缓冲区大小。

-f 在数据包中设置“不分段”标记(仅适用于 IPv4)。

-i TTL 生存时间。

-v TOS 服务类型(仅适用于 IPv4。该设置已被弃用,

对 IP 标头中的服务类型字段没有任何

影响)。

-r count 记录计数跃点的路由(仅适用于 IPv4)。

-s count 计数跃点的时间戳(仅适用于 IPv4)。

-j host-list 与主机列表一起使用的松散源路由(仅适用于 IPv4)。

-k host-list 与主机列表一起使用的严格源路由(仅适用于 IPv4)。

-w timeout 等待每次回复的超时时间(毫秒)。

-R 同样使用路由标头测试反向路由(仅适用于 IPv6)。

根据 RFC 5095,已弃用此路由标头。

如果使用此标头,某些系统可能丢弃

回显请求。

-S srcaddr 要使用的源地址。

-c compartment 路由隔离舱标识符。

-p Ping Hyper-V 网络虚拟化提供程序地址。

-4 强制使用 IPv4。

-6 强制使用 IPv6。

-t:持续不断的ping目标主机,直到使用终止或统计:

-a:将IP地址解析为主机名: -n: 可以设定要发送的回显请求数 -l :可以设定要发送的缓冲区大小 ping www.cqjtu.edu.cn -n 5 -l 100

正在 Ping www.cqjtu.edu.cn [218.70.34.236] 具有 100 字节的数据:

来自 218.70.34.236 的回复: 字节=100 时间=4ms TTL=58

来自 218.70.34.236 的回复: 字节=100 时间=7ms TTL=58

来自 218.70.34.236 的回复: 字节=100 时间=4ms TTL=58

来自 218.70.34.236 的回复: 字节=100 时间=19ms TTL=58

来自 218.70.34.236 的回复: 字节=100 时间=5ms TTL=58

218.70.34.236 的 Ping 统计信息:

数据包: 已发送 = 5,已接收 = 5,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

最短 = 4ms,最长 = 19ms,平均 = 7ms

​ 可以看出发送的包数变为了指定的5个,传输的字节也变为了指定的100字节。

-i:设置生存时间,即TTL超期时间,允许的最大跳数。 本机访问www.cqjtu.edu.cn需要跳转7次,所以当设置生存时间<7时会告知:TTL传输中过期 ping www.cqjtu.edu.cn -i 6

正在 Ping www.cqjtu.edu.cn [218.70.34.236] 具有 32 字节的数据:

来自 222.177.128.234 的回复: TTL 传输中过期。

来自 222.177.128.234 的回复: TTL 传输中过期。

来自 222.177.128.234 的回复: TTL 传输中过期。

来自 222.177.128.234 的回复: TTL 传输中过期。

218.70.34.236 的 Ping 统计信息:

数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),

将生存时间设置为7: ping www.cqjtu.edu.cn -i 7

正在 Ping www.cqjtu.edu.cn [218.70.34.236] 具有 32 字节的数据:

来自 218.70.34.236 的回复: 字节=32 时间=4ms TTL=58

来自 218.70.34.236 的回复: 字节=32 时间=6ms TTL=58

来自 218.70.34.236 的回复: 字节=32 时间=6ms TTL=58

来自 218.70.34.236 的回复: 字节=32 时间=5ms TTL=58

218.70.34.236 的 Ping 统计信息:

数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

最短 = 4ms,最长 = 6ms,平均 = 5ms

-r:在记录路由字段中记录传出和返回数据包的路由,探测经过的: ping www.cqjtu.edu.cn -n 1 -r 9

正在 Ping www.cqjtu.edu.cn [218.70.34.236] 具有 32 字节的数据:

来自 218.70.34.236 的回复: 字节=32 时间=22ms TTL=58

路由: 172.19.2.1 ->

183.64.62.162 ->

222.176.15.130 ->

222.176.89.45 ->

222.177.128.233 ->

218.70.34.238 ->

218.70.34.236 ->

218.70.34.236 ->

222.177.128.234

218.70.34.236 的 Ping 统计信息:

数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

最短 = 22ms,最长 = 22ms,平均 = 22ms

-w: 设定等待回复的超时时间: ping www.baidu.com -w 1

正在 Ping www.a.shifen.com [14.215.177.38] 具有 32 字节的数据:

来自 14.215.177.38 的回复: 字节=32 时间=35ms TTL=54

请求超时。

来自 14.215.177.38 的回复: 字节=32 时间=37ms TTL=54

来自 14.215.177.38 的回复: 字节=32 时间=88ms TTL=54

14.215.177.38 的 Ping 统计信息:

数据包: 已发送 = 4,已接收 = 3,丢失 = 1 (25% 丢失),

往返行程的估计时间(以毫秒为单位):

最短 = 35ms,最长 = 88ms,平均 = 53ms

可以看到其中有一个包,因为等待回复时间超过1ms 而请求超时了。 -4:强制使用IPv4协议。-6:强制使用IPv6协议。

补充:可使用ping命令测试网络连通性

测试本机网络设置是否正确:使用ipconfig /all观察本地网络设置是否正确。测试本机网络软件硬件工作状态:ping 127.0.0.1,127.0.0.1 回送地址Ping回送地址是为了检查本地的TCP/IP协议有没有设置好。测试本子网内部工作状态:ping 本子网另一主机ip,Ping本机IP地址,这样是为了检查本机的IP地址是否设置有误。测试本子网出口工作状态:ping 本子网网关ip,这样的是为了检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常。测试目的IP连通状态:ping 目的ip,Ping远程IP地址,这主要是检查本网或本机与外部的连接是否正常。

2.3、tracert

TRACERT (Trace Route 的组合缩写),也称为路由追踪,该命令行程序可用于跟踪 Internet 协议 (IP) 数据包传送到目标地址时经过的路径。

tracert /?

用法: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout]

[-R] [-S srcaddr] [-4] [-6] target_name

选项:

-d 不将地址解析成主机名。

-h maximum_hops 搜索目标的最大跃点数。

-j host-list 与主机列表一起的松散源路由(仅适用于 IPv4)。

-w timeout 等待每个回复的超时时间(以毫秒为单位)。

-R 跟踪往返行程路径(仅适用于 IPv6)。

-S srcaddr 要使用的源地址(仅适用于 IPv6)。

-4 强制使用 IPv4。

-6 强制使用 IPv6。

实作一

了解到某计算机如 www.baidu.com 中间经过了哪些节点(路由器)及其它状态

tracert www.baidu.com

通过最多 30 个跃点跟踪

到 www.a.shifen.com [14.215.177.39] 的路由:

1 2 ms 2 ms 2 ms 10.60.255.254 [10.60.255.254]

2 11 ms 3 ms 4 ms 172.19.2.2 [172.19.2.2]

3 3 ms 3 ms 20 ms 183.64.62.161

4 4 ms 5 ms 5 ms 222.176.89.65

5 4 ms 5 ms * 222.176.6.89

6 * * * 请求超时。

7 * * * 请求超时。

8 33 ms * * 113.96.4.46

9 30 ms 32 ms 78 ms 94.96.135.219.broad.fs.gd.dynamic.163data.com.cn [219.135.96.94]

10 27 ms 27 ms 27 ms 14.29.121.190

11 * * * 请求超时。

12 * * * 请求超时。

13 27 ms 38 ms 27 ms 14.215.177.39

跟踪完成。

通过网站 http://ip.cn 查看这些节点位于何处,追踪过程如下:

本机网关:10.60.255.254 => 部分内网(172.19.2.2) => 中国 重庆 重庆市 电信(222.176.89.65) => 中国 广东省 广州市 电信(14.215.177.39)

最左侧一列:标明在所使用的宽带上,到达目标网络所经过的节点编号。 中间三列:单位是ms,是表示我们连接到每个路由节点的速度,返回速度和多次链接反馈的平均值。 最后一列:每个路由节点对应的IP,可通过网站 http://ip.cn 查看这些节点位于何处。 *****:在第6个路由节点上,返回消息是超时,这表示这个路由节点和当前我们使用的宽带,是无法联通的。

实作二

据此可以分析出qige.io的IP地址,各ISP地区、名称、丢包率、发送测试包数量、最后返回的包往返行程的估计时间、平均时间、最好时间等等。

问题一: tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。步骤如下:

tracert首先发出TTL值为1的ICMP数据包,当到达路径上第一个路由器时,路由器会将TTL值减1。此时TTL值为0,该路由器将此数据包丢弃,向源地址返回一个ICMP超时通知。 当tracert收到该数据包,获得了这个路径上的第一个路由器的地址。此时tracert再发送另一个TTL为2的数据包,第一个路由器会将此数据包转发给第二个路由器,当TTL值为0时,第二个路由器也会返回一个超时通知,tracert得到第二个路由器地址。 Tracert每次发出数据报时便会将TTL加1,发现下一个路由器。这个动作一直重复,直到到达目的地或者确定目标主机不可到达为止到达目的IP后,目标主机并不返回超时报文。 Tracert发送数据报时,会选择一个一般应用程序不会使用的号码来做端口(3000以上)。当到达目的地后,目标主机返回一个ICMP port unreachable(端口不可达)的消息。当tracert收到这个消息后,就知道目的地到达了。 问题二: 前几个节点是本机连接到互联网所必须经过的节点,比如本机的网关等 问题三: 号是超时,没有返回任何时间信息,所以用号来代替。也有可能是因为路由器设置了拒绝ping攻击,所以路由器不理会收到的所有ICMP报文,所以收不到返回信息。于是电脑因一直没等到返回信息,便认为是返回超时,于是显示了*****号。

2.4、ARP

ARP(Address Resolution Protocol)即地址解析协议,是用于根据给定网络层地址即 IP 地址,查找并得到其对应的数据链路层地址即 MAC地址的协议。 ARP 协议定义在 1982 年的 RFC 826。

实作一

arp -a 该命令可以查看当前的arp缓存

arp -a

接口: 169.254.177.32 --- 0x9

Internet 地址 物理地址 类型

169.254.255.255 ff-ff-ff-ff-ff-ff 静态

224.0.0.22 01-00-5e-00-00-16 静态

224.0.0.251 01-00-5e-00-00-fb 静态

239.255.255.250 01-00-5e-7f-ff-fa 静态

255.255.255.255 ff-ff-ff-ff-ff-ff 静态

接口: 10.61.52.46 --- 0xe

Internet 地址 物理地址 类型

10.60.29.22 00-74-9c-9f-40-13 动态

10.60.45.66 00-74-9c-9f-40-13 动态

10.60.54.42 00-74-9c-9f-40-13 动态

10.60.54.78 00-74-9c-9f-40-13 动态

10.60.55.74 00-74-9c-9f-40-13 动态

10.60.56.166 00-74-9c-9f-40-13 动态

10.60.71.22 00-74-9c-9f-40-13 动态

10.60.92.22 00-74-9c-9f-40-13 动态

10.60.97.74 00-74-9c-9f-40-13 动态

10.60.116.106 00-74-9c-9f-40-13 动态

10.60.133.50 00-74-9c-9f-40-13 动态

10.60.171.186 00-74-9c-9f-40-13 动态

10.60.180.186 00-74-9c-9f-40-13 动态

10.60.238.230 00-74-9c-9f-40-13 动态

10.60.248.178 00-74-9c-9f-40-13 动态

10.60.253.206 00-74-9c-9f-40-13 动态

10.60.255.254 00-74-9c-9f-40-13 动态

10.61.17.90 00-74-9c-9f-40-13 动态

10.61.22.202 00-74-9c-9f-40-13 动态

10.61.32.222 00-74-9c-9f-40-13 动态

10.61.33.98 00-74-9c-9f-40-13 动态

10.61.33.242 00-74-9c-9f-40-13 动态

10.61.38.42 00-74-9c-9f-40-13 动态

10.61.41.54 00-74-9c-9f-40-13 动态

10.61.60.86 00-74-9c-9f-40-13 动态

10.61.143.186 00-74-9c-9f-40-13 动态

10.61.162.170 00-74-9c-9f-40-13 动态

10.61.255.255 ff-ff-ff-ff-ff-ff 静态

224.0.0.22 01-00-5e-00-00-16 静态

224.0.0.251 01-00-5e-00-00-fb 静态

224.0.0.252 01-00-5e-00-00-fc 静态

239.255.255.250 01-00-5e-7f-ff-fa 静态

255.255.255.255 ff-ff-ff-ff-ff-ff 静态

接口: 192.168.202.1 --- 0x17

Internet 地址 物理地址 类型

192.168.202.254 00-50-56-eb-0a-5a 动态

192.168.202.255 ff-ff-ff-ff-ff-ff 静态

224.0.0.22 01-00-5e-00-00-16 静态

224.0.0.251 01-00-5e-00-00-fb 静态

224.0.0.252 01-00-5e-00-00-fc 静态

239.255.255.250 01-00-5e-7f-ff-fa 静态

255.255.255.255 ff-ff-ff-ff-ff-ff 静态

接口: 192.168.56.1 --- 0x1b

Internet 地址 物理地址 类型

192.168.56.254 00-50-56-ee-78-2a 动态

192.168.56.255 ff-ff-ff-ff-ff-ff 静态

224.0.0.22 01-00-5e-00-00-16 静态

224.0.0.251 01-00-5e-00-00-fb 静态

224.0.0.252 01-00-5e-00-00-fc 静态

239.255.255.250 01-00-5e-7f-ff-fa 静态

255.255.255.255 ff-ff-ff-ff-ff-ff 静态

可以看到当前的ARP中已经有部分IP的缓存地址,如本机的全局广播和网关等。

arp -d * :该命令可以删除所有的ARP缓存。我们先通过该命令清除所有的arp缓存。

arp -d *

apr -a

接口: 169.254.177.32 --- 0x9

Internet 地址 物理地址 类型

224.0.0.22 01-00-5e-00-00-16 静态

接口: 10.61.52.46 --- 0xe

Internet 地址 物理地址 类型

10.60.238.230 00-74-9c-9f-40-13 动态

10.60.255.254 00-74-9c-9f-40-13 动态

10.61.17.90 00-74-9c-9f-40-13 动态

224.0.0.22 01-00-5e-00-00-16 静态

接口: 192.168.202.1 --- 0x17

Internet 地址 物理地址 类型

224.0.0.22 01-00-5e-00-00-16 静态

接口: 192.168.56.1 --- 0x1b

Internet 地址 物理地址 类型

224.0.0.22 01-00-5e-00-00-16 静态

接着

原因:只有确定了目标IP地址对应的MAC地址时我们的请求才能通过数据链路层正确发送出去,所以在使用ping命令去访问一个IP地址时,首先会查看本地的缓存中是否含有该IP地址对应的MAC地址:

如果有,则可以查出其对应的硬件地址,将此硬件地址写入MAC帧,在通过局域网将次MAC帧发往此硬件地址。如果没有,将会调用ARP协议,广播ARP请求分组,询问谁是目的IP,然后根据回应自动存储相应地址到本地缓存。ARP高速缓存中的项目是动态的,每当发送一个指定地点的数据报且高速缓存中不存在当前项目时,ARP便会自动添加该项目。

实作二

arp /?:查看arp的所有帮助命令

arp /?

显示和修改地址解析协议(ARP)使用的“IP 到物理”地址转换表。

ARP -s inet_addr eth_addr [if_addr]

ARP -d inet_addr [if_addr]

ARP -a [inet_addr] [-N if_addr] [-v]

-a 通过询问当前协议数据,显示当前 ARP 项。

如果指定 inet_addr,则只显示指定计算机

的 IP 地址和物理地址。如果不止一个网络

接口使用 ARP,则显示每个 ARP 表的项。

-g 与 -a 相同。

-v 在详细模式下显示当前 ARP 项。所有无效项

和环回接口上的项都将显示。

inet_addr 指定 Internet 地址。

-N if_addr 显示 if_addr 指定的网络接口的 ARP 项。

-d 删除 inet_addr 指定的主机。inet_addr 可

以是通配符 *,以删除所有主机。

-s 添加主机并且将 Internet 地址 inet_addr

与物理地址 eth_addr 相关联。物理地址是用

连字符分隔的 6 个十六进制字节。该项是永久的。

eth_addr 指定物理地址。

if_addr 如果存在,此项指定地址转换表应修改的接口

的 Internet 地址。如果不存在,则使用第一

个适用的接口。

示例:

> arp -s 157.55.85.212 00-aa-00-62-c6-09.... 添加静态项。

> arp -a .... 显示 ARP 表。

实作三

问题

在实作三中,为何缓存中常常有网关的信息?

因为缓存中存储的是主机曾经访问过的记录,访问其他地址首先需要找到网关,因此缓存中会存在网关的信息。 我们将网关或其它计算机的 arp 信息设置为静态有什么优缺点?

优点:静态分配IP地址是指给每一台计算机都分配一个固定的IP地址,便于管理,特别是在根据IP地址限制网络流量的局域网中,以固定的IP地址或IP地址分组产生的流量为依据管理,可以免除在按用户方式计费时用户每次上网都必须进行的身份认证的繁琐过程,同时也避免了用户经常忘记密码的尴尬。 缺点:合法用户分配的地址可能被非法盗用,不仅对网络的正常使用造成影响,同时由于被盗用的地址往往具有较高的权限,因而也容易给合法用户造成损失和潜在的安全隐患。 什么是 ARP 欺骗,发生ARP 欺骗后会有什么后果,我们该如何进行防范?

定义:ARP欺骗,又称ARP毒化或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。 后果:ARP是以广播的方式发送ARP请求的,攻击者可以发送大量的“ARP请求包”,阻塞正常的网络带宽,使局域网中有限的网络资源,被这些无用的广播信息所占用,造成网络拥堵。ARP没有安全认证机制,局域网内的所有主机是建立在互相信任的基础上的,攻击者可以发送错误的“IP地址/MAC地址”的映射关系。只要攻击者持续不断地发出伪造的“ARP请求包”,就能更改目标主机“本地ARP缓存表”中的IP地址/MAC地址条目,造成网络中断或者中间人攻击。 防范措施:最理想的防制方法是网上内的每台计算机的ARP一律改用静态的方式,不过这在大型的网上是不可行的,因为需要经常更新每台计算机的ARP表。另外一种方法,例如DHCP snooping,网上设备可借由DHCP保留网络上各计算机的MAC地址,在伪造的ARP数据包发出时即可侦测到。有一些软件可监听网络上的ARP回应,若侦测出有不正常变动时可发送邮箱通知管理者。

2.5、DHCP

DHCP(Dynamic Host Configuration Protocol)即动态主机配置协议,是一个用于 IP 网络的网络协议,位于 OSI 模型的应用层,使用 UDP 协议工作,主要有两个用途:

用于内部网或网络服务供应商自动分配 IP 地址给用户用于内部网管理员对所有电脑作中央管理

简单的说,DHCP 可以让计算机自动获取/释放网络配置。

实作一

使用 ipconfig/release 命令释放自动获取的网络配置:

ipconfig/release

以太网适配器 VMware Network Adapter VMnet1:

连接特定的 DNS 后缀 . . . . . . . :

本地链接 IPv6 地址. . . . . . . . : fe80::acf2:2e81:72d:3ec2%27

默认网关. . . . . . . . . . . . . :

以太网适配器 VMware Network Adapter VMnet8:

连接特定的 DNS 后缀 . . . . . . . :

本地链接 IPv6 地址. . . . . . . . : fe80::4c01:d1db:c12d:f5ca%23

默认网关. . . . . . . . . . . . . :

以太网适配器 以太网:

连接特定的 DNS 后缀 . . . . . . . :

本地链接 IPv6 地址. . . . . . . . : fe80::46ec:8dcc:b426:e466%9

自动配置 IPv4 地址 . . . . . . . : 169.254.177.32

子网掩码 . . . . . . . . . . . . : 255.255.0.0

默认网关. . . . . . . . . . . . . :

以太网适配器 以太网 2:

媒体状态 . . . . . . . . . . . . : 媒体已断开连接

连接特定的 DNS 后缀 . . . . . . . :

无线局域网适配器 WLAN:

连接特定的 DNS 后缀 . . . . . . . :

本地链接 IPv6 地址. . . . . . . . : fe80::da05:7ea8:59fd:2d6d%14

默认网关. . . . . . . . . . . . . : fe80::1%14

使用 ipconfig/renew 命令重新获取:

DHCP工作原理:使用客户/服务器模式。需要IP地址的主机在启动时就向DHCP服务器广播发送发现报文,这时该主机就成为DHCP客户。本地网络上所有主机都能收到此广播报文,但只有DHCP服务器才回答此广播报文。DHCP服务器先在其数据库中查找该计算机的配置信息。若找到则返回找到的信息,若找不到则从服务器的IP地址池中取一个地址分配给该计算机。DHCP服务器的回答报文称为提供报文。

问题

如果你没能成功的释放,请思考有哪些可能的原因并着手进行解决?

可能权限不够,因此无法释放IP地址。解决办法:使用管理员身份运行cmd。 可能适配器配置为静态,则其IP已修复,无法从DHCP服务器获取IP。解决方法:将适配器设置由静态改为动态。 在Windows系统下,如果由于某种原因计算机不能获取 DHCP 服务器的配置数据,那么Windows将会根据某种算法自动配置为 169.254.x.x 这样的 IP 地址。显然,这样的 IP 以及相关的配置信息是不能让我们真正接入 Internet 的,为什么?既然不能接入 Internet,那么Windows系统采用这样的方案有什么意义?

这是Windows操作系统为了防止主机脱网,为网卡设置169.254.x.x的保留IP。此时就算由于某种原因计算机不能获取 DHCP 服务器的配置数据时,他们还通过保留地址还可以互相通讯。自动配置的IP地址和信息只是短暂性的解决计算机不能获取 DHCP 服务器的配置数据的问题,要真正的接入Internet还需要本身计算机的正确IP地址。 经常的,在一个固定地方的网络配置我都喜欢采用 静态/手动配置,而不是动态 DHCP 来进行。你能想到是什么原因吗?

动态IP需要在连接网络时自动获取IP地址以供用户正常上网,而静态IP是ISP在装机时分配给用户的IP地址,可以直接连接上网,不需要获取IP地址,该IP在ISP装机时会划分一个IP地址给你,让计算机在连接网络时不再自动获取网络地址,避免了网络连接上的困扰。

2.6、netstat

​ 无论是使用 TCP 还是 UDP,任何一个网络服务都与特定的端口(Port Number)关联在一起。因此,每个端口都对应于某个通信协议/服务。

​ netstat(Network Statistics)是在内核中访问网络连接状态及其相关信息的命令行程序,可以显示路由表、实际的网络连接和网络接口设备的状态信息,以及与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络服务运行状况。

实作一

Windows 系统将一些常用的端口与服务记录在 C:\WINDOWS\system32\drivers\etc\services 文件中,请查看该文件了解常用的端口号分配。 其中可以看到我们熟知的一些服务对应端口,比如:

* ftp 对应tcp 21端口

* ssh 对应tcp 22端口

* http 对应tcp 80端口

* https对应tcp/udp 443端口

* ...

实作二

使用 netstat -an 命令,查看计算机当前的网络连接状况。

netstat -an

活动连接

协议 本地地址 外部地址 状态

TCP 0.0.0.0:80 0.0.0.0:0 LISTENING

TCP 0.0.0.0:135 0.0.0.0:0 LISTENING

TCP 0.0.0.0:445 0.0.0.0:0 LISTENING

TCP 0.0.0.0:902 0.0.0.0:0 LISTENING

TCP 0.0.0.0:912 0.0.0.0:0 LISTENING

TCP 0.0.0.0:2343 0.0.0.0:0 LISTENING

TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING

TCP 0.0.0.0:5040 0.0.0.0:0 LISTENING

TCP 0.0.0.0:7680 0.0.0.0:0 LISTENING

TCP 0.0.0.0:11200 0.0.0.0:0 LISTENING

TCP 0.0.0.0:16422 0.0.0.0:0 LISTENING

TCP 0.0.0.0:20192 0.0.0.0:0 LISTENING

TCP 0.0.0.0:49664 0.0.0.0:0 LISTENING

TCP 0.0.0.0:49665 0.0.0.0:0 LISTENING

TCP 0.0.0.0:49666 0.0.0.0:0 LISTENING

TCP 0.0.0.0:49667 0.0.0.0:0 LISTENING

TCP 0.0.0.0:49668 0.0.0.0:0 LISTENING

TCP 0.0.0.0:49686 0.0.0.0:0 LISTENING

TCP 0.0.0.0:50290 0.0.0.0:0 LISTENING

TCP 0.0.0.0:59110 0.0.0.0:0 LISTENING

TCP 0.0.0.0:59111 0.0.0.0:0 LISTENING

TCP 10.61.52.46:139 0.0.0.0:0 LISTENING

TCP 10.61.52.46:7680 10.60.45.66:56100 TIME_WAIT

TCP 10.61.52.46:50889 20.198.162.76:443 ESTABLISHED

TCP 10.61.52.46:50896 20.198.162.76:443 ESTABLISHED

TCP 10.61.52.46:50916 113.96.18.253:14000 ESTABLISHED

...

-a:显示所有连接。

-n:当不附加”-n"选项时,它显示的是本地计算机的netbios名字+端口号。而加了"-n"选项后,它显示的是本地IP地址+端口号。

2.7、DNS

DNS(Domain Name System)即域名系统,是互联网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 TCP 和 UDP 的 53 号端口。

实作一

Windows 系统将一些固定的/静态的 DNS 信息记录在 C:\WINDOWS\system32\drivers\etc\hosts 文件中,如我们常用的 localhost 就对应 127.0.0.1 。查看该文件看看有什么记录在该文件中。

实作二

解析过的 DNS 记录将会被缓存,以利于加快解析速度。请使用 ipconfig /displaydns 命令查看。我们也可以使用 ipconfig /flushdns 命令来清除所有的 DNS 缓存。

ipconfig /displaydns

Windows IP 配置

datac.imeitools.com

----------------------------------------

记录名称. . . . . . . : datac.imeitools.com

记录类型. . . . . . . : 1

生存时间. . . . . . . : 26

数据长度. . . . . . . : 4

部分. . . . . . . . . : 答案

A (主机)记录 . . . . : 119.91.67.107

记录名称. . . . . . . : flow.dnspod.net

记录类型. . . . . . . : 1

生存时间. . . . . . . : 26

数据长度. . . . . . . : 4

部分. . . . . . . . . : 其他

A (主机)记录 . . . . : 112.80.181.45

记录名称. . . . . . . : flow.dnspod.net

记录类型. . . . . . . : 1

生存时间. . . . . . . : 26

数据长度. . . . . . . : 4

部分. . . . . . . . . : 其他

A (主机)记录 . . . . : 120.241.130.98

使用 ipconfig /flushdns 命令来清除所有的 DNS 缓存

ipconfig /flushdns

Windows IP 配置

已成功刷新 DNS 解析缓存。

实作三

使用 nslookup qige.io 命令,将使用默认的 DNS 服务器查询该域名:

nslookup qige.io

服务器: UnKnown

Address: fe80::1

使用 CloudFlare(1.1.1.1)或 Google(8.8.8.8) 的全球 DNS 服务器来解析:

nslookup qige.io 8.8.8.8

服务器: dns.google

Address: 8.8.8.8

非权威应答:

名称: qige.io

Addresses: 2606:4700:3032::ac43:8f35

2606:4700:3033::6815:272e

104.21.39.46

172.67.143.53

问题

使用插件或自己修改 hosts 文件来屏蔽广告,思考一下这种方式为何能过滤广告?如果某些广告拦截失效,那么是什么原因?你应该怎样进行分析从而能够成功屏蔽它?

我们可以通过自己修改hosts来过滤广告,基础原理其实就是在文件中添加该广告链接,并且指定一个IP地址(通常为本机地址),因为hosts文件优先级是高于DNS服务器,这样浏览器解析该广告链接时,优先hosts文件,这样我们就相当于更改了该链接本来的IP地址,从而使该链接失效。 如果拦截失败,可能是广告内容是嵌入到网页中的。

2.8、cache

cache 即缓存,是 IT 领域一个重要的技术。我们此处提到的 cache 主要是浏览器缓存。

浏览器缓存是根据 HTTP 报文的缓存标识进行的,是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。

实作一

打开 Chrome 或 Firefox 浏览器,访问 https://qige.io ,接下来敲 F12 键 或 Ctrl + Shift + I 组合键打开开发者工具,选择 Network 面板后刷新页面,你会在开发者工具底部看到加载该页面花费的时间。请进一步查看哪些文件被 cache了,哪些没有。

实作二

仍在 Network 面板,选择 Disable cache 选项框,表明当前不使用 cache,页面数据全部来自于 Internet,刷新页面,再次在开发者工具底部查看加载该页面花费的时间。你可比对与有 cache 时的加载速度差异。

禁用缓存后,从大小可以看出全部资源从网络请求,访问的速度明显变慢。

WireShark实验

数据链路层

实作一:Ethernet帧结构

数据链路层的帧格式:

Ethernet帧结构前导 8字节DA 6字节SA 6字节类型 2字节数据FCS

利用Wireshark抓包分析数据链路层帧:

双击任意一个包,即可弹出详细信息界面,在这里选择数据链路层的Ethernet帧,下方即可展开该帧结构,包括目的mac地址,源mac地址、类型,下方还会高亮对应的数据字节。甚至还会根据MAC地址特点分析出设备厂家等。

问题: Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。

在物理层上,网卡要先去掉前导同步码和帧开始定界符,然后对帧进行CRC检验。如果帧校验和错,就丢弃此帧。如果校验和正确,就判断帧的目的硬件地址是否符合自己的接收条件(目的地址是自己的物理硬件地址、广播地址、可接收的多播硬件地址等),如果符合,就将帧交“设备驱动程序”做进一步处理。这时我们的抓包软件才能抓到数据,因此,抓包软件抓到的是去掉前导同步码、帧开始分界符、校验字段(fcs)之外的数据。

实作二:了解子网内/外通信时的 MAC 地址

ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可使用 icmp 关键字进行过滤以利于分析),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的? ping 10.61.166.22

正在 Ping 10.61.166.22 具有 32 字节的数据:

来自 10.61.166.22 的回复: 字节=32 时间=29ms TTL=127

来自 10.61.166.22 的回复: 字节=32 时间=6ms TTL=128

来自 10.61.166.22 的回复: 字节=32 时间=21ms TTL=128

来自 10.61.166.22 的回复: 字节=32 时间=22ms TTL=128

10.61.166.22 的 Ping 统计信息:

数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

最短 = 6ms,最长 = 29ms,平均 = 19ms

发出帧的目的MAC地址:9c:fc:e8:50:2e:ea。返回帧的源MAC地址:0c:dd:24:a8:7e:24 然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的? ping qige.io

正在 Ping qige.io [104.21.39.46] 具有 32 字节的数据:

来自 104.21.39.46 的回复: 字节=32 时间=198ms TTL=53

来自 104.21.39.46 的回复: 字节=32 时间=204ms TTL=53

来自 104.21.39.46 的回复: 字节=32 时间=195ms TTL=53

请求超时。

104.21.39.46 的 Ping 统计信息:

数据包: 已发送 = 4,已接收 = 3,丢失 = 1 (25% 丢失),

往返行程的估计时间(以毫秒为单位):

最短 = 195ms,最长 = 204ms,平均 = 199ms

​ 发出帧的目的MAC地址:00:74:9c:9f:40:13。返回帧的源MAC地址:0c:dd:24:a8:7e:24

再次 ping www.cqjtu.edu.cn (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址又是多少?这个 MAC 地址又是谁的? ping www.cqjtu.edu.cn

正在 Ping www.cqjtu.edu.cn [218.70.34.236] 具有 32 字节的数据:

来自 218.70.34.236 的回复: 字节=32 时间=4ms TTL=58

来自 218.70.34.236 的回复: 字节=32 时间=5ms TTL=58

来自 218.70.34.236 的回复: 字节=32 时间=5ms TTL=58

来自 218.70.34.236 的回复: 字节=32 时间=16ms TTL=58

218.70.34.236 的 Ping 统计信息:

数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

最短 = 4ms,最长 = 16ms,平均 = 7ms

​ 发出帧的目的MAC地址:00:74:9c:9f:40:13。返回帧的源MAC地址:0c:dd:24:a8:7e:24

问题:通过以上的实验,你会发现:

访问本子网的计算机时,目的 MAC 就是该主机的访问非本子网的计算机时,目的 MAC 是网关的

请问原因是什么?

答:因为访问本子网的计算机时,是两台主机在进行通信,所以MAC是目标主机的。而当要访问非本子网的计算机时,首先数据首先要到达本子网的网关,再有网关进行传输,所以目的MAC是网关的。

实作三:掌握 ARP 解析过程

为防止干扰,先使用 arp -d * 命令清空 arp 缓存 arp -d *

ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可 arp 过滤),查看 ARP 请求的格式以及请求的内容,注意观察该请求的目的 MAC 地址是什么。再查看一下该请求的回应,注意观察该回应的源 MAC 和目的 MAC 地址是什么。 ping 10.61.166.22

正在 Ping 10.61.166.22 具有 32 字节的数据:

来自 10.61.166.22 的回复: 字节=32 时间=12ms TTL=127

来自 10.61.166.22 的回复: 字节=32 时间=20ms TTL=128

来自 10.61.166.22 的回复: 字节=32 时间=7ms TTL=128

来自 10.61.166.22 的回复: 字节=32 时间=6ms TTL=128

10.61.166.22 的 Ping 统计信息:

数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

最短 = 6ms,最长 = 20ms,平均 = 11ms

当我在ping 10.61.166.22的时候,会发出一个目的MAC全1的ARP广播,询问谁有10.61.166.22(目的IP),请告诉10.61.166.22(本机IP) 再次使用 arp -d * 命令清空 arp 缓存 然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 arp 过滤)。查看这次 ARP 请求的是什么,注意观察该请求是谁在回应。 ping qige.io

正在 Ping qige.io [104.21.39.46] 具有 32 字节的数据:

来自 104.21.39.46 的回复: 字节=32 时间=196ms TTL=53

来自 104.21.39.46 的回复: 字节=32 时间=195ms TTL=53

来自 104.21.39.46 的回复: 字节=32 时间=197ms TTL=53

来自 104.21.39.46 的回复: 字节=32 时间=201ms TTL=53

104.21.39.46 的 Ping 统计信息:

数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

最短 = 195ms,最长 = 201ms,平均 = 197ms

当我在ping qige.io的时候,同样会发出一个目的MAC全1的ARP广播,询问网关的MAC地址,此时回复我们的是网关。 问题:通过以上的实验,你应该会发现,

ARP 请求都是使用广播方式发送的如果访问的是本子网的 IP,那么 ARP 解析将直接得到该 IP 对应的 MAC;如果访问的非本子网的 IP, 那么 ARP 解析将得到网关的 MAC。 请问为什么? 答:因为当没有配置缺省网关的计算机要和其他网络中的计算机实现通信时,网关收到源计算机的ARP请求会使用自己的MAC地址与目标计算机的IP地址对源计算机进行应答,访问非子网IP时是通过路由器访问的,路由器再把请求发出去,目标IP收到请求后,再通过路由器端口IP返回去,那么ARP解析将会得到网关的MAC。

网络层

实作一:熟悉 IP 包结构

使用 Wireshark 任意进行抓包(可用 ip 过滤),熟悉 IP 包的结构,如:版本、头部长度、总长度、TTL、协议类型等字段。

问题:为提高效率,我们应该让 IP 的头部尽可能的精简。但在如此珍贵的 IP 头部你会发现既有头部长度字段,也有总长度字段。请问为什么?

回答:IP包中加入这两个字段是为了提高传输效率。有头部长度字段和总长度字段是为了方便上层计算出IP包中的数据的地址,将其提取出来。当数据长度超过1500B时就会进行分段,这两个字段就可以提高传输效率。

实作二: IP 包的分段与重组

根据规定,一个 IP 包最大可以有 64K 字节。但由于 Ethernet 帧的限制,当 IP 包的数据超过 1500 字节时就会被发送方的数据链路层分段,然后在接收方的网络层重组。

缺省的,ping 命令只会向对方发送 32 个字节的数据。我们可以使用 ping 202.202.240.16 -l 2000 命令指定要发送的数据长度。此时使用 Wireshark 抓包(用 ip.addr == 202.202.240.16 进行过滤),了解 IP 包如何进行分段,如:分段标志、偏移量以及每个包的大小等

ping 202.202.240.16 -l 2000

正在 Ping 202.202.240.16 具有 2000 字节的数据:

来自 202.202.240.16 的回复: 字节=2000 时间=24ms TTL=61

来自 202.202.240.16 的回复: 字节=2000 时间=11ms TTL=61

来自 202.202.240.16 的回复: 字节=2000 时间=19ms TTL=61

来自 202.202.240.16 的回复: 字节=2000 时间=10ms TTL=61

202.202.240.16 的 Ping 统计信息:

数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

最短 = 10ms,最长 = 24ms,平均 = 16ms

问题:IPv6 中,如果路由器遇到了一个大数据包该怎么办?

答:在IPv6的网络中,主机在发出数据包时,就已经对数据包进行分片处理(默认最小MTU为1280字节),这样在数据传输的过程中就不需要路由器来担任分片工作,大大提高了数据传输的效率。所以路由器遇到了一个大数据包则丢弃,并发送too big ICMP报文回发送端;分片工作由端系统执行。

实作三:考察 TTL 事件

在 IP 包头中有一个 TTL 字段用来限定该包可以在 Internet上传输多少跳(hops),一般该值设置为 64、128等。

在验证性实验部分我们使用了 tracert 命令进行路由追踪。其原理是主动设置 IP 包的 TTL 值,从 1 开始逐渐增加,直至到达最终目的主机。请使用 tracert www.baidu.com 命令进行追踪,此时使用 Wireshark 抓包(用 icmp 过滤),分析每个发送包的 TTL 是如何进行改变的,从而理解路由追踪原理。

tracert www.baidu.com

通过最多 30 个跃点跟踪

到 www.a.shifen.com [14.215.177.38] 的路由:

1 * * * 请求超时。

2 12 ms 7 ms 6 ms 172.19.2.2 [172.19.2.2]

3 37 ms 4 ms 3 ms 183.64.62.161

4 8 ms 6 ms 5 ms 222.176.89.77

5 14 ms * * 222.176.6.49

6 * * * 请求超时。

7 * * * 请求超时。

8 * * * 请求超时。

9 60 ms 49 ms 35 ms 121.14.14.162

10 42 ms 34 ms 36 ms 14.215.32.114

11 * * * 请求超时。

12 51 ms 49 ms 68 ms 14.215.177.38

跟踪完成。

tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。步骤如下:

tracert首先发出TTL值为1的ICMP数据包,当到达路径上第一个路由器时,路由器会将TTL值减1。此时TTL值为0,该路由器将此数据包丢弃,向源地址返回一个ICMP超时通知。 当tracert收到该数据包,获得了这个路径上的第一个路由器的地址。此时tracert再发送另一个TTL为2的数据包,第一个路由器会将此数据包转发给第二个路由器,当TTL值为0时,第二个路由器也会返回一个超时通知,tracert得到第二个路由器地址。 Tracert每次发出数据报时便会将TTL加1,发现下一个路由器。这个动作一直重复,直到到达目的地或者确定目标主机不可到达为止到达目的IP后,目标主机并不返回超时报文。 Tracert发送数据报时,会选择一个一般应用程序不会使用的号码来做端口(3000以上)。当到达目的地后,目标主机返回一个ICMP port unreachable(端口不可达)的消息。当tracert收到这个消息后,就知道目的地到达了。

问题:在 IPv4 中,TTL 虽然定义为生命期即 Time To Live,但现实中我们都以跳数/节点数进行设置。如果你收到一个包,其 TTL 的值为 50,那么可以推断这个包从源点到你之间有多少跳?

答:一般TTL的设置为与其最靠进的2的n次幂,离50最近的2的n次幂即为64,所以从源点到我之间有64-50=14跳。

传输层

实作一:熟悉TCP与UDP段结构

用 Wireshark 任意抓包(可用 tcp 过滤),熟悉 TCP 段的结构,如:源端口、目的端口、序列号、确认号、各种标志位等字段。 用 Wireshark 任意抓包(可用 udp 过滤),熟悉 UDP 段的结构,如:源端口、目的端口、长度等。

问题: UDP 的头部比 TCP 简单得多,但两者都有源和目的端口号。请问源和目的端口号用来干什么?

端口能够让应用层的各种应用进程将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。源端口标识发起通信的那个进程,目的端口标识接受通信的那个进程,接受到报文根据端口号将报文发送到目的进程。

实作二:分析 TCP 建立和释放连接

打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用 tcp 过滤后再使用加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间使得能够捕获释放连接的包。 请在你捕获的包中找到三次握手建立连接的包,并说明为何它们是用于建立连接的,有什么特征。

第一次握手:客户机的TCP首先向服务器的TCP发送连接请求报文段。其中首部的同部位SYN置为1,同时选择一个初始序号Seq=x,这里选择了0。

第二次握手:服务器的TCP收到连接请求报文,同意建议连接向客户机发回确认,为该TCP连接分配缓存和变量。在确认报文段中把SYN和ACK位都置为1,确认号是ack=x+1。

第三次握手:当客户机收到确认报文段后,要向服务器给出确认,并为该TCP连接分配缓存和变量。确认报文段的ACK置为1,确认号ack=y+1,序号seq=x+1。 请在你捕获的包中找到四次挥手释放连接的包,并说明为何它们是用于释放连接的,有什么特征。

第一次挥手:客户机打算关闭连接,向其TCP发送连接释放报文段,并停止发送数据,主动关闭TCP连接,该报文段的终止位置为FIN置为1,序号seq=u。

第二次挥手:服务器收到连接释放报文段后即发出确认,确认号ack=u+1,序号seq=v。

第三次挥手:若服务器已经没有要向客户机发送的数据,就通知TCP释放连接,此时发送FIN=1,ACK=1的连接释放报文段,ack=u+1。

第四次挥手:客户机收到连接释放报文段后必须发出确认,此报文段中确认为ACK置为1,确认号ack=w+1,序号seq=u+1。

问题:去掉 Follow TCP Stream,即不跟踪一个 TCP 流,你可能会看到访问 qige.io 时我们建立的连接有多个。请思考为什么会有多个连接?作用是什么?

答:因为我们浏览器在访问qige.io的时候,不止一个端口与qige.io建立连接,而是许多端口同时与它建立连接,这样同时进行加载数据,可以提高运行速度。

问题:我们上面提到了释放连接需要四次挥手,有时你可能会抓到只有三次挥手。原因是什么?

答:因为第二次挥手和第三次挥手合并了,FIN报文用在本端没有数据发送给对方时,关闭从本端到对端的连接。但是并不影响从对方到本端的连接,也就是说本端仍然可以接收对方的数据。即发送通道关闭,接收通道正常。如果对方收到本端FIN报文时,对方的接收通道就会关闭。此时,如果对方也没有数据发给本端,那么对方也会发送FIN给本端,用于关闭从对方到本端的连接,这时候就可能出现ACK和FIN合在一起的情况。如果对方仍然有数据发送,那么就等数据发完,再发FIN来关闭连接,这时候就是四次挥手了。

应用层

实作一:了解 DNS 解析

先使用 ipconfig /flushdns 命令清除缓存,再使用 nslookup qige.io 命令进行解析,同时用 Wireshark 任意抓包(可用 dns 过滤)。你应该可以看到当前计算机使用 UDP,向默认的 DNS 服务器的 53 号端口发出了查询请求,而 DNS 服务器的 53 号端口返回了结果。

可了解一下 DNS 查询和应答的相关字段的含义 DNS查询和应答报文的格式如下:

16位标识字段用于标记一对DNS查询和应答,以此区分一个DNS应答是哪个DNS查询的回应,DNS报文头部的16位标志字段的细节如图:

QR:查询/应答标志。0表示这是一个查询报文,1表示这是一个应答报文opcode,定义查询和应答的类型。0表示标准查询,1表示反向查询(由IP地址获得主机域名),2表示请求服务器状态AA,授权应答标志,仅由应答报文使用。1表示域名服务器是授权服务器TC,截断标志,仅当DNS报文使用UDP服务时使用。因为UDP数据报有长度限制,所以过长的DNS报文将被截断。1表示DNS报文超过512字节,并被截断RD,递归查询标志。1表示执行递归查询,即如果目标DNS服务器无法解析某个主机名,则它将向其他DNS服务器继续查询,如此递归,直到获得结果并把该结果返回给客户端。0表示执行迭代查询,即如果目标DNS服务器无法解析某个主机名,则它将自己知道其他DNS服务器的IP地址返回给客户端,以供客户端参考RA,允许递归标志。仅由应答报文使用,1表示DNS服务器支持递归查询zero,这3位未用,必须设置为0rcode,4位返回码,表示应答的状态。常用值有0(无错误)和3(域名不存在)

接下来的4个字段则分别指出DNS报文的最后4个字段的资源记录数目。对查询报文而言,它一般包含1个查询问题,而应答资源记录数,授权资源记录数和额外资源记录数则为0.应答报文的应答资源记录数则至少为1,而授权资源记录数和额外资源记录数可为0或非

问题:你可能会发现对同一个站点,我们发出的 DNS 解析请求不止一个,思考一下是什么原因?

答:因为计算机域名解析服务器可能有很多个,所以会同时向几个域名解析服务器发出请求。

实作二:了解HTTP的请求和应答

打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用http 过滤再加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间以将释放连接的包捕获。 请在你捕获的包中找到 HTTP 请求包,查看请求使用的什么命令,如:GET, POST。并仔细了解请求的头部有哪些字段及其意义。 请在你捕获的包中找到 HTTP 应答包,查看应答的代码是什么,如:200, 304, 404 等。并仔细了解应答的头部有哪些字段及其意义。 问题:刷新一次 qige.io 网站的页面同时进行抓包,你会发现不少的 304 代码的应答,这是所请求的对象没有更改的意思,让浏览器使用本地缓存的内容即可。那么服务器为什么会回答 304 应答而不是常见的 200 应答? 答:200(成功) 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。如果是对您的 robots.txt 文件显示此状态码,则表示 Googlebot 已成功检索到该文件。 304(未修改) 自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。 如果网页自请求者上次请求后再也没有更改过,您应将服务器配置为返回此响应(称为 If-Modified-Since HTTP 标头)。服务器可以告Googlebot 自从上次抓取后网页没有变更,进而节省带宽和开销。

Cisco Packet Tracer 实验

直接连接两台 PC 构建 LAN

将两台 PC 直接连接构成一个网络。注意:直接连接需使用交叉线。进行两台 PC 的基本网络配置,只需要配置 IP 地址即可,然后相互 ping 通即成功。

构建网络如下,两台主机IP地址分别为192.168.0.1、192.168.0.2,子网掩码均为255.255.255.0

用192.168.0.1这台主机去ping另一台主机192.168.0.2

可以ping成功。

用交换机构建 LAN

构建如下拓扑结构的局域网:

配置如下

机器名IP子网掩码pc0192.168.1.1255.255.255.0pc1192.168.1.2255.255.255.0pc2192.168.1.3255.255.255.0pc3192.168.1.4255.255.255.0

问题

PC0 能否 ping 通 PC1、PC2、PC3 ? 可以ping通PC1: 无法ping通PC2、PC3: 因为PC0和PC1属于同一子网,但和PC2、PC3属于不同子网。 PC3 能否 ping 通 PC0、PC1、PC2 ?为什么? 无法ping通PC0、PC1: 可以ping通PC2: 因为PC3和PC2属于同一子网,但和PC0、PC1属于不同子网。 将 4 台 PC 的掩码都改为 255.255.0.0 ,它们相互能 ping 通吗?为什么? 可以相互ping通(以主机PC0去ping主机PC2为例): 因为掩码改为255.255.0.0后,4台主机IP地址与子网掩码与运算后的结果均为:192.168.0.0,所以他们属于同一子网,之间可以进行相互通信。 使用二层交换机连接的网络需要配置网关吗?为什么? 需要配置网关。二层交换机的网关主要用于远程登录(SSH/telnet)管理,以及发生故障的时候,可以通过SNMP trap消息向网管系统发送报警消息。

集线器 Hub 是工作在物理层的多接口设备,它与交换机的区别是什么?请在 CPT 软件中用 Hub 构建网络进行实际验证。

机器名IP子网掩码PC0192.168.1.1255.255.255.0PC1192.168.1.2255.255.255.0PC2192.168.1.3255.255.255.0PC3192.168.1.4255.255.255.0

集线器:无论哪个端口收到数据之后,都要广播到所有的端口。

交换机:根据MAC地址转发数据,收到数据包之后,检查报文的目的MAC地址,找到对应的端口进行转发,而不是广播到所有的端口。

交换机接口地址列表

构建网络:

初始状态下交换机0的MAC表

用主机PC0去ping主机PC1:

再次查看交换机0的MAC表:

可以看到MAC表中多了两条记录,分别是主机PC0和PC1所对应的MAC地址。该MAC表是交换机通过自学习生成的,交换机在收到帧后,在交换机表中查找目的MAC地址对应的接口号,然后通过该接口转发帧;

生成树协议(Spanning Tree Protocol)

只使用交换机,构建如下拓扑:

这是初始时的状态。我们可以看到交换机之间有回路,这会造成广播帧循环传送即形成广播风暴,严重影响网络性能。

随后,交换机将自动通过生成树协议(STP)对多余的线路进行自动阻塞(Blocking),以形成一棵以 Switch4 为根(具体哪个是根交换机有相关的策略)的具有唯一路径树即生成树!

经过一段时间,随着 STP 协议成功构建了生成树后,交换机4 的一个接口和交换机7上的1个接口,当前物理上是连接的,但逻辑上是不通的,处于Blocking状态(桔色)如下图所示:

在网络运行期间,假设某个时候交换机4与交换机6之间的物理连接出现问题,则该生成树将自动发生变化,如下图所示:

交换机的 STP 协议即生成树协议始终自动保证交换机之间不会出现回路,从而形成广播风暴。

路由器配置初步

模拟重庆交通大学和重庆大学两个学校的连接,构建如下拓扑:

说明一

左边路由器是交通大学的,其下使用交换机连接交通大学的网络,分配网络号 192.168.1.0/24,该路由器接口也是交通大学网络的网关,分配 IP 为 192.168.1.1:

右边路由器是重庆大学的,其下使用交换机连接重庆大学的网络,分配网络号 192.168.3.0/24,该路由器接口也是重庆大学网络的网关,分配 IP 为 192.168.3.1 两个路由器之间使用广域网接口相连,也是一个子网,分配网络号 192.168.2.0/24

说明二

现实中,交通大学和重庆大学的连接是远程的。该连接要么通过路由器的光纤接口,要么通过广域网接口即所谓的 serial 口(如拓扑图所示)进行,一般不会通过双绞线连接(为什么?)

因为双绞线的通信距离一般为几千米到数十千米,距离太远时会发生信号的衰减。而光纤的传输损耗小、通信容量大,对远距离传输特别经济。

下面我们以通过路由器的广域网口连接为例来进行相关配置。请注意:我们选用的路由器默认没有广域网模块(名称为 WIC-1T 等),需要关闭路由器后添加,然后再开机启动。

说明三

在模拟的广域网连接中需注意 DCE 和 DTE 端(连线时线路上有提示,带一个时钟标志的是 DCE 端。有关 DCE 和 DTE 的概念请查阅相关资料。),在 DCE 端需配置时钟频率 64000

说明四

路由器有多种命令行配置模式,每种模式对应不同的提示符及相应的权限。

请留意在正确的模式下输入配置相关的命令。

User mode:用户模式Privileged mode:特权模式Global configuration mode:全局配置模式Interface mode:接口配置模式Subinterface mode:子接口配置模式

说明五

在现实中,对新的路由器,显然不能远程进行配置,我们必须在现场通过笔记本的串口与路由器的 console 接口连接并进行初次的配置(注意设置比特率为9600)后,才能通过网络远程进行配置。这也是上图左上画出笔记本连接的用意。

说明六

在路由器的 CLI 界面中,可看到路由器刚启动成功后,因为无任何配置,将会提示是否进行对话配置(Would you like to enter the initial configuration dialog?),因其步骤繁多,请选择 NO

拓扑图中路由器各接口配置数据如下:

接口名IP子网掩码交通大学 Router2 以太网口192.168.1.1255.255.255.0交通大学 Router2 广域网口192.168.2.1255.255.255.0重庆大学 Router3 以太网口192.168.3.1255.255.255.0重庆大学 Router3 广域网口192.168.2.2255.255.255.0

拓补图中各PC配置数据如下:

节点名IP子网掩码网关交通大学 PC0192.168.1.2255.255.255.0192.168.1.1交通大学 PC1192.168.1.3255.255.255.0192.168.1.1重庆大学 PC2192.168.3.2255.255.255.0192.168.3.1重庆大学 PC3192.168.3.3255.255.255.0192.168.3.1

问题:现在交通大学内的各 PC 及网关相互能 ping 通,重庆大学也类似。但不能从交大的 PC ping 通重大的 PC,反之亦然,也即不能跨子网。为什么?

交大的交换机中没有记录到重大的路由器地址,我们也没有为它配置静态路由,所以目的地址无法到达。

静态路由

静态路由是非自适应性路由协议,是由网络管理人员手动配置的,不能够根据网络拓扑的变化而改变。 因此,静态路由简单高效,适用于结构非常简单的网络。在当前这个简单的拓扑结构中我们可以使用静态路由,即直接告诉路由器到某网络该怎么走即可。

在前述路由器基本配置成功的情况下使用以下命令进行静态路由协议的配置:

交通大学路由器静态路由配置:

查看路由表你可看到标记为 S 的一条路由,S 表示 Static :

重庆大学路由器静态路由配置:

至此,这些 PC 能全部相互 ping 通!

注意:我们的拓扑只模拟了 3 个网络。在现实中,路由器连接的网络数量非常多,我们还需要配置一条缺省路由,否则其它网络皆不能到达!当然,我们的拓扑可以不考虑。

Router(config)#ip route 0.0.0.0 0.0.0.0 *.*.*.* :缺省全部转发给 ... 这个IP

动态路由 RIP

动态路由协议采用自适应路由算法,能够根据网络拓扑的变化而重新计算机最佳路由。RIP 的全称是 Routing Information Protocol,是距离矢量路由的代表(目前虽然淘汰,但可作为我们学习的对象)。使用 RIP 协议只需要告诉路由器直接相连有哪些网络即可,然后 RIP 根据算法自动构建出路由表。

因为我们模拟的网络非常简单,因此不能同时使用静态和动态路由,否则看不出效果,所以我们需要把刚才配置的静态路由先清除掉。

清除静态路由配置:

直接关闭路由器电源。相当于没有保存任何配置,然后各接口再按照前面基本配置所述重新配置 IP 等参数(推荐此方法,可以再熟悉一下接口的配置命令);使用 no 命令清除静态路由。在全局配置模式下,交通大学路由器使用:no ip route 192.168.3.0 255.255.255.0 192.168.2.2,重庆大学路由器使用:no ip route 192.168.1.0 255.255.255.0 192.168.2.1 。相当于使用 no 命令把刚才配置的静态路由命令给取消。

交通大学路由器 RIP 路由配置:

查看路由表,可看到标记为 R 的一条路由,R 表示 RIP 。

重庆大学路由器 RIP 路由配置:

至此,这些 PC 也能全部相互 ping 通!

动态路由 OSPF

OSPF(Open Shortest Path First 开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称 IGP), 用于在单一自治系统(Autonomous System,AS)内决策路由。OSPF 性能优于 RIP,是当前域内路由广泛使用的路由协议。

同样的,我们需要把刚才配置的 RIP 路由先清除掉。清除 RIP 路由配置:

直接关闭路由器电源。相当于没有保存任何配置,然后各接口再按照前面基本配置所述重新配置 IP 等参数使用 no 命令清除 RIP 路由。在全局配置模式下,各路由器都使用:no router rip 命令进行清除

交通大学路由器 OSPF 路由配置:

查看路由表你可看到标记为O的一条路由,O表示OSPF。

重庆大学路由器 OSPF 路由配置:

至此,这些 PC 能全部相互 ping 通!

反向掩码

我们常见的子网掩码是所谓的正向掩码,用连续的 1 和 0 来表示,其中 1 表示需精确匹配, 0 则无需,以此得到网络号。

类似的,反向掩码也使用连续的 1 和 0 来表示,但相反,其中 0 表示需精确匹配, 1 则无需,以此得到相关的 IP,主要用于 OSPF 中。

还有一个通配符掩码,也采用与反向掩码相似的规则,主要用于访问控制列表 ACL 中。

基于端口的网络地址翻译 PAT

网络地址转换(NAT,Network Address Translation)被各个 Internet 服务商即 ISP 广泛应用于它们的网络中,也包括 WiFi 网络。 原因很简单,NAT 不仅完美地解决了 lP 地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。

NAT 的实现方式一般有三种:

静态转换: Static NAT动态转换: Dynamic NAT端口多路复用: OverLoad

端口多路复用使用最多也最灵活。OverLoad 是指不仅改变发向 Internet 数据包的源 IP 地址,同时还改变其源端口,即进行了端口地址转换(PAT,Port Address Translation)。采用端口多路复用方式,内部网络的所有主机均可共享一个合法外部 IP 地址实现对 Internet 的访问,从而可以最大限度地节约IP地址资源。 同时,又可隐藏网络内部的所有主机,有效避免来自 Internet 的攻击。因此,目前网络中应用最多的就是端口多路复用方式。

我们仍然使用重庆交通大学和重庆大学两个学校的拓扑进行 PAT 实验。我们需要保证两个学校的路由已经配置成功,无论使用静态路由还是动态路由,以下我们给出完整的配置过程:设定这两个学校的路由器使用 OSPF 协议,模拟交通大学使用内部 IP 地址(192.168.1.0/24),模拟重庆大学使用外部 IP 地址(8.8.8.0/24),两个路由器之间使用外部 IP 地址(202.202.240.0/24),在交通大学的出口位置即广域网口实施 PAT。

拓扑图中各 PC 配置数据如下:

节点名IP子网掩码网关交通大学 PC0192.168.1.2255.255.255.0192.168.1.1交通大学 PC1192.168.1.3255.255.255.0192.168.1.1重庆大学 PC28.8.8.2255.255.255.08.8.8.1重庆大学 PC38.8.8.3255.255.255.08.8.8.1

 请留意重庆大学两个 PC 的网络配置发生改变,我们模拟为外部/公网 IP 地址!

拓扑图中路由器各接口配置数据如下:

接口名IP子网掩码交通大学 Router2 以太网口192.168.1.1255.255.255.0交通大学 Router2 广域网口202.202.240.1255.255.255.0重庆大学 Router3 以太网口8.8.8.1255.255.255.0重庆大学 Router3 广域网口202.202.240.2255.255.255.0

 请留意重庆大学路由器两个接口及交通大学广域网口的网络配置发生改变,然后配置 OSPF 路由,最后在交通大学路由器的广域网口实施 PAT!

交通大学路由器 OSPF 路由配置:

重庆大学路由器 OSPF 路由配置:

此时,这些 PC 能全部相互 ping 通!如在交通大学内部使用 PC0(192.168.1.2)来 ping 重庆大学的PC2(8.8.8.2)应该成功。

下面我们将重庆大学的路由器看着 Internet 中的骨干路由器,那么这些路由器将不会转发内部/私有 IP 地址的包(直接丢弃)。我们通过在重庆大学路由器上实施访问控制 ACL ,即丢弃来自交通大学(私有 IP 地址)的包来模拟这个丢包的过程。

重庆大学路由器丢包的配置:

此时,再使用交通大学内部的 PC0(192.168.1.2)来 ping 重庆大学的 PC2(8.8.8.2)就不成功了,会显示目的主机不可到达(Destination host unreachable)信息:

下面,我们就开始实施 PAT。即:我们将会在交通大学路由器的出口上将内部/私有 IP 地址转换为外部/公开 IP,从而包的源 IP 发生了改变,就不会被重庆大学路由器丢弃,因此网络连通。

交通大学路由器 PAT 配置:

现在,再次使用交通大学内部的 PC0(192.168.1.2)来 ping 重庆大学的PC2(8.8.8.2)则OK。

在交通大学路由器特权配置模式下使用 show ip nat translations 可查看这个翻译的过程!

虚拟局域网 VLAN

VLAN(Virtual Local Area Network)即虚拟局域网。通过划分 VLAN,我们可以把一个物理网络划分为多个逻辑网段即多个子网。划分 VLAN 后可以杜绝网络广播风暴,增强网络的安全性,便于进行统一管理等。

在 CPT 中构建如下图所示拓扑:

Cisco 2960 交换机是支持 VLAN 的交换机,共有 24 个 100M 和 2 个 1000M 以太网口。默认所有的接口都在 VLAN 1 中,故此时连接上来的计算机都处于同一 VLAN,可以进行通信。

下面我们就该交换机的 24 个 100M 接口分为 3 个部分,划分到 3 个不同的 VLAN 中,id 号分别设为 10、20、30,且设置别名(computer、communication、electronic)以利于区分和管理。

交换机 VLAN 配置:

至此,在该交换机上我们就划分了 3 个 VLAN(不包括缺省的 VLAN 1):

各 VLAN 下 PC 的网络配置及连接的交换机接口如下表:

机器名连接的接口所属VLANIP子网掩码网关PC0F0/1VLAN 10192.168.0.2255.255.255.0192.168.0.1PC1F0/2VLAN 10192.168.0.3255.255.255.0192.168.0.1PC2F0/17VLAN 30192.168.2.2255.255.255.0192.168.2.1PC3F0/9VLAN 20192.168.1.2255.255.255.0192.168.1.1PC4F0/10VLAN 20192.168.1.3255.255.255.0192.168.1.1PC5F0/18VLAN 30192.168.2.3255.255.255.0192.168.2.1PC6F0/19VLAN 30192.168.2.4255.255.255.0192.168.2.1

此时可以使用 ping 命令进行测试,你会发现只有在同一 VLAN 中的 PC 才能通信,且广播也局限于该 VLAN。

虚拟局域网管理 VTP

VTP(VLAN Trunk Protocol)即 VLAN 中继协议。VTP 通过 ISL 帧或 Cisco 私有 DTP 帧(可查阅相关资料了解)保持 VLAN 配置统一性,也被称为虚拟局域网干道协议,它是思科私有协议。 VTP 统一管理、增加、删除、调整VLAN,自动地将信息向网络中其它的交换机广播。此外,VTP 减小了那些可能导致安全问题的配置,只要在 VTP Server 做相应设置,VTP Client 会自动学习 VTP Server 上的 VLAN 信息。

重新构建如下拓扑结构:

作为干线,两个 2960 交换机和核心的 3560 交换机应该使用 Gbit 口相连。这虽然不是必须,但现实中这样连接性能最好。 3560 交换机是网络中的核心交换机,我们将其作为 VTP Server,VTP 域及 VLAN 将在其上创建和管理。 两个 2960 交换机是是局域网中的汇聚层/接入层交换机,将作为 VTP Client,可决定加入的 VTP 域和 VLAN。

目前该网络都属于 VLAN 1,也即这些 PC 是可以相互通信的。前面说过,无论对于性能、管理还是安全等而言,现实中我们必须进行 VLAN 划分。现在我们的要求是:新建两个 VLAN,然后让 PC0 和 PC1 属于 VLAN 2,PC1 和 PC3 属于 VLAN 3。

我们将在核心交换机 3560上进行如下工作:

设置为 server 模式,VTP 域为 cqjtu新建 VLAN 2,网络号 192.168.1.0/24,网关 192.168.1.1新建 VLAN 3,网络号 192.168.2.0/24,网关 192.168.2.1

我们将在左边交换机 2960A 上进行如下工作:

加入名为 cqjtu 的 VTP 域配置与核心交换机 3560 连接的千兆接口 g0/1 为 trunk 模式将接口 f0/1 划分到 VLAN 2 中将接口 f0/2 划分到 VLAN 3 中

2960A(左边) VTP Client 配置:

我们将在右边交换机 2960B 上进行同样的工作:

加入名为 cqjtu VTP 域配置与核心交换机 3560 连接的千兆接口 g0/1 为 trunk 模式将接口 f0/1 划分到 VLAN 2 中将接口 f0/2 划分到 VLAN 3 中

2960B(右边) VTP Client 配置:

至此,各交换机配置完毕。

各 PC 连接的交换机和接口以及网络配置如下:

机器名连接的交换机和接口所属VLANIP子网掩码网关PC02960A-F0/1VLAN 2192.168.1.2255.255.255.0192.168.1.1PC12960A-F0/2VLAN 3192.168.2.2255.255.255.0192.168.2.1PC22960B-F0/1VLAN 2192.168.1.3255.255.255.0192.168.1.1PC32960B-F0/2VLAN 3192.168.2.3255.255.255.0192.168.2.1

至此,VTP 配置完成。同 VLAN 可以 ping 通,而不同 VLAN 不行(即使在同一交换机下,如从 PC0 到 PC1),且能够方便的统一规划和管理。

使用 PC0(192.168.1.2) ping PC1(192.168.2.2) 的结果如何?使用 PC0 ping PC2 的结果如何?想想为什么?

答:使用PC0 ping PC1无法成功,因为他们属于不同的VLAN下,无法进行通信。使用PC0 ping PC2 可以成功,因为他们属于同一VLAN下,可以进行通信。

VLAN 间的通信

VTP 只是给我们划分和管理 VLAN 提供了方便,由上面的测试得知,目前我们仍然不能在 VLAN 间通信。因为默认的,VLAN 间是不允许进行通信,此时我们需要所谓的独臂路由器在 VLAN 间为其进行转发!我们使用的核心交换机 3560 是个 3 层交换机,可工作在网络层,也称路由交换机,即具有路由功能,能进行这种转发操作。

3560 交换机配置:

至此,各 VLAN 中的 PC 可以正常通信。

现在再使用 PC0(192.168.1.2) ping PC1(192.168.2.2) 的结果如何?使用 PC0 ping PC2 的结果如何?

答:使用PC0 ping PC1、使用PC0 ping PC2 均可以成功。

**一次路由多次交换:**在完成对收到的第一个新数据流进行路由后,产生一个MAC地址与IP地址的映射表,当具有相同地址信息的数据流再次通过时,即根据此表直接在二层完成转发。

DHCP、DNS及Web服务器简单配置

动态主机配置 DHCP、域名解析 DNS 以及 Web 服务在日常应用中作用巨大,我们构建如下简单的拓扑来进行练习:

该拓扑中,服务器及客户机都连在同一交换机上。为简单起见,服务器 Server-PT 同时作为 DHCP、DNS 以及 Web 服务器,各客户机无需配置,将自动获取网络配置。

点击 CPT 拓扑图中的 Server 图标,设置其静态 IP 地址为 19.89.6.4/24,然后选择 Service 进行如下相关配置:

查看各 PC,看看是否获得网络配置:

PC0:

PC1:

我们在 DNS 服务器中把谷歌和百度的 IP 都设为了 19.89.6.4,即 Server-PT,所以,如果打开 PC0 的浏览器,输入 www.google.com 或者 www.baidu.com,我们都应该看到默认的 Server-PT 这个 Web 服务器的主页

WLAN初步配置

WLAN 即 WiFi 当前也是广泛的应用在各种场景。

我们通过构建如下拓扑的一个家庭 WLAN 来练习一下其相关的配置:

笔记本及台式机默认只有有线网卡,请先关机,在关机状态下删除有线网卡,添加无线网卡,然后再开机。

装上无线网卡后,启动了就可以DHCP自动获取ip/子网掩码/网关/DNS了

ping PC1(192.168.2.2) 的结果如何?使用 PC0 ping PC2 的结果如何?想想为什么?**

答:使用PC0 ping PC1无法成功,因为他们属于不同的VLAN下,无法进行通信。使用PC0 ping PC2 可以成功,因为他们属于同一VLAN下,可以进行通信。

VLAN 间的通信

VTP 只是给我们划分和管理 VLAN 提供了方便,由上面的测试得知,目前我们仍然不能在 VLAN 间通信。因为默认的,VLAN 间是不允许进行通信,此时我们需要所谓的独臂路由器在 VLAN 间为其进行转发!我们使用的核心交换机 3560 是个 3 层交换机,可工作在网络层,也称路由交换机,即具有路由功能,能进行这种转发操作。

3560 交换机配置:

至此,各 VLAN 中的 PC 可以正常通信。

现在再使用 PC0(192.168.1.2) ping PC1(192.168.2.2) 的结果如何?使用 PC0 ping PC2 的结果如何?

答:使用PC0 ping PC1、使用PC0 ping PC2 均可以成功。

**一次路由多次交换:**在完成对收到的第一个新数据流进行路由后,产生一个MAC地址与IP地址的映射表,当具有相同地址信息的数据流再次通过时,即根据此表直接在二层完成转发。

DHCP、DNS及Web服务器简单配置

动态主机配置 DHCP、域名解析 DNS 以及 Web 服务在日常应用中作用巨大,我们构建如下简单的拓扑来进行练习:

该拓扑中,服务器及客户机都连在同一交换机上。为简单起见,服务器 Server-PT 同时作为 DHCP、DNS 以及 Web 服务器,各客户机无需配置,将自动获取网络配置。

点击 CPT 拓扑图中的 Server 图标,设置其静态 IP 地址为 19.89.6.4/24,然后选择 Service 进行如下相关配置:

查看各 PC,看看是否获得网络配置:

PC0:

PC1:

我们在 DNS 服务器中把谷歌和百度的 IP 都设为了 19.89.6.4,即 Server-PT,所以,如果打开 PC0 的浏览器,输入 www.google.com 或者 www.baidu.com,我们都应该看到默认的 Server-PT 这个 Web 服务器的主页。

WLAN初步配置

WLAN 即 WiFi 当前也是广泛的应用在各种场景。

我们通过构建如下拓扑的一个家庭 WLAN 来练习一下其相关的配置:

笔记本及台式机默认只有有线网卡,请先关机,在关机状态下删除有线网卡,添加无线网卡,然后再开机。

装上无线网卡后,启动了就可以DHCP自动获取ip/子网掩码/网关/DNS了

推荐链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: