目录
2.1 引言
2.2 表示IP地址
2.3 基本的IP地址结构
单播地址
全球单播地址:
组播地址
任播地址
2.4 CIDR和聚合
2.5 特殊用途地址
2.6 分配机构
2.7 单播地址分配
2.8 与IP地址相关的攻击
2.9 总结
2.1 引言
2.2 表示IP地址
IPv4地址:32位
IPv6地址:128位
IPv4兼容的IPv6地址:
::IPv4_address,允许IPv6主机与IPv4主机直接通信。
IPv4映射的IPv6地址
::FFFF:IPv4_address,用于过渡期或双栈。
上述两种IPv6地址方案已被淘汰,取而代之是原生IPv6地址方案。
现代IPv6网络中,更倾向于使用NAT64和DNS64来实现IPv4和IPv6之间的通信
NAT64和DNS64通常需要同时存在。
NAT64:将IPv6数据包转换为IPv4数据包。
DNS64:用于解析IPv4地址并生成IPv6地址。
举例,IPv6 访问IPv4时:
1. IPv6主机发送DNS查询请求到DNS64服务器,请求某域名的IPv6地址。
2. DNS64服务器收到请求后,查询到域名对应的IPv4地址,并转换为特定的IPv6 地址。
如,IPv4 地址 192.0.2.1转换为 IPv6 地址 64:ff9b::192.0.2.1。
3. IPv6主机发送数据包到目标IPv6 地址,即DNS64生成的特定IPv6 地址。
4. 数据包经过NAT64网关时,NAT64网关检测到特定的前缀,并将 IPv6数据包转换为对应的IPv4数据包。
5. 最终数据包进入IPv4网络,通信成功。
为区分IPv6中冒号和端口号前的冒号,使用[ ]包围IPv6地址,如:
http://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:8080
2.3 基本的IP地址结构
分类寻址
IPv6没有IPv4的子网掩码,而是前缀长度,如2001:0db8:85a3:0000::/64
子网掩码:纯粹是内网内部的局部问题。外网不关心子网号,只关心网络号。
可变长度子网掩码 VLSM:用于分割一个网络号,使每个子网支持不同数量的主机。不同子网长度不一致。
旧的路由协议不支持VLSM,如RIP v1。
子网广播地址(定向广播):
将 IPv4地址中主机位全为1。路由器不转发定向广播报文。
本地网络广播(有限广播):
255.255.255.255,路由器不能转发。
为了提高地址利用率,减少网络负载,增强安全性,IPv6没有广播地址,仅使用组播地址。
IPv6不进行NAT转换,因为地址够用。
单播地址
链路本地地址:
只用于同一链路通信,该报文不被路由器转发。
前缀是fe80::/10
所有IPv6接口都需要配置该类型地址。
用于邻居发现、路由通告RA,路由请求RS,IPv6地址自动配置,局域网设备通信。
全球单播地址:
全球唯一,类似IPv4公有地址,前缀是2000::/3,格式如下:
Global Routing prefix: ISP分配。
Subnet ID: 用于划分子网,网络管理员分配。
Interface ID:在子网中不能重复,可由MAC地址生成。
唯一本地地址Unique Local Addresses (ULA):
前缀是fc00::/7,类似IPv4私有地址(10.0.0.0/8、192.168.0.0/16)
使用场景:内网服务器、打印机、智能家居设备。
环回地址:
类似于127.0.0.1
未指定地址:
地址是全0,不能分配给接口。用该地址作源地址以表示接口此时无IPv6地址,仅可用于报文的源地址。
组播地址
全球组播地址,用于多播通信,类似IPv4多播地址。前缀是ff00::/8。
标准组播地址:范围为 ff01::/16 到 ff0f::/16
使用场景:
路由器发送路由通告和路由器通告消息的目标地址。
邻居发现过程中的目标地址。
DHCPv6 服务器和客户端之间的通信。
任播地址
即Anycast Address
前缀:ff00::/8
用于一对多通信。一个数据包若以任播地址为目的地址,只被路由到最近的目标节点。
作用:服务冗余,负载均衡,路由优化。
使用场景:分布式系统、CDN(内容分发网络)、云计算等。
如ff02::1,表示所有路由器的任播地址。
链路本地地址和全球地址都使用Interface ID(64位)作为低序位,
Interface ID直接有MAC地址组成成为EUI64格式,EUI拓展唯一标识符,
EUI-48地址即MAC地址。
EUI-48转换为EUI-64:
EUI-48地址00-11-22-33-44-55转换为EUI-64地址00-11-22-FF-FE-33-44-55,然后将EUI-64的u位取反,得到Interface ID
EUI 64地址第一字节低两位:分别是u位和g位
u:指示EUI-64地址的全球唯一性。0:是全球唯一地址,1:不是全球唯一地址。
g:是否是组播地址。0:是单播地址,1:是组播地址。
MAC地址00:30:48:2A:19:89映射为一个IPv6地址完整流程:
1. 转换为EU1-64形成地址00:30:48:ff:fe:2a:19:89。
2. u位被取反,形成IID 值02:30:48:ff:fe:2a:19:89。
3. 使用保留的链路本地前缀fe80::/10,形成完整地址fe80::230:48ff:fe2a:1989。/64是标准子网掩码长度。
windows IPv6地址fe80: :5efe:10:153:141:135%2
其中5efe中fe表示后面嵌入的是IPv4地址,其中OUI 为( 00-00-5E)。
2.4 CIDR和聚合
CIDR(Classless Inter-Domain Routing,无类 域间 路由):消除A类、B类和C类地址以及划分子网的概念。尽量合并成一条路由,减少路由条目。
VLSM(Variable Length Subnet Mask,可变长子网掩码):
VLSM关注划分同一网络的子网大小。
CIDR更注重于整体的IP地址划分和路由表聚合。
CIDR与VLSM比较:
CIDR掩码在全球性路由系统可见。CIDR把几个标准ABC类网络合成一个大的网络
VLSM只在站点本地可见,VLSM可把一个标准网络分成几个子网。
聚合:合并路由表,减少路由表项。
2.5 特殊用途地址
IPv4
0.0.0.0:未匹配路由表时,用于查询目的地址为0.0.0.0的路由表项,得到下一跳。
169.254.0.0/16:即自动配置IP地址。没有DHCP服务器时,设备使用该地址得到一个本地链接 IP 地址。
224.0.0.0到239.255.255.255:多播地址。
IPv6
ff00::/8 组播地址,作为目的地址使用,具体有:
ff02::1 链路本地所有节点
ff02::2 所有路由器
ff02::5 OSPFv3 路由器
ff02::9 RIPng路由器
fc00::/7 唯一本地单播地址:类似于IPv4私有地址,不在互联网上路由。
fe80::/10 链路本地单播地址:用于链路上的本地通信和邻居发现。是自动配置的。
IPv4 组播地址
ASM(Any-Source Multicast)任意源组播:
IPv4中常用的组播模式,不关心发送者身份,存在安全和拥塞等问题。
SSM(Source-Specific Multicast)源特定组播:
新型组播模式,一个组的发送方只有一个,且固定。
使用场景:视频直播。
Linux开启SSM:
启用IGMPv3,以支持SSM
ip maddr add <multicast_address> dev <interface> src <source_address>
Linux开启ASM:
ip maddr add <multicast_address> dev <interface>
PIM(Protocol Independent Multicast):一种路由协议,用于在IP网络中支持组播传输。
基于单播前缀的组播地址:UBM
单播地址192.0.2.0/24 对应的UBM地址 234.192.0.2 (对UBM左移8位就知道单播地址)
作用:灵活扩展来定义组播组。
IPv6 组播地址
ff00::/8 预留给组播地址。
任播地址anycast :
多个设备共享相同任播地址,数据包只路由到其中最近设备。
场景:用于DNS,内容分发网络CDN,负载均衡,NTP服务器。
任播地址范围:224.0.0.0到239.255.255.255,FF00::/8
2.6 分配机构
单播:
每个大洲一个IP注册结构,为国家分配地址空间,由ISP分配。
供应商独立的地址PI:不由ISP分配,客户单独拥有,ISP单独为其路由
whois命令:跟踪一个IP从哪里分配来。
命令whois www.baidu.com
从WHOIS服务器得到,该域名的注册商、注册日期、到期日期以及域名联系人的信息。
命令whois 203.0.113.0
从WHOIS服务器得到,该IP地址注册信息,包括IP分配机构、分配日期、使用情况等。
组播方式:
ASM/SSM
实现组播可能需网络管理员要和ISP沟通或厂商。
2.7 单播地址分配
netstat -gn:查看组播地址。
DMZ:使外网用户可以访问内网服务器(如Web, 邮件,FTP),同时限制他们访问内部其他网络。通过防火墙规则实现。
2.8 与IP地址相关的攻击
2.9 总结
相邻的地址前缀可被聚合