网络层
IP 版本 4 (IPv4) 和 IP 版本 6 (IPv6) 是主要的网络层通信协议。其他网络层协议包括路由协议,如开放式最短路径优先协议(OSPF),和消息传递协议,如Internet控制消息协议(ICMP)。
特征
为了实现跨网络边界的端到端通信,网络层协议执行四个基本操作:
- 终端设备编址 - 必须为终端设备配置唯一的 IP 地址,以便在网络上进行识别。
- 封装 - 网络层将来自传输层的协议数据单元 (PDU) 封装到数据包中。封装过程中会添加 IP 报头信息,例如来源(发送)和目的(接收)主机的 IP 地址。封装过程由 IP 数据包的源主机执行。
- 路由 - 网络层提供服务,将数据包转发至另一网络上的目的主机。要传送到其他网络,数据包必须经过路由器的处理。路由器的作用是为数据包选择最佳路径,并将其转发至目的主机,该过程称为路由。数据包可能需要经过很多路由器才能到达目的主机。数据包在到达目的主机的过程中经过的每个路由器均称作一跳。
- 解封 - 当数据包到达目的主机的网络层时,主机会检查数据包的 IP 报头。如果在报头中的目的 IP 地址与其自身的 IP 地址匹配,IP 报头将被会从数据包中删除。网络层解封数据包后,后继的第 4 层 PDU 会向上传递到传输层的相应服务。解封过程由 IP 数据包的目的主机执行。
IP封装
IP 通过添加 IP 报头将传输层数据段或其他数据进行封装。IP报头用于将数据包传送到目的主机。
路由器实施路由协议以在网络之间路由数据包。这些中间设备所执行的路由进程会检查数据包报头中的网络层地址。在任何情况下,数据包的数据部分,即封装的传输层 PDU或其他数据,在网络层的各个过程中都保持不变。
IP特征
IP 被设计为一种低开销协议只提供通过互连的网络系统从源主机向目的主机传送数据包所必需的功能。该协议并不负责跟踪和管理数据包的流动。
IP的基本特征:
- 无连接 - 发送数据包前不与目的地建立连接。
- 尽力而为 - IP本质上是不可靠的,因为不保证数据包交付。
- 介质无关性 - 其工作与传输数据的介质(即铜缆、光纤或无线)无关。但是网络层会考虑介质的一个重要特征:每种介质可以传输的最大 PDU 大小。此特征称为最大传输单位 (MTU)。数据链路层为网络层指示所用介质的 MTU
IPv4
IPv4 数据包报头是由包含重要数据包信息的字段组成。这些字段中包含的二进制数字由第 3 层进程进行检查。
图中所示的 IP 协议报头图标识了 IPv4 数据包中的字段。
IPv4 报头中的重要字段包括以下:
- 版本 - 包含一个 4 位二进制值 0100,用于标识这是 IPv4 数据包。
- 差分服务或区分服务 (DS) - 以前称为服务类型 (ToS) 字段,DS 字段是一个 8 位字段,用于确定每个数据包的优先级。DiffServ 字段的六个最高有效位是区分服务代码点 (DSCP)位,而后两位是显式拥塞通知 (ECN) 位。
- 报头校验和 - 这用于检测 IPv4 报头中的损坏。
- 生存时间 (TTL) - TTL包含一个 8 位二进制值,用于限制数据包的生命周期。IPv4 数据包的源设备设置初始 TTL 值。当数据包每被路由器处理一次,数值就减少一。如果 TTL 字段的值减为零,则路由器将丢弃该数据包并向源 IP 地址发送互联网控制消息协议 (ICMP) 超时消息。由于路由器减少每个数据包的 TTL,因此路由器也必须重新计算报头校验和。
- 协议 - 该字段用于标识下一级协议。此 8 位二进制值表示数据包包含的数据负载类型,使网络层将数据传送到相应的上层协议。常用的值包括 ICMP (1)、TCP (6) 和 UDP (17)。
- 源 IPv4 地址 - 包含表示数据包源 IPv4 地址的 32 位二进制值。源 IPv4 地址始终为单播地址。
- 目的 IPv4 地址 - 包含 32 位二进制值,表示数据包的目的 IPv4 地址。目的 IPv4 地址为单播、组播或广播地址。
- 互联网报头长度 (IHL)、总长度和报头校验和字段均用于识别和验证数据包。
- 具体而言,IPv4 数据包使用标识符、标志和片偏移量字段跟踪分段。路由器从一种介质向具有较小 MTU(最大传输单元) 的另一种介质转发IPv4数据包时必须将它分片。
IPv6
IPv4 三个重要问题:
- IPv4地址耗尽 - IPv4 的可用唯一公有地址数量有限。尽管有大约 40 亿(32位)的 IPv4 地址,但是支持 IP 的新设备数量的不断增加,以及始终在线的连接的增加,和欠发达地区的潜在连接的增加,不断催生更多的地址需求。
- 缺乏端到端连接 - 网络地址转换 (NAT) 是 IPv4 网络中经常实施的一项技术。NAT 为多种设备共享单一的公有 IPv4 地址提供方法。但是,因为共享了公有 IPv4 地址,内部网络主机的 IPv4 地址会隐藏起来。这会给需要端到端连接的技术造成难题。
- 增加的网络复杂性 - 虽然NAT延长了IPv4的寿命,但它只是作为一种过渡到IPv6的机制。NAT在其各种实施中增加了网络的复杂性,从而造成延迟并使故障排除更加困难。
IPv6 的功能提升包括: - 更大的地址空间 - IPv6 地址基于 128 位分层编址,而 IPv4 采用的是 32 位。
- 改进数据包处理过程 - IPv6 报头简化为更少的字段。
- 消除了对 NAT 的需求 - 有了数额如此巨大的公有 IPv6 地址,私有 IPv4 地址和公有 IPv4 地址之间不再需要 NAT。这可避免需要端到端连接的应用程序遇到某些由 NAT 引起的故障。
报头
IPv6 数据包报头中的字段包括以下:
- 版本 - 此字段包含一个 4 位二进制值 0110,用于标识这是 IPv6 数据包。
- 流量类别 - 此 8 位字段相当于IPv4 区分服务 (DS)字段。
- 流标签 - 此 20 位字段建议所有含相同流标签的数据包接受相同类型的路由器处理。
- 负载长度 - 此 16 位字段表示 IPv6 数据包的数据部分或负载的长度。这不包括 IPv6 报头的长度,它是固定的 40 字节报头。
- 下一报头 - 此 8 位字段相当于“IPv4 协议”字段。它表示数据包传送的数据负载类型,使网络层将数据传送到相应的上层协议。
- 跳数限制 - 此 8 位字段取代 IPv4 的 TTL 字段。每个转发数据包的路由器均会使此数值减一。当跳数达到 0 时,会丢弃此数据包,并且会向发送主机转发 ICMPv6 超时消息。这表明包没有到达目的地,因为超出了跳数限制。与 IPv4 不同,IPv6 不包括 IPv6 报头校验和,因为此功能同时在下层和上层执行。这意味着校验和不需要在每个路由器降低跳数限制字段时重新计算,这也提高了网络性能。
- 源 IPv6 地址 - 此 128 位字段用于标识发送主机的 IPv6 地址。
- 目的 IPv6 地址 - 此 128 位字段用于标识接收主机的 IPv6 地址。
IPv6 数据包还可能包含扩展报头 (EH),以便提供可选的网络层信息。扩展报头为可选项,位于 IPv6 报头及负载之间。EH 用于分段、安全性、移动性支持等。
与 IPv4 不同,路由器不会对路由的 IPv6 数据包进行分段。
主机路由方式
对于IPv4和IPv6,数据包总是在源主机上创建,为此主机终端设备将创建自己的路由表。
主机可以将数据包发送至如下:
- 主机自己 - 主机可以通过向特定的地址发送数据包来向自己发起ping测试,这个特定的地址是:IPv4地址127.0.0.1,或者IPv6地址 ::1,它被称为环回接口。对环回接口执行 ping 操作可以测试主机上的 TCP/IP 协议堆栈。
- 本地主机- 目的主机与发送主机位于同一本地网络。源和目的主机共享同一个网络地址。
- 远程主机 - 这是位于远程网络上的目的主机。源和目的主机不共享同一个网络地址。
数据包是要发送到本地主机还是远程主机是由源端设备决定的。源端设备确定目的 IP 地址是否与源设备本身所在的网络相同。确定方法因 IP 版本不同而异: - 在 IPv4 中 -源设备使用自己的子网掩码以及自己的 IPv4 地址和目的 IPv4 地址来进行此判断。
- 在 IPv6 中 -本地路由器将本地网络地址(前缀)通告给网络上的所有设备。
默认网关
默认网关是可以将流量路由到其他网络的网络设备,通常是具有以下功能的路由器:
- 它拥有与本地网络其他主机位于相同地址范围的本地 IP 地址。
- 它可以接受数据到本地网络,并将数据转发出本地网络。
- 它向其他网络路由流量。
主机的路由表通常包括默认网关。在IPv4中,主机通过动态主机配置协议 (DHCP) 动态接收默认网关 IPv4 地址,或者通过手动配置。在 IPv6 中,路由器通告默认网关地址,或者可以在主机上手动配置。
配置默认网关会在 PC 的路由表中创建一个默认路由。默认路由是计算机尝试联系远程网络时所用的路由或路径。
PC1 和 PC2 都会使用默认路由将去往远程网络的所有流量发送到 R1。
路由表
路由表存储三种类型的路由条目:
- 直连网络- 这些网络路由条目是活动的路由器接口。当接口配置了 IP 地址并激活时,路由器会添加直连路由。每个路由器接口均连接到一个不同的网段。在图中,R1 IPv4路由表中的直连网络为192.168.10.0/24和209.165.200.224/30。
- 远程网络 - 这些网络路由条目连接到其他路由器。路由器通过由管理员明确配置或使用动态路由协议交换路由信息来学习远程网络。在图中,R1 IPv4路由表中的远程网络为10.1.1 /24。
- 默认路由 -像主机一样,大多数路由器还包含默认路由条目,即默认网关。当IP路由表中没有更好(更长)的匹配时,将使用默认路由。在图中,R1 IPv4路由表很可能包含一个将所有数据包转发到路由器R2的默认路由。
静态路由
静态路由是手动配置的路由条目。如果网络拓扑改变,静态路由不会自动更新
静态路由具有以下特征:
- 必须手动配置静态路由。
- 如果拓扑发生变化,且静态路由不再可用,则管理员需要重新配置静态路由。
- 静态路由适用于小型网络且当冗余链路很少或没有冗余链路的情况。
- 静态路由通常与动态路由协议一起用于配置默认路由。
动态路由
动态路由协议可让路由器从其他路由器那里自动学习远程网络,包括默认路由。如果使用动态路由协议,则路由器无需网络管理员的参与,即可自动与其它路由器共享路由信息并对拓扑结构的变化作出反应。如果网络拓扑发生变化,路由器将使用动态路由协议共享此信息,并自动更新路由表。
动态路由协议包括OSPF和增强型内部网关路由协议 (EIGRP)。
动态路由协议将自动执行如下操作: - 发现远程网络
- 维护最新路由信息
- 选择通往目的网络的最佳路径
- 当前路径无法再使用时尝试找出新的最佳路径
通常一些路由器会同时使用静态路由和动态路由协议。
路由表命令
在 Windows 主机上,使用route print或命netstat -r令可以显示主机路由表。
特权 EXEC 模式命令 show ip route 用于查看思科 IOS 路由器上的 IPv4 路由表。每个路由表条目的开头都有一个代码,用于标识路由的类型或路由的学习方式。常见路由源(代码)包括以下内容:
- L - 直连的本地接口 IP 地址
- C - 直连网络
- S - 静态路由由管理员手动配置
- O - OSPF
- D - EIGRP
地址解析
有时,主机必须发送消息,但它只知道目的设备的 IP 地址。主机需要知道该设备的MAC地址,但是如何才能发现它呢? 这就是地址解析变得至关重要的地方。
MAC 和 IP
- 物理地址(MAC 地址) – 用于同一网络上的以太网网卡之间的通信。
- 逻辑地址(IP地址) – 用于将数据包从源设备发送到目的设备。目的IP地址可能与源地址在同一个IP网络上,也可能在远程网络上
数据流中 IP 数据包的 IP 地址如何与通往目的地路径中每条链路上的 MAC 地址相关联?对于IPv4数据包,这可以通过地址解析协议 (ARP) 过程来完成。对于IPv6数据包,这个过程是ICMPv6邻居发现(ND)。
ARP
设备使用地址解析协议(ARP)来确定一个已知 IPv4 地址的本地设备的目的MAC地址。当数据包发送到要封装入以太网帧的数据链路层时,设备将参照其内存中的表来查找映射至 IPv4 地址的 MAC 地址。此表临时存储在RAM内存中,称为 ARP 表或 ARP 缓存。
ARP 提供两个基本功能:
- 将 IPv4 地址解析为 MAC 地址
- 维护IPv4到MAC地址映射表
ARP请求与应答
如果设备找到 IPv4 地址,其相应的 MAC 地址将作为帧中的目的 MAC 地址。如果找不到该条目,设备会发送一个 ARP 请求。
ARP 请求使用以下帧头信息封装在以太网帧中:
- 目的 MAC 地址 – 这是一种要求 LAN 上的所有以太网网卡接受并处理 ARP 请求的广播地址FF-FF-FF-FF-FF-FF。
- 源 MAC 地址 – 这是ARP请求发送方的MAC地址。
- 类型 - ARP 消息的类型字段为 0x806。该类型字段会通知接收网卡需要将帧的数据部分传递给 ARP 进程处理。
只有具有与ARP请求相应的目的IPv4地址的设备才会以ARP应答做出响应。ARP 应答使用以下帧头信息封装在以太网帧中: - 目的 MAC 地址 – 这是ARP请求发送方的MAC地址。
- 源 MAC 地址 – 这是ARP应答发送方的MAC地址。
- 类型 – ARP 消息的类型字段为 0x806。该类型字段会通知接收网卡需要将帧的数据部分传递给 ARP 进程处理。
只有原始发送 ARP 请求的设备会收到单播 ARP 应答。收到该 ARP 应答后,设备会将 IPv4 地址及相应的 MAC 地址添加到自身的 ARP 表中。
ARP表的删除
对于每台设备,ARP 缓存定时器将会删除在指定时间内未使用的 ARP 条目。时间根据设备的操作系统不同而不同。例如,较新的 Windows 操作系统将 ARP 表条目存储 15 秒到 45 秒之间,如图所示。
命令
在思科路由器上,show ip arp命令用于显示 ARP 表。
在 Windows 10 PC 上,arp –a命令用于显示 ARP 表。
两个问题
- 广播时对性能的影响
作为广播帧,本地网络上的每台设备都会收到并处理 ARP 请求。在一般的商业网络中,这些广播对网络性能的影响可能微不足道。但是,如图所示,如果大量设备都已启动,并且同时开始使用网络服务,网络性能可能会有短时间的下降。在设备发出初始 ARP 广播并获取必要的 MAC 地址之后,网络受到的影响将会降至最小。 - ARP欺骗
有时,使用 ARP 可能会造成潜在的安全风险。威胁发起者可以使用 ARP 欺骗来执行 ARP 毒化攻击。威胁发起者使用这种技术来应答属于另一台设备(例如默认网关)的 IPv4 地址的 ARP 请求。威胁发起者会发送一个带有自己 MAC 地址的 ARP 应答。ARP 应答的接收方会将错误的 MAC 地址添加到其 ARP 表中,并将这些数据包发送给威胁发起者。
企业级的交换机包含称为动态 ARP 检查 (DAI) 的缓解技术。
邻居发现
IPv6 使用与 IPv4 类似的 ARP 流程,称为 ICMPv6 邻居发现(ND或NDP)。与 IPv4 的 ARP 请求和 ARP 应答类似,IPv6 使用邻居请求和邻居通告消息。
ICMPv6 ND (在 IETF RFC 4861 中定义)使用五种 ICMPv6 消息来执行这些服务:
- 邻居请求消息
- 邻居通告消息
- 路由器请求消息
- 路由器通告消息
- 重定向消息
邻居请求和邻居通告消息用于设备到设备的消息传递,例如地址解析(类似于 IPv4 的 ARP)。设备包括主机计算机和路由器。ICMPv6邻居请求消息使用特定的以太网和IPv6组播地址发送。
路由器请求和路由器通告消息用于设备和路由器之间的消息传递。通常,路由器发现用于动态地址分配和无状态地址自动配置 (SLAAC)。
重定向消息用于更好的下一跳选择。
路由器基本配置
配置初始路由器设置
1 | 进入全局配置模式将路由器名称配置为“R1”。 |
配置接口
此表总结了用于验证接口配置的更常用 show 命令。
1 | 进入全局配置模式。 |
配置默认网关
要为交换机配置默认网关,请使用ip default-gateway ip-address 全局配置命令。配置的 IP 地址是连接到交换机的本地路由器接口的 IP 地址。
1 | 进入全局配置模式。 |
查漏补缺
当有多个可用路由时,路由器使用哪项参数来选择到达目的网络的路径?
- 与目的网络相关的较低度量值
当有多个可用路由时,路由器使用哪项参数来选择到达目的网络的路径?
- 流标签
当在交换机 vty 线路上输入 transport input ssh 命令时会发生什么?
- 交换机和远程用户之间的通信是加密的
思科路由器启动过程分为四个主要阶段:
- 执行POST
- 加载 bootstrap 程序
- 查找并加载 Cisco IOS 软件
- 查找并加载启动配置文件,或进入设置模式