8、IP地址与配置-学习笔记
8、IP地址与配置8.1 网络层协议IP协议作用为网络层的设备提供逻辑地址负责数据包的寻址和转发IP头部字段名称长度详细说明版本Version4 位标识 IP 协议版本IPv4 固定为0100十进制 4头部长度IHL4 位表示 IP 头部的长度单位为 32 位4 字节。最小值为 5对应 20 字节无可选字段最大值为 15对应 60 字节含可选字段服务类型TOS8位用于标识数据包的服务质量需求包含 3 位优先级位已废弃和 4 位 TOS 位分别对应延迟、吞吐量、可靠性、成本总长度Total Length16位表示整个 IPv4 报文的长度头部 数据单位为字节最大值为 65535 字节标识Identification16位用于标识同一个原始数据包的分片同一数据包的所有分片标识值相同标志Flags3位包含 3 个控制位核心位为1. DF 位不分片DF1 时路由器禁止分片超过 MTU 则丢弃数据包2. MF 位更多分片MF1 表示后续还有分片MF0 表示最后一个分片片偏移Fragment Offset13位表示分片在原始数据包中的位置单位为 8 字节。例如片偏移值为 10表示该分片从原始数据包第 80 字节开始生存时间TTL8位表示数据包在网络中的最大生存跳数每经过一台路由器TTL 值减 1。当 TTL 值为 0 时数据包被丢弃并发送 ICMP 超时报文给源设备。默认值通常为 64、128 或 255协议Protocol8位标识 IP 头部承载的上层协议类型常见值1ICMP、2IGMP、6TCP、17UDP、41IPv6、89OSPF头部校验和Header Checksum16位用于校验 IP 头部的完整性确保头部在传输过程中未被篡改。路由器每转发一次数据包TTL 变化都会重新计算校验和源 IP 地址Source IP Address32位发送方设备的 IPv4 地址目的 IP 地址Destination IP Address32位接收方设备的 IPv4 地址可选字段Options0~40字节可选扩展字段用于支持安全、路由记录等特殊功能长度必须为 4 字节的整数倍无可选字段时省略填充字段Padding可变用于补齐可选字段长度使其满足 4 字节整数倍要求填充位值为 0目的省电8.2 IPv4地址介绍IP地址表示长度32bit4字节通常采用点分十进制表示IP地址构成网络部分:标识一个网络通过网络号字段判断出主机属于哪个网络主机部分区分网络内不同主机网络掩码区分IP地址中的网络部分及主机部分也是32bit也采用点分十进制来表示一堆连续的1和一堆连续的0网络掩码中1的个数为这个网络掩码的长度网络掩码一般与IP地址结合使用值为1的比特对应IP地址中的网络部分值为0对应IP地址中的主机部分IP地址寻址网络寻址二层网络寻址通过IP地址找到对应的主机接口三层网络寻址利用网关转发来自不同网段之间的数据包网关报文转发过程中首先需要确定转发路径以及通往目的网段的接口。如果目的主机与源主机不在同一网段报文需要先转发到网关然后通过网关将报文转发到目的网段。网关是指接收并处理本地网段主机发送的报文并转发到目的网段的设备。为实现此功能网关必须知道目的网段的路由。网关设备上连接本地网段的接口地址即为该网段的网关地址。IP地址分类A类0nnnnnnn nnnnnnnn nnnnnnnn nnnnnnnn0.0.0.0~127.255.255.25510nnnnnn nnnnnnnn nnnnnnnn nnnnnnnn128.0.0.0~191.255.255.255110nnnnn nnnnnnnn nnnnnnnn nnnnnnnn192.0.0.0~223.255.255.2551110nnnn nnnnnnnn nnnnnnnn nnnnnnnn224.0.0.0~239.255.255.255(用于组播)1111nnnn nnnnnnnn nnnnnnnn nnnnnnnn240.0.0.0~255.255.255.255用于研究IP地址类型网络地址主机位全为0广播地址主机位全为1可用地址非全0和全1一个网段可用地址数量计算一个网段的主机位为n位则IP地址数为2ⁿ可用IP地址数为2ⁿ-2减去网络地址和广播地址。公网和私网IP地址公网IP地址IP地址是由IANA统一分配的以保证任何一个IP地址在Internet上的唯一性。连接到Internet必须具有公网IP私网IP地址在内部网络中使用的IP地址这些地址不会在互联网上直接使用而是通过NAT网络地址转换技术转换为公网IP地址进行外部通信。在IP地址空间里A、B、C三类地址中各预留了一些地址。A类10.0.0.0~10.255.255.255B类172.16.0.0~172.31.255.255C类192.168.0.0~192.168.255.255特殊地址IP特殊IP地址地址范围作用有限广播地址255.255.255.255可作为目的地址发往该网段所有主机任意地址0.0.0.0可作为源地址在路由表中代表所有网络环回地址127.0.0.0/8测试设备自身的软件系统本地链路地址169.254.0.0/16当主机自动获取地址失败后可使用该网段中的某个地址进行临时通信255.255.255.255这个地址称为有限广播地址它可以作为一个IP报文的目的IP地址使用。路由器接收到目的IP地址为有限广播地址的IP报文后会停止对该IP报文的转发。0.0.0.0当一个主机接口在启动过程中尚未获得自己的IP地址时就可以向网络发送目的IP地址为255.255.255.255、源IP地址为0.0.0.0的DHCP请求报文希望DHCP服务器在收到自己的请求后能够给自己分配一个可用的IP地址。在路由表中0.0.0.0/0代表默认路由。127.0.0.0/8这个地址为环回地址它可以作为一个IP报文的目的IP地址使用。其作用是测试设备自身的软件系统。一个设备产生的、目的IP地址为环回地址的IP报文是不可能离开这个设备本身的。169.254.0.0/16如果一个网络设备获取IP地址的方式被设置成了自动获取方式但是该设备在网络上又没有找到可用的DHCP服务器那么该设备就会使用169.254.0.0/16网段的某个地址来进行临时通信。8.3 子网划分划分子网目的一个B类地址2^1665536用于一个广播域太过浪费广播域过于大发生广播内网负担太大子网划分方式向主机借位将原有的主机位借一位到网络位这样主机位个数减少IP可用地址数减少可规划网段增加掩码同时也要进行变化规划建议层次性实现网络的层次性划分需要综合考虑地域和业务因素采用自顶向下的方法划分达到有效管理网络、简化路由表的目标。连续性连续地址在层次结构的网络中易于进行路由聚合大大缩减路由表项数量提高路由查找的效率。扩展性分配地址时在每一层次上都要留有余量。当网络规模扩展时能保证地址分配的连续性实现网络的长远规划。高效性划分子网时要保证充分利用地址资源使子网的划分满足主机个数的要求。规划实践网络设备的管理地址或环回地址采用32位掩码设备之间互联采用30位掩码终端地址采用24位掩码环回地址Loopback接口Loopback 接口也叫环回接口是一种虚拟接口它不依附于任何物理端口也不会和链路状态有关。只要设备本身没挂Loopback 就一直是 UP 的状态。Loopback接口的作用稳定性更高物理接口的IP受接口状态影响如果物理口down掉IP地址就失效了Loopback不会存在这种情况Loopback不受链路影响只要设备开机就处于UP状态对OSPF、BGP等路由协议至关重要经常会把Loopback地址作为router-id或邻居建立地址因为它不易变更、始终可达设备的”身份证“具有稳定、不变的性质来唯一标识设备路由协议的router-id优先来源OSPF、BGP等协议启动时都要选择一个router-id这个ID是路由器在网络中的唯一标识。一般情况下router-id的优先级手动指定环回接口物理接口Loopback保证了router-id的确定性和稳定性利于运维和管理Loopback地址可以用于远程登录设备、推送配置或采集状态。使用建议地址规划统一一般分一段专用网段给Loopback掩码通常采用32因为只需要这一个地址不需要与别人通信纳入IGPOSPFISIS等宣告确保网络内所有设备都能通信经典案例PC本地ping自身IP的过程主机查看路由表发现IP是自身依据默认环回路由将数据包送入环回接口发送给本机CPU收到数据包后再原路返回完成响应如果网卡断开这个地址将不可达Loopback与物理接口断链对比网卡状态位down不显示分配IP此时ping自己会显示不可达但是依旧可以ping通127.0.0.0、127.1.1.1等因为这是操作系统保留的环回地址段127.0.0.0/8永远可达ping通127.0.0.0只能证明才做系统网络栈还在正常工作Loopback接口在路由器中的实际作用建立路由邻居关系OSPF默认基于物理口建立邻居但可以使用命令passive-interface配合neighbor强制使用Loopback地址BGP等协议要求点对点TCP建邻Loopback是首选地址因为物理口down了邻居也不会挂路由器的Router-ID来源Loopback不受物理链路状态影响能确保网络拓扑变更时Router-ID不会波动稳定的隧道端点在VPN、Overlay、隧道类技术中通常需要指定两端设备的源地址和目的地址选Loopback作为源地址可以避免“物理口down隧道也跟着挂”的问题确保隧道在物理变动中依旧稳定运行网络可达性与管理入口SNMPTelnetSSHNMS系统采集地址日志服务器SyslogNetFlow采集地址绑定ACL策略路由基于Loopback精确匹配来源设备网络探测ping/traceroute用Loopback更具识别性网络测试与环路检测VLAN层测试用于VLAN的环回检测防止环路MAC层测试部分交换机Loopback帧功能用于MAC地址学习测试端口级别环路检测比如在简单组网中用Loopback模拟端口互通判断是否存在二层环路可搭配BPDU8.4 ICMP协议ICMP协议用来在网络设备间传递各种差错和控制信息。ICMP消息封装在IP报文中IP报文头部Protocol值为1时表示ICMP协议。ICMP报文Type1字节Code1字节Checksum 校验和2字节Message BodyVariable length长度可变TypeCode描述00Echo Reply30网络不可达31主机不可达32协议不可达33端口不可达50重定向80Echo Request类型十进制内容0回送应答3目标不可达4原点抑制5重定向或改变路由8回送请求9路由器公告10路由器请求11超时17地址子网请求18地址子网应答Message Body中包含32 bit的可变参数这个字段一般不使用通常设置为0。在ICMP重定向消息中这个字段用来指定网关IP地址主机根据这个地址将报文重定向到指定网关。在Echo请求消息中这个字段包含标识符和序号源端根据这两个参数将收到的回复消息与本端发送的Echo请求消息进行关联。尤其是当源端向目的端发送了多个Echo请求消息时需要根据标识符和序号将Echo请求和回复消息进行一一对应。ICMP差错检测ICMP Echo消息常用于诊断源和目的之间的网络连通性同时还可以提供其他信息如报文往返时间等。典型应用Ping功能能验证网络的连通性会统计响应时间和TTL(IP包中的Time To Live生存周期)过程ping命令会先发送一个 ICMP Echo Request给对端对端接收到之后, 会返回一个ICMP Echo Reply若没有返回就是超时了会认为指定的网络地址不存在。ICMP错误报告ICMP定义了各种错误消息用于诊断网络连接性问题根据这些错误消息源设备可以判断出数据传输失败的原因。如当网络设备无法访问目标网络时会自动发送ICMP目的不可达报文到发送端设备。如果网络中发生了环路导致报文在网络中循环且最终TTL超时这种情况下网络设备会发送TTL超时消息给发送端设备。如果目的地不可达则中间的网络设备会发送目的不可达消息给发送端设备。目的不可达的情况有多种如果是网络设备无法找到目的网络则发送目的网络不可达消息如果网络设备无法找到目的网络中的目的主机则发送目的主机不可达消息。典型应用Tracert功能打印出可执行程序主机一直到目标主机之前经历多少路由器。作用Tracert基于报文头中的TTL值来逐跳跟踪报文的转发路径Tracert是检测网络丢包和时延的有效手段同时可以帮助管理员发现网络中的路由环路。8.5 DHCP原理与配置静态配置IP地址的缺陷利用率低工作量大DHCP概念采用客户端/服务器架构优势降低客户端的配置和维护成本集中管理DHCPv4报文类型报文名称说明DISCOVERDHCP客户端首次接入网络时发送的第一个报文用来寻找DHCP服务器。OFFERDHCP服务器用来响应DHCP DISCOVER报文此报文携带了各种配置信息。REQUEST客户端初始化后发送广播的DHCP REQUEST报文来回应服务器的DHCP OFFER报文。 客户端重启后发送广播的DHCP REQUEST报文来确认先前被分配的IP地址等配置信息。 当客户端已经和某个IP地址绑定后发送DHCP REQUEST单播或广播报文来更新IP地址的租约。ACK服务器对客户端的DHCP REQUEST报文的确认响应报文客户端收到此报文后才真正获得了IP地址和相关的配置信息。NAK服务器对客户端的DHCP REQUEST报文的拒绝响应报文例如DHCP服务器收到DHCP REQUEST报文后没有找到相应的租约记录则发送DHCP NAK报文作为应答告知DHCP客户端无法分配合适IP地址。DECLINE当客户端发现服务器分配给它的IP地址发生冲突时会通过发送此报文来通知服务器并且会重新向服务器申请地址。RELEASE客户端可通过发送此报文主动释放服务器分配给它的IP地址当服务器收到此报文后可将这个IP地址分配给其它的客户端。INFORMDHCP客户端获取IP地址后如果需要向DHCP服务器获取更为详细的配置信息网关地址、DNS服务器地址则向DHCP服务器发送DHCP INFORM请求报文。基于UDP传输客户端源端口号68服务器源端口号67DHCP客户端获得IP流程第一步发现阶段首次接入网络的DHCP客户端不知道DHCP服务器的IP地址为了学习到DHCP服务器的IP地址DHCP客户端以广播方式发送DHCP DISCOVER报文目的IP地址为255.255.255.255给同一网段内的所有设备。第二步提供阶段与DHCP客户端位于同一网段的DHCP服务器都会接收到DHCP DISCOVER报文DHCP服务器选择跟接收DHCP DISCOVER报文接口的IP地址处于同一网段的地址池并且从中选择一个可用的IP地址然后通过DHCP OFFER报文发送给DHCP客户端。通常DHCP服务器的地址池中会指定IP地址的租期如果DHCP客户端发送的DHCP DISCOVER报文中携带了期望租期服务器会将客户端请求的期望租期与其指定的租期进行比较选择其中时间较短的租期分配给客户端。第三步选择阶段如果有多个DHCP服务器向DHCP客户端回应DHCP OFFER报文则DHCP客户端一般只接收第一个收到的DHCP OFFER报文然后以广播方式发送DHCP REQUEST报文该报文中包含客户端想选择的DHCP服务器标识符和客户端IP地址。第四步确认阶段当DHCP服务器收到DHCP客户端发送的DHCP REQUEST报文后DHCP服务器回应DHCP ACK报文表示DHCP REQUEST报文中请求的IP地址分配给客户端使用。DHCP RelayDHCP中继它是为解决DHCP服务器和DHCP客户端不在同一个广播域而提出的提供了对DHCP广播报文的中继转发功能能够把DHCP客户端的广播报文“透明地”传送到其它广播域的DHCP服务器上同样也能够把DHCP服务器的应答报文“透明地”传送到其它广播域的DHCP客户端。DHCP Relay工作原理DHCP租期更新DHCP服务器采用动态分配机制给客户端分配IP地址时分配出去的IP地址有租期限制。租期到期或者客户端下线释放地址后服务器会收回该IP地址收回的IP地址可以继续分配给其他客户端使用。这种机制可以提高IP地址的利用率避免客户端下线后IP地址继续被占用。如果DHCP客户端希望继续使用该地址需要更新IP地址的租期。当租期达到50%时DHCP客户端会自动以单播的方式向DHCP服务器发送DHCP REQUEST报文请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文则租期更新成功即租期从0开始计算如果收到DHCP NAK报文则重新发送DHCP DISCOVER报文请求新的IP地址。当租期达到87.5%时如果仍未收到DHCP服务器的应答DHCP客户端会自动以广播的方式向DHCP服务器发送DHCP REQUEST报文请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文则租期更新成功即租期从0开始计算如果收到DHCP NAK报文则重新发送DHCP DISCOVER报文请求新的IP地址。如果租期时间到时都没有收到服务器的回应客户端停止使用此IP地址重新发送DHCP DISCOVER报文请求新的IP地址。