科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航



ZDNet>网络频道>ZD评测>IP子网图解教程

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

网络工程师需要对IP子网如何工作有一个牢固的认识,尽管文章内容在教学中经常不受重视,但是许多人对此十分困惑。文章总结出一个解释IP子网的简单,图形化的方法。

来源: 2006年08月04日

关键字:IP地址 子网掩码 子网 网络管理 企业内部网

关键字: 企业内部网 网络管理

网络工程师需要对IP子网如何工作有一个牢固的认识,尽管文章内容在教学中经常不受重视,但是许多人对此十分困惑。文章总结出一个解释IP子网的简单,图形化的方法。

IP子网是任何网络工程师必须理解的基本主题,尽管许多人通常难以理解它。在过去,因为它从未以易于理解的方式向人们解释清楚,通过我自己的图形化方法和计算机技巧,我帮助过不计其数的人学习子网是什么,现在我将所有的经验融入本文中。

IP地址和子网
尽管IP代表网际协议,但是它一个应用于从最小的专用网到大型全球互联网的通信协议。IP地址是一个IP网络中单一设备的唯一标识符。IP地址由一个32位的二进制数组成,范围从0到4294967295。从理论上说,这表示Internet可以包括大约43亿个唯一的对象。但是为了让如此大的地址块更容易处理,它由点细分为四个8位成员,或“八位组”。取代了太长而难以阅读的32位二进制,它被转换为四个小于256的十进制。八位组由从0到255的数字组成。下面的数字说明IP地址是如何增加的。

0.0.0.0
0.0.0.1
...增加252台主机...
0.0.0.254
0.0.0.255
0.0.1.0
0.0.1.1
... 增加252台主机...
0.0.1.254
0.0.1.255
0.0.2.0
0.0.2.1
...增加4+亿台主机...
255.255.255.255

单词subnet是sub network的简写,大型网络中的小型网络。无法再细分的最小子网被认为是单一“广播域”,它与一个以太网交换机上的单一LAN段(局域网)直接互连。广播域扮演着重要的角色,因为网络上的设备在这里通过相互的MAC地址直接进行通信,而不路由多个子网,不打扰整个Internet。MAC地址通信被限制在一个更小的网络中,因为它们依赖ARP广播发现周围的路径,而且广播只能在广播通信总量以纯粹的广播噪音影响整个网络速度之前继续增加。因为这个原因,最常见的最小子网是8位的,或者正好是一个八位组,尽管它可以更小或更大些。

子网有起始和结尾,起始数总是偶数,结尾数总是奇数。起始数是“网络ID”,结尾数是“广播ID”。你不能使用这两个数,因为它们有特殊的意义和特殊的用途。Network ID是特定子网的正式名称,结尾数是子网中每台设备监听的广播地址。无论何时,你想指定某个子网,你指向它的网络ID和其定义自身大小的子网掩码。无论何时,你想向子网上的所有人发送数据(例如多播),你将之发送到广播ID。在本文的后面,我将向你说明一个简单的确定网络ID和广播ID的数学和图形化方法。

图形子网标尺
过去几年,当我看到人们在IP子网课程中痛苦挣扎时,我想找到教授该课程的更好的方法。很快我认识到许多IT学生缺少必要的数学背景,而且难以理解二进制数的概念。为了帮助消除这个困难,我提出图A中显示的图解说明子网的图形化方法。在本例中,我们考虑IP地址范围从10.0.0.0 到10.0.32.0。需要注意的是末尾IP 10.0.32.0自身实际上是下一子网的开始。这个网络范围正好结束在10.0.31.255。

图A

需要注意的是对于每个增加的位,子网长度连同主机数量一起加倍。最小的核对符号表示8位,它包含一个256台主机的子网,实际上在网络中只有254台可用主机。在一个子网中计算有多少可用主机的最简单方法是2的位数次幂再减2。对于9位,我们总共有510台可用主机,因为2的9次幂是512,而我们不算开始和结尾两个地址。同理继续计算到13位,在上面显示的整个标尺中,我们总共有8190台可用主机。

学习正确地划分子网
子网可以被细分为更小的子网,甚至仍可再进一步细分。分割一个网络时最重要是明白你不能任意地选择开始和结尾。划分必须符合二进制除法。学习它的最好方法是考虑我的子网标尺并且注意什么是一个有效的子网。在图B中,绿色子网是有效的,而红色子网就不是。

