LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: ultralix

一个关于子网划分的粗浅问题。

[复制链接]
发表于 2003-8-9 11:03:19 | 显示全部楼层
/25也是存在的。只要不是C类的就行。想一下,借用了一位的话,子网段的数量是(2的1次方)-2=0.你如何设置IP地址?/27位我觉得是存在的。
发表于 2003-8-9 14:27:17 | 显示全部楼层
拜托0100能不能把别人说的看清楚了再发言?地球人都知道/25和/27之类都是存在的.
还有对于你2^1-2=0的描述看不大懂,烦请说清楚一点.
发表于 2003-8-9 15:05:44 | 显示全部楼层
最初由 wangguoqin1001 发表
拜托0100能不能把别人说的看清楚了再发言?地球人都知道/25和/27之类都是存在的.
还有对于你2^1-2=0的描述看不大懂,烦请说清楚一点.

对不起,我没有看前面你们的发言。我觉得这里的朋友亲切一点。不会有意让你难堪的。得罪的地方还请多多见谅。
让我举个例子来说说。看看10.10.10.10/8和10.10.10.10/24
它们的IP和子网掩码分别是:
00001010.00001010.00001010.00001010
11111111.00000000.00000000.00000000
这是一个A类地址默认的情况,有8位子网掩码,但只有一个网段。
00001010.00001010.00001010.00001010
11111111.11111111.11111111.00000000
这还是一个A类地址。但明显这个子网段的可用主机数少了很多。
按你的话说,地球人都知道。请耐心地看完下面的。
如果想分多几个子网段,比如说财政部、人力资源部等等,它们需要满足同个子网段内能互相通信,但财政部的机子不能与人力资源部的机子通信(除非作路由协议)。这样的话,就必须划分多几个子网段出来。
再看看这个地址:10.10.10.10/24.
这仍然是一个A类地址,但它已经属于另一个子网段了,而且这个子网段内的主机最多是:2^8-2=254。分别是10.10.10.1-10.10.10.254。这和一个C类地址相差不多。所不同的是,它能有多个子网段。子网段的数量是:
10.0.1.-10.255.254.0。总共是2^16-2.
看看这个二进制数:
00001010.00001010.00001010.00001010
11111111.11111111.11111111.00000000
子网段分别为:
00001010|00000000.00000001|00000000
.....
00001010|11111111.11111110|00000000
子网段的全0和全1也必须除掉。
现在总结我的说法:
可用子网段数:2^(借位数)-2
一个网段内的可用主机数:2^(32-子网掩码位数)-2
现在解释2^1-2=0的那一句。比如这个C类地址192.168.0.1。如果它的子网掩码是25的话,因为一个C类地址默认是24位。借用了一位。子网段为2^1-2=0.也就是说无法分配IP了。
说说客套话:以上是个人见解。请各位朋友批评指正。
这个贴子放在Detian有点心惊惊的,怕被批。
发表于 2003-8-9 17:26:51 | 显示全部楼层
可能我前面一次是说过火了一点,还得0100帖子中处处小心翼翼,我得先赔不是。
对于0100说的我没有任何异议,但是我有一点不理解,在说到
子网段的全0和全1也必须除掉。
的时候0100一语带过,能给个理由吗?可能是害怕全0的子网、全1的广播和分割前的冲突,但是原来的子网已经不存在了啊,还会有冲突?实践是检验真理的唯一标准,不过我没有那么多机器,不知有哪位尝试过,能不能说说这样做会发生什么事情?如果的确不能的话,我本人感到十分惋惜,ip资源如此紧张,可是划分一次子网竟然要浪费那么多ip。如此看来,原本子网掩码为n的划分成子网掩码为(n-1)的就完全没有意义了?
0100兄不必谦虚,早上还看到你的帖子数没比我多多少,一会儿变那么多了,过两天再来就得用“瞻仰”了。可畏啊。
发表于 2003-8-9 18:16:11 | 显示全部楼层
哈哈,想不到讨论这么热烈。
wangguoqin1001我们的争论的焦点在于,全0全1的子网是否合法。
查了一下RFC 1878 (RFC1878) http://www.faqs.org/rfcs/rfc1878.html
老版的RFC中规定全0全1的子网是无效的,不过现在好象已改为有效了。见下面的引述:
*Subnet all zeroes and all ones excluded. (Obsolete)
*Host all zeroes and all ones excluded.   (Obsolete)
所以对于新版的路由器应该是支持你所提出的划分方法。
对于老版的路由器可以有兼容性问题。
发表于 2003-8-9 21:11:28 | 显示全部楼层
其实不需要多部机子测试的.你只需要把一部机子设置成:
192.168.0.129/25
另一部是192.168.0.130/25
如果两部机子能通信的话,就证明全1是可以的.
全0的可以是:
192.168.0.1/25和192.168.0.2/25
我现在只有一部机子,设置不了.
我现在在学装Detian.需要发贴问大家.自然就多贴了.
发表于 2003-8-10 21:52:45 | 显示全部楼层
第1子网:192.168.0.1/25中:192.168.0.0和192.168.0.127不可以用
第2子网:192.168.0.129/25中:192.168.0.128和192.168.0.255不可以用。
分析最低段:
第1子网:0000 0000(0),0111 1111(127)不可以用。
第2子网:1000 0000(128),1111 1111(255)不可以用。
发表于 2003-8-10 23:36:15 | 显示全部楼层
nobody_am兄.你有没有在PC上设置过192.168.0.*/25之类的IP?按照我学到的.这样的IP是不存在的.但LYOO兄好像说过现在可以了.有空我设置看看.
发表于 2003-8-11 03:44:18 | 显示全部楼层
我虽然没试过现在讨论两个子网,但是,理论绝对没问题,即使你置成功,但是,肯定不能通信。
发表于 2003-8-11 06:13:33 | 显示全部楼层
补充一下,其实这些内容在说tcp/ip的书里面有很详细的解说.

netmask与收到的封包内的地址信息进行与操作(更正楼上,不是"或"操作),运算结果不等于自己的网络地址就丢弃.
例如 192.168.1.123 AND 255.255.255.0 = 192.168.1.0 , 不是自己的网络地址192.168.0.0, 所以丢弃.
如果打开了forward功能的话(看/proc/sys/net/ipv4/ip_forward),会根据路由表作出相应传送操作,但如果连路由表也没有关于192.168.1.0的信息,结果还是丢弃.



整个tcp/ip协议组还算是"高层"的,所谓的ABC类地址都是人为划分的规矩. 操作系统中tcp/ip网络那部分软件不会反对你这样设置:机器的IP地址192.168.1.2, 网络地址192.168.0.0, netmask是255.255.0.0

看看这种情况,你有internet拨号连接,路由表会有类似这样的信息:
Network Address   Netmask   Gateway Address   Interface      Metric
0.0.0.0           0.0.0.0   81.12.34.56       ppp0           1
意思是"发往0.0.0.0/0网段的包都发往路由器81.12.34.56地址."
这时候ping 169.254.1.2(也是人为划分的内部网络地址),结果是"time out".
ping的封包会送到81.12.34.56, 作为一个国际网络的路由器,因为要遵守国际规矩,所以绝对不会有关于内部网网段的信息.

上面这个例子也说明路由信息是很重要的,假如你能操作那个81.12.34.56,人手加入169.254.0.0/16网段的路由信息,会把封包发到下一个路由器...下一个路由器不可能也被你控制吧?!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表