怎样实现IPv6子网
广播风暴时有发生,这种情况的主因是2层拓扑环路。我们在前面的文章里已经接触到一些2层拓扑的问题。当数千个数据包同时涌向你的计算机时,你的机器运行速度会变得非常缓慢。操作系统内核需要把大量的时间用于处理中断,再也腾不出时间处理其它进程。所以,这就是子网为什么非常重要的原因。子网也称作广播域,它可以限制你能够收到的广播范围。
那么,创建一个子网的要点是什么?我如何记住这些看起来怪怪的子网掩码?这与IPv6地址如何配合工作?本期讲座将扩展以前关于子网和CIDR那篇教程的内容,以便让你更全面的理解子网的相关概念。
下一个问题是从一台主机的角度如何来看待广播地址和子网掩码。我们可以理解一台主机需要了解在同一个子网上有什么计算机。这些IP地址能够直接对话,而无需路由器。当子网掩码或者广播地址配置不正确时,你很快就会发现无法访问某些主机。
最常见的设置错误经常出现在当没有同时指定子网掩码和广播地址时设置一个IP地址的时候,由于一些原因,虽然可以通过这其中的一个的值算出另一个,但大多数操作系统并不负责主动更新它们,例如当你运行"ifconfig eth0 130.211.0.1 netmask 255.255.255.0"时,你可能以为一切都会按你预想的方式运行。遗憾的是,你的广播地址很可能被设置为255.255.0.0。这主要依赖于路由器的设置,但是,这个结果通常会导致所有的广播数据包丢失。相反,如果一个子网掩码设置的不正确,这个计算机就不知道这个子网的开始和结束地址。如果一台计算机认为另一个主机在同一个子网中而实际上并非如此,当需要与之通信时这台计算机就会直接向网络中发送ARP请求而不去请求路由器。当然你也可以设置路由器处理这种情况并且让路由器替代目标主机做出ARP应答(称作"ARP代理",这时可以进行正常的通信),不过,大多数情况下这种情况的结果是无法访问主机。
理解子网掩码的设置原理就可以避免出现上面提到的问题。当你记住子网掩码的含义是"掩盖一些二进制位"时,算出这个网络地址和广播地址并不非常困难。解密一些子网掩码的含义可以加深你对子网掩码原理的理解。一个24位网络地址的子网掩码是255.255.255.0。这很简单。但是,255.255.240.0代表什么意思?破解这个地址的最佳方法就是从掩码掩盖的部分开始。把这个地址与一个标准24位网络地址进行比较。标准24位网络地址有三个字节被掩盖了,我们看到255.255.240.0有二个字节被掩盖了,另一个8位字节被掩盖了一部分。我们知道这是在一个16位网络地址和一个24位网络地址之间。我们必须要理解二进制,并且算出有多少位被掩盖了。这最前面的16个字节显然是网段的一部分。第三个8位字节240让16位的网络地址扩展子网掩码,分析这个数字你可以发现这个字节有4个二进制位没被掩盖(256-240=16,16等于2的4次方)。剩下的4个二进制位加上用于前两个字节中的16个二进制位这意味着我们在处理一个20位的网络地址。
1.0.0.0/255.255.255.248是什么意思?我们确实是在一个小于24位子网的网络中。如果我们查看最后的8位字节中的剩余的字节,我们能够看到有8个可用的IP地址。要记住,只有2的3次方能够等于8,所以,我们使用除了最后一个字节中的三个二进制位以外的全部作为网络地址。这是一个29位网络。当然,简单的地址是非常清楚的:与24位网络相比,255.255.255.128允许的主机地址数量是最后一个8位字节的一半。所以,这是一个25位网络。
关于容易混淆的子网掩码的话题,IPv6地址肯定占有一席之地。这个子网掩码实际上并不是一个问题,因为同样的原则在这里也适用。只是需要记住更多的数字。地址中的真正问题是地址本身的表达方式,IETF(互联网工程任务组)似乎为其制造混乱而感到骄傲。IPv6地址一般以16进制表示。我们的老朋友IPv4也可以用16进制表