图B

该标尺像任何其他标尺那样构建,我们标记中间位置并将之对分。然后,我们对分剩下的部分并且每次在开始新一轮对开时用缩短的标记。在上面的样本中,有五轮对分。如果你仔细地查看任何有效(绿色)子网块的边缘,你会注意到没有一个包含在子网中的标记比边缘的标记要高。这有一个数学原因,我们将在稍后举例说明,但是图形化地查看它会使得数学更易于理解。

子网掩码的规则
子网掩码在定义一个子网大小中扮演着至关重要的角色。请关注图C。请注意模式并且尤其注意红色的数字。无论何时你在处理子网的时候,派得上用场的是记住在处理子网掩码时重复出现的八个特殊数字。它们是255,254, 252,248,240,224,192和128。你会看到这些数字在IP网络中不断出现,而且记住它们会使你的工作更轻松。

图C

我包括了三个分类大小。你会首先看到两个分类,通常主机位长度从0到16。通常DSL和T1 IP块是在0-到8-位范围内,私有网络通常工作在8- 到24-位范围内。

需要注意的是子网掩码如何从全零从右至左增长。二进制形式的子网掩码总是所有一在左侧,所有零在右侧。零的数量和子网长度是一样的。我只说明感兴趣的八位组中二进制子网部分,因为靠右的所有八位组由零组成而靠左的所有八位组由一组成。所以如果我们考虑子网长度为11位的子网掩码,完整的二进制子网掩码是11111111.11111111.11111000.00000000。正如你在掩码八位组中看到的,子网掩码在第三个八位组中从1到0变化。二进制子网掩码直接转变到基于256形式为255.255.248.0。

子网掩码中的“掩码”
子网掩码不仅决定一个子网的大小,而且如果你给定子网内的任何IP地址,它还可以帮助你查明子网终点的位置在哪儿。它被称为子网的“掩码”的原因是它逐位地掩盖了主机位而只留下了子网开始的网络ID。一旦你明白了子网的开始以及它的大小,你可以确定子网的结尾,也就是广播ID。

要计算网络ID,你只要将子网中的任何IP地址与子网掩码进行与操作。让我们用IP地址10.20.237.15和子网掩码255.255.248.0。需要注意的是这可以而且经常被速记为10.20.237.15/21,因为子网掩码长度为21。图D和图E说明了十进制和二进制版本的与操作。

图D:十进制数学Decimal math

图E:二进制数学Binary math

二进制版本说明0在上面的IP地址中担当掩码的任务。在掩码盒中,无论原来数字是什么,0将上面的所有数字转换为零。当你将二进制结果作为网络ID并将之转换为十进制,你得到10.20.232.0作为网络ID。

有关教授子网划分方法中一直困扰我的一件事情是学生们在做与操作的时候没有学习一个简单的技巧以绕过二进制转换的需要。我甚至看到领域内的IT人士使用这个缓慢而且麻烦的方法将所有数字转换到二进制,进行与操作,然后用Windows计算器转换回十进制。但是确实有一个使用Windows计算器的简单捷径,因为与操作直接应用于二进制数。只要输入237,点击与操作符,然后是输入248并回车,立即会得到232,如图F所示。我永远无法理解为什么不向学生们这样解释,因为这使得掩码计算容易很多。

因为在子网掩码中有11个零,所以子网有11位长。这意味着子网中最大主机数量是2^11或2048,而且该子网的最后一个IP是10.20.239.255。你可以通过看到第三个八位组中有三个零而快速地计算出来,这意味着IP地址的第三个八位组会有2^3或8的变化。所以下一个子网从10.20.232+8.0开始,也就是10.20.240.0。如果我们将之减1,得到10.20.239.255,这是该子网的末尾。为了帮助你将此形象化,图G在我的子网标尺中说明它。

图G

IP分类技巧
对IP子网的一个任意分类,Internet的创造者选择将Internet分为多个类。请注意这对你的子网计算而言并不重要;这只是Internet如何“安排”的。Internet被安排为A,B,C,D类和E。A类占用整个Internet的前半部分,B类使用剩下一半中的一半,C类再用剩下中的一半,D类(多播)再占用剩下中的一半,最后剩下的供E类之用。曾经有学生告诉我他们花费数周努力记忆IP分类,直到他们看到图H所示的简单表格。这是因为你不必实际地记住任何内容,你只要学习使用对半方法构建标尺的技巧。

