
一、IPv4编址和子网划分
1. IPv4地址概述
IPv4协议簇是TCP/IP协议簇中最重要的协议簇,主要工作在TCP/IP协议栈中的网络层,网络层可以提供数据传输功能,传输过程中可以按照IP报文逐个发送。
地址结构:IPv4地址长度为32位,包括网络位和主机为两部分
网络位:标识IP地址所属的网段
主机位:标识IP地址在网段中的具体节点
IPv4报文结构
版本:目前的IP协议版本号为4
服务类型:用于IP报文的标记,区分数据的重要度,多用于QoS
生存时间:IP报文所允许通过路由器的最大数量,每经过一台路由TTL会减少1,用于防环
协议:指出IP报文携带的数据库使用的协议(TCP还是UDP协议)
源IP地址:标识IP数据报的源端设备
目的IP地址:标识IP数据报的目的地址

2. IPv4地址分类
在早期网络中,IP地址没有掩码的概念。而是根据网络大小,按照"有类"的方式将网络划分为ABCDE五类。ABC类IP地址的网络位是固定的,DE类则没有网络位和主机位。可以根据网络位进行确定,网络位一致则可以理解为处于同一广播域。
如何根据首段地址区分网络类
计算A类的地址范围
0 XXXXXXX.主机位.主机位.主机位
最小: 0 XXXXXXX.主机位.主机位.主机位,将X全部换为0,转换为十进制= 0.主机位.主机位.主机位
当然IPv4地址不可能以0开头,所以+1得出:1.主机位.主机位.主机位
最大: 0 XXXXXXX.主机位.主机位.主机位,将X全部换为1,转换为十进制= 127.主机位.主机位.主机位
所以得出A类的地址范围为= 1 ~ 127A类地址范围:1.0.0.0 ~ 126.255.255.255
B类地址范围:128.0.0.0 ~ 191.255.255.255
C类地址范围:192.0.0.0 ~ 223.255.255.255
D类地址范围:224.0.0.0 ~ 239.255.255.255
E类地址范围:240.0.0.0 ~ 247.255.255.255

3. 私有IP地址和特殊地址
私有地址只能应用在内网,在内网边界通过NAT将数据的所有地址转换为公网地址
A类地址中的私有地址:10.0.0.0至10.255.255.255
B类地址中的私有地址:172.16.0.0至172.31.255.255
C类地址中的私有地址:192.168.0.0至192.168.255.255
特殊地址
本地环回地址:127.X.X.X 【用于测试使用】
网络地址:例192.168.1.0/24 【主机位全为0,用于表示整个子网】
广播地址:例192.168.1.254/24 【主机位全为1,用于广播】
本地广播地址:255.255.255.255
未知地址:0.0.0.0 【网络位和主机位全为0】
4. 子网掩码与子网划分
子网掩码
用于区分IP地址中的网络位和主机位
子网掩码由连续的1和0组成:1对应网络位,0对应主机位
VLSM可变长子网掩码
使用多个不同的子网掩码把网络划分为不同大小的子网
改变子网掩码将大网络划分为若干个小网络
子网划分
子网的个数= 2x (x代表子网的位数)
每个子网内有效的主机个数为 = 2y-2 (y代表主机位数)
子网划分案例
# 192.168.10.213 255.255.255.192(26)
1、根据IPv4地址的首段判断,该地址为C类地址,子网掩码为 255.255.255.0(24)
2、计算子网位: 255.255.255.192 - 255.255.255.0 = 0.0.0.192 --> 将192转换为二进制得出 1100 0000
3、子网数:子网缩写运算,26-24=2,2^2=4个
4、主机数:32-26=6, 2^6=64个
5、有效主机数= 64-2=62(减去广播地址和网络地址)
5. CIDR子网聚合
CIDR,无类域间路由。将多个“有类”的子网合并成一个,用来减少路由表中的路由条目。在自然分类中,A类、B类和C类地址的网络位和主机位长度是固定的,分别对应着不同大小的网络和主机数量,这种固定的分类方式导致了IP地址空间的浪费和不均匀分配。
子网划分则是一种对网络进行更小粒度划分的技术,以进一步提高IP地址的利用率。然而,子网划分仍然受到原始分类的限制。CIDR不受制于A、B、C类地址空间的限制,它使用前缀长度来表示IP地址的网络部分的位数
CIDR消除了自然分类地址和子网划分之间的界限,使得IP地址的分配和路由选择更加统一和简化

