IPv4与IPv6的关系
在今天的技术时代,我们见证了互联网和网络设备使用的巨大飞跃。每个家庭都有笔记本电脑、智能手机、数字手表、物联网设备、家庭自动化组件,以及其他与家庭网络或互联网相连的设备。设备之间通过各种网络协议进行通信,其中TCP和IP是最经常使用的协议。每个连接到网络的设备都必须有一个IP地址,以识别网络上的设备。
这篇文章解释了互联网协议以及IPv6与IPv4的区别。
什么是 IP(互联网协议)
作为人类,我们使用我们的名字来识别和交流。同样,在计算世界中,设备使用IP地址来识别和相互交流。所有计算设备用于相互通信的共同语言被称为协议。与人类语言相似,协议也有一套规则,用于格式化和处理数据。
互联网协议(IP)是一套规则,规定了计算机之间的寻址和数据路由。它主要用于网络传输协议,如TCP和UDP。
互联网今天的存在就是因为这种独特的寻址模式。IANA管理着连接到互联网的网络/网站的IP地址范围。然而,如果我们运行一个孤立的本地网络基础设施,我们可以根据自己的喜好来分配号码。现在,让我们来了解一下这两种架构的细枝末节及其比较分析。
Ipvch
互联网协议(IP)的第一个主要版本是版本4(IPv4)。它使用32位网络寻址模式,进一步分成四个8位数,称为八位数。例如,google.com的IP地址为141.251.36.46。这种格式被称为点状四字节符号。这些IP地址可以手动配置或通过DHCP服务器自动获得。
为了检查远程设备的实时状态,我们可以使用ping
命令对该IP进行ICMP探查:
ping -c 1 google.com
输出
PING google.com (142.251.36.46) 56(84) bytes of data.
64 bytes from ams17s12-in-f14.1e100.net (142.251.36.46): icmp_seq=1 ttl=116 time=247 ms
...
IP地址被分成两部分,网络和主机地址,用于创建子网络。子网号码有助于决定IP的网络和主机部分。另外,可用的IP空间被划分为五个不同的等级,如下表所示。
子网的计算涉及到屏幕后面的一些数学红字。为了方便我们的计算,我们可以使用ipcalc
或subnetcalc
等工具来计算IPv4子网。下面的片段显示了如何使用这些工具:
ipcalc 110.0.20.18/24
输出
Address: 110.0.20.18 01101110.00000000.00010100. 00010010
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 110.0.20.0/24 01101110.00000000.00010100. 00000000
HostMin: 110.0.20.1 01101110.00000000.00010100. 00000001
HostMax: 110.0.20.254 01101110.00000000.00010100. 11111110
Broadcast: 110.0.20.255 01101110.00000000.00010100. 11111111
Hosts/Net: 254 Class A
subnetcalc 192.168.10.15/24
输出
Address = 192.168.10.15
11000000 . 10101000 . 00001010 . 00001111
Network = 192.168.10.0 / 24
Netmask = 255.255.255.0
Broadcast = 192.168.10.255
Wildcard Mask = 0.0.0.255
Hosts Bits = 8
Max. Hosts = 254 (2^8 - 2)
Host Range = { 192.168.10.1 - 192.168.10.254 }
Properties =
- 192.168.10.15 is a HOST address in 192.168.10.0/24
- Class C
- Private
GeoIP Country = Unknown (??)
DNS Hostname = (Name or service not known)
通常情况下,IP地址是给终端主机和路由器网关接口的,如下图所示。
在这里,来自机器A(10.235.64.58)的流量击中了互联网云左边的路由器网关接口(10.235.64.57)。它通过互联网路由到达谷歌服务器网关,最后到达目标服务器。
要识别网络接口IP,你可以使用诸如ifconfig
、hostname
或ip
这样的命令。
ifconfig ens160
输出
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.235.64.58 netmask 255.255.255.252 broadcast 10.235.64.59
inet6 fe80::fc7f:d8da:a969:1c1d prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:23:6f:30 txqueuelen 1000 (Ethernet)
RX packets 35607241 bytes 34540488400 (34.5 GB)
RX errors 0 dropped 12 overruns 0 frame 0
TX packets 24701952 bytes 15008379564 (15.0 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
hostname -I
输出
10.235.64.58
有一些特殊用途的网络IP地址,如0.0.0.0
或127.0.0.1
。前者是默认路由或四位数路由,而后者被称为回环地址。
在下面的片段中,我们将看到内核IP路由表和该网络的默认路由。标志 "U "代表网络路由是向上的,而 "G "表示网络路由是网络网关。
netstat -rn | grep ens160
输出
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.235.64.57 0.0.0.0 UG 0 0 0 ens160
10.235.64.56 0.0.0.0 255.255.255.252 U 0 0 0 ens160
通常情况下,IPv4数据报由一个20字节的头字段、选项字段和长度可变的数据字段组成。样本数据包的格式如下所示。
下面,Wireshark捕获有助于从实时流量中破译数据包头信息。
ipvsh
互联网协议第6版是互联网协议(IP)的更新版本。互联网协议第6版旨在取代旧版(IPv4),截至2018年,旧版承载了75%的互联网总流量(来源:谷歌IPv6统计)。
IPv6 地址是 128 位(16 字节),使用 32 个十六进制数字,而这些数字进一步分为八组,每组四位数字以便于管理。下面显示了一个简要说明。
在IPv6的命名规则中,有几个基本的步骤。
规则1:所有字母都不区分大小写。例如,'ab41'等于'AB41'.。规则2:带有'0'的连续字段可以被看作是"::",但在一个寻址中只有一次。规则3:在一个字段中表示前导零是可选的。例如,'001a'等于'1a'。
例如,让我们来看看IPv6的地址,45ab:0000:a179:0000:0000:c1c0:abcd:0876。
应用规则1 => 45ab:0000:a179:0000:0000:c1c0:abcd:0876。应用规则2 => 45ab:0:a179:0:0:c1c0:abcd:876。应用规则3 =>45ab:0:a179::c1c0:abcd:876
有三种类型的IPv6地址:单播、组播和任播。单播地址是指单个网络接口和传递到该特定接口的数据包。此外,单播地址有本地(链接本地)和全局范围级别。多播地址是指数据包被传送到的组接口。任播地址是群组接口,数据包被传送到最近的接口。
以下是几个著名的地址。
subnetcalc 2001:4860:4860::8888/64
输出
Address = 2001:4860:4860::8888
2001 = 00100000 00000001
4860 = 01001000 01100000
4860 = 01001000 01100000
0000 = 00000000 00000000
0000 = 00000000 00000000
0000 = 00000000 00000000
0000 = 00000000 00000000
8888 = 10001000 10001000
Network = 2001:4860:4860:: / 64
Netmask = ffff:ffff:ffff:ffff::
Wildcard Mask = ::ffff:ffff:ffff:ffff
Hosts Bits = 64
Max. Hosts = 18446744073709551616 (2^64 - 1)
Host Range = { 2001:4860:4860::1 - 2001:4860:4860:0:ffff:ffff:ffff:ffff }
Properties =
- 2001:4860:4860::8888 is a HOST address in 2001:4860:4860::/64
- Global Unicast Properties:
+ Interface ID = 0000:0000:0000:8888
+ Sol. Node MC = ff02::1:ff00:8888
GeoIP Country = United States (US)
DNS Hostname = dns.google
同样,IPv6数据包有头和有效载荷。头部大小固定为40字节,源和目的地址占32字节。样本数据包的格式如下所示。
虽然IPv6有很多优点,但它不能取代IPv4。两个协议版本必须共存一段时间才能实现无缝迁移。因此,服务提供商正在提供一个双栈支持系统,它拥有一个能够理解IPv4和IPv6数据包的网络接口。
有一些智能过渡机制,即IPv6隧道、IPv4映射IPv6地址等。前者将IPv6数据包封装在IPv4中,而后者在双协议栈实施中将IPv6映射到IPv4地址。
IPv4与IPv6--快速比较分析
总结
我们探讨了互联网协议的基础知识及其版本。一路走来,文章通过比较分析,阐明了IPv4和IPv6的寻址模式、数据包格式和功能。尽管今天IPv4承载了大部分的互联网流量,但IPv6是网络世界的未来。
关于作者
Sriram Ramanujam
一个经验丰富的全球网络自动化架构师,在开发网络自动化、工程设计、运营和遥测的可扩展解决方案方面拥有10年以上的丰富行业经验。