图H

请记住所有子网从偶数开始,结束于奇数。请注意0.0.0.0/8(0.0.0.0到0.255.255.255)未被使用而且127.0.0.0/8(127.0.0.0到127.255.255.255)被留作回环地址。

所有A类地址的首个八位组在1至126之间,因为0和127被保留。A类子网都有24位长,这就是说子网掩码只有8位长。例如,GE拥有全部3.0.0.0/8子网,因为GE非常幸运地很早就被分配了1680万个地址。美国军方拥有6.0.0.0/8。Level 3 Communications拥有8.0.0.0/8。IBM拥有9.0.0.0/8。AT&T拥有12.0.0.0/8。Xerox拥有13.0.0.0/8。HP拥有15.0.0.0/8和16.0.0.0/8。 Apple拥有17.0.0.0/8。

所有B类地址的首个八位组在128至191之间。B类子网都有16位长,这就是说子网掩码有16位长。例如,BBN通信拥有128.1.0.0/16,也就是128.1.0.0 至128.1.255.255。卡内基梅隆大学拥有128.2.0.0/16。

所有C类地址的首个八位组在192至223之间。C类子网都有8位长,所以子网掩码只有24位长。请注意ARIN(分配Internet地址的机构)将只向私人公司出售四个C类地址块而且你必须切实地证明你为什么需要1024个公网IP地址。如果你需要运行BGP,那么你可以为冗余而使用多个ISP。还要注意基本不需要做什么就可以拿到1680万个A类地址的时代已经一去不复返。你必须为你的子网掩码为/22或255.255.252.0的1024地址块支付年费。

子网分类的概念在实际应用中会造成错误。我曾看到人们忘记在他们老式的Cisco路由器中转变类,他们看到只要增加一些路由,大量子网路由在配置为动态路由的大型WAN中被劫持。这是因为Cisco路由器会假设子网掩码是全/8、 /16或/24,即使你定义在它们之间的子网掩码。所有更新的Cisco IOS软件版本关闭了子网分类概念并且缺省使用无类路由。这通过默认命令“IP Classless”完成。

公用和私有IP地址比较
除了上面提到的保留IP地址之外(0.0.0.0/8和127.0.0.0/8),还有其他不能在公用Internet上使用的地址。这些私有子网由私有IP地址组成并且通常在防火墙或执行NAT(网络地址转换)的路由器之后。NAT是需要的,因为私有IP地址在公用Internet上不可路由,所以它们必须在进入Internet之前被转换成公用IP地址。而且因为所有人都可以使用它们,所以在公用Internet上无法将私有IP地址指向正确的地方,私有IP地址被用在多数LAN和WAN环境中,除非你非常幸运,拥有自己的A类或至少一个B类地址块,此时或许你有足够的IP分配内部和和外部IP地址。

下面的IP地址块分配给私有网络:

  • 10.0.0.0/8 (10.0.0.0至10.255.255.255)
  • 172.16.0.0/12 (172.16.0.0至172.31.255.255)
  • 192.168.0.0/16 (192.168.0.0至192.168.255.255)
  • 169.254.0.0/16 (169.254.0.0至169.254.255.255)*

    *请注意169.254.0.0/16是私有IP地址块,用来在DHCP服务器不可用时自己随机指定IP。

    10.0.0.0/8通常用在更大型的网络中,因为在该块内大约有1680万个IP地址可用。他们根据地理位置将它细分为许多更小的子网组,然后在那些地理位置再分为更小的子网。小型公司通常使用172.16.0.0/12范围,将之细分为更小的子网,尽管如果他们愿意,完全可以使用10.0.0.0/8。家庭网络通常使用192.168.0.0/16子网内的一个/24子网。

    私有IP地址和NAT的应用延长了IPv4的寿命,因为它有效地允许一个公用IP地址代表数以千计的私有IP地址。以目前IPv4地址分发的速度,我们在大约17年内有足够的IPv4地址。现在ARIN在分发地址时变得更加吝啬,小块的IP地址比过去像Apple这样的公司轻松获得1680万地址块时变得更贵。下一版本的IP地址称为IPv6,长度为128位-比IPv4多79千万万亿倍的IP地址。即使你给地球上的43亿人每人分配430万个IP地址,你仍然还有18百万亿个IPv6地址!

    (责任编辑:陈毅东

    查看本文的国际来源

  • 推广二维码
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题