关于昨天在鸿鹄上面看到一个问题-(网络)检查你是不是高手??

原文:
192.168.1.1 192.168.2.1
255.0.0.0 255.255.0.0
两台主机IP及掩码配置如上(连接当然是交叉线了哦,相同设备嘛)
大家认为可以相互ping得通吗??
理论上是不可能的,可是实际上呢。。你试试。。
作者的理解给了不少启发。

首先这是一个CIDR,不过这里不是讨论CIDR,在IP数据报文中,是不存在子网掩码的(根据后面推断,子网掩码应该不是和IPV4的数据报同时推出的,应该是在后期为了细化子网才单独加出来的,所以出来的有类和无类的概念,而为了兼容原来的IP数据报,所以定义了一个默认的有类子网掩码),子网掩码是存在于路由器,或者XXX layer 3以上的设备当中。用一句话解释就是IPv4 只与源子网掩码匹配,与目标子网掩码无关,IPv6则是全匹配!这句是鸿鹄里面那个帅哥给出来的解释,很不错),不能够理解的我在扩展解释下,首先左边的机子要到右边,我们假设中间存在一个路由(方便理解),左边发送192.168.2.0这个网段的请求包,ip数据报里面包含本地和目标的IP,没有掩码!然后路由器查,路由器怎么查,这个应该是根据掩码的位数,掩码几位,它就查几位,学过NA课程的,算网段的里面有种计算方法不就是把IP地址写成二进制,掩码写成二进制,然后做与运算,得出来的不就是网段了不,想下!这个好似就是路由器检查的机制,看下掩码那几个是1(这里按照2进制理解),然后再看下ip报文里面目标IP掩码那几个是1的位置值,查下本地有没有这个网段配置的出口,有,从出口出去,没有,drop。检查的精细程度就是掩码的位数,所以增加,就是细化!缩小,就是扩展!所以这个能够Ping通。
相比我们可以看下vlan的机制,虽然是一个二层的协议,具体帧结构isl那些不是太清楚,不过可以确定里面包含了vlan号(这个确定是源vlan号),vlan中的主机只能够访问同一个vlan的主机,这个机制大致就可以猜到了,在目标端直接判断源的vlan号,如果与本地vlan号一样,就接受,不一样,就drop,所以vlan不存在上面掩码那种情况(从机制原理上理解)

具体里面是一种机制上的猜想。。。cisco又不给源码。。有空我去翻下iptables里面有没有源码,不过好像iptables在交换这块完成的功能好像没什么,只能做一些小型的家庭路由器,大型的好像没有看到什么配置的方案,仅iptables配路由器(nat那种),关于mangle和filter没有具体看完,可以在http://www.frozentux.net/iptables-tutorial/cn/iptables-tutorial-cn-1.1.19.html
这个地方详细查下。

相同的情况据说在IPV6上是不通的,我没有学过IPv6,不过我估计是在数据报文里面直接带掩码了吧,猜的,有什么看过IPv6报头的出来澄清下。

还有一个问题提出下:DHCP中分配子网掩码的时候会不会支持VLSM和CIDR的情况,这种机制也应该可以去具体的参考下?我试验做的有点问题,求解释

你可能感兴趣的:(网络)