6. 节约IP地址的技巧
在分配IP地址时,需要注意:
配置Loopback地址,使用的子网掩码为32
配置互联地址时,使用的子网掩码为/30
对业务网关进行统一设定,如网关设置为 x.x.x.254
二、ARP协议原理与应用
OSI参考模型将网络划分为7层,IP地址工作在第三层网络层中,MAC地址工作在第二层数据链路层。
在以太网发送IP数据包时,先封装网络层的包头再封装数据链路层的包头,由于在发送时只知道目标IP地址而不知道MAC地址,又不能跨越层,所以需要使用ARP地址解析协议。
ARP协议可以根据网络层IP数据包头中的IP地址信息解析出对应的MAC地址,确保通信。ARP协议不能穿越路由器,不能被转发到其它广播域中。
ARP缓存表:用于存储IP地址和经过解析的MAC地址对应关系。
1. ARP的工作流程和工作原理
工作流程

工作原理
先查看本地ARP表,如果本地ARP表中没有目的IP地址对应的MAC表项,则广播发送ARP请求包
源主机发送ARP request 请求包,请求目的主机的MAC地址
同网段内的所有主机都能收到ARP request请求包,但是只有目的主机才会回复ARP reply数据包【广播发送,单播回复】
源主机收到ARP reply 数据包后,将目的主机的 IP-MAC对应关系添加进ARP表中,完成数据的以太网封装【指的是将数据包封装在以太网帧中的过程,帧包含源和目的设备的MAC地址和数据本身】**,进行数据交互

具体的案例讲解

2. ARP缓存表
动态表项:通过ARP协议自动学习,可以被更新,缺省老化时间为120秒
静态表项:手动配置,不能被更新,没有老化时间限制
Windows系统查看ARP表项
arp -aLinux系统查看ARP表项
arp -vRGOS查看ARP表项
show arp3. 免费ARP
免费ARP,也被称为Gratuitous ARP或无故ARP,是一种特殊的ARP请求报文。
IP地址冲突检测:免费ARP报文通过广播的方式发送到网络中,如果某台主机使用了当前主机的IP地址,则会回复一个ARP响应;收到ARP响应后,主机会发出IP地址冲突的警告。
更新ARP表项:当某台主机的MAC地址变化或IP地址变化,该主机会发送免费的ARP广播,网络中所有主机的ARP表项中如果存在该条目将会根据免费的ARP报文来更新自己的缓存表。
免费ARP报文还在一些特定场景中产生,如主机/系统启动期间进行网口/接口配置时,或者网卡进行了某些配置变动导致网口重新启动(如插拔网线、自动获取IP地址、手动更改IP地址、掩码、网关等参数)时。
4. 代理ARP
代理ARP(Proxy ARP)是ARP协议的一个变种,用于处理非自身发起的ARP请求。
提供网络通信效率和稳定性:在局域网中,当一个主机需要和另一个主机进行通信,它需要知道该主机的MAC地址。如果缓存表中没有对应的MAC地址,主机会发送ARP请求广播;代理ARP能够代替主机完成ARP协议的操作,响应ARP请求,并将主机的IP地址和MAC地址进行映射记录在本地缓存表中。
解决跨网段ARP请求:出现跨网段的ARP请求时,路由器会将自己的MAC地址返回给发起ARP广播请求的主机,实现MAC地址的代理(善意的欺骗),使主机能够通信。

ARP请求的源IP地址与路由器的IP地址处在同一个子网中,且路由器有ARP请求的IP地址的路由,代理ARP就可以使网络中的主机无需配置默认网关和路由策略,就能实现与其他网络中的计算机通信。
源IP地址与路由器的IP地址处于同一个子网中:发送ARP请求的主机与路由器在同一个网段中,在TCP/IP网络中,处于同一个网段的主机可以直接通信无需经过路由器转发。当主机需要获取目标主机的MAC地址时,会直接在本地子网中发送ARP广播
路由器有ARP请求的IP地址路由:即使发送ARP请求的主机与路由器同一网段,当请求的目标IP地址可能在另一个网段中。这样就需要路由器只能存在通往目标IP地址段的路由条目,这样才可以处理跨网段的通信
也就是说,代理ARP允许路由器代替目标主机响应ARP请求,路由器会告知发送ARP请求的主机,自己知道如何达到目标IP地址,并提供自身的MAC地址作为“下一跳”地址。这样主机可以将数据包发送到路由器,由路由器将数据包根据路由发送到目标网络中。
5. RARP反向地址解析协议
用于将物理地址(MAC地址)转换为网络层地址(IP地址)的协议。
它主要在以太网上实现,用于网络启动和其他情况下的动态IP地址分配。当一个设备需要知道相应的IP地址时,它会在网络上广播一个RARP请求包,拥有该IP地址的设备会向请求设备返回一个RARP响应包,从而告诉请求设备所需的IP地址。这种机制主要用于实现无盘系统的网络启动,例如某些工作站。
