路由器一定要实现:可以从路由表中查出应当到达其他网络的下一条路由器,所以一定要指明在整个网络下到达所有其他网络的下一条地址。
子网选择、子网路由选择的问题:
子网划分的思想:
一个单位划分子网后,对内显示多个网络,对外显示为一个网络
有二级IP变为三级IP
凡是其他网络发到本单位的IP数据包,仍然是通过本单位的网络号找到的,但是路由器在收到IP数据包后,再按照目的网络和子网号找到主机
注:对一个网络进行第一次划分是时,其子网掩码都是相同的
子网划分是建立在分类网络上的,而cidr是一种无分类编制,我不管你要什么类的网址,我只需要通过你需要的IP地址的个数来给你分配一个地址块,你在这个地址块上可以继续划分子网。
一定注意一个问题:在子网划分的概念中,在同一网络下的网关,(就是与子网掩码获得的网络地址)必定是一致的,应为这个地址中包含了网络号和子网号,所以必定是一致的,最后就能总结出这样一句话,对一个网路在采用固定长度的子网划分时,同一网络掩码一致,因为网络号一致,子网号的长度一致。所以必定一致。想清楚,在子网划分的路由选择时,路由表中的关键信息是:网络地址(网络号:子网号),子网掩码,下一跳地址。判断的时候是,用 目的IP and 子网掩码 == 网络地址 ;为什么这么判断:原理是一旦我网络号和子网号不相同时,那么我绝对不在这个网络下,反之则一定在。
cidr的说话,叫做网络聚合,我在这里就纠结了好久,总觉得他和子网划分达到的效果是一样的,都是对一个网络进行的划分呀,但是为什么就出来了两个不一样的寻址方案呢,终于让我向明白了。
我们说cidr是一个网络前缀和一个网络号,这样的结果是把地址作为了地址块,但是我觉得的子网划分也是作为了地址块呀。这里没有什么不一样呀,为啥寻址就不一样呢,你想,子网划分是通过掩码加网络地址得出了所在的网络。
(这个网络已经可以把这个子网找到了,就是因为and的结果是网络号:子网号),
(你想,子网划分它不论怎么划分,这么说吧,就是不管怎么内嵌小的地址块,这个网络号+子网号永远只表示这个内嵌的地址块呀,它这一层和上一层的网络号+子网号是不相同的呀,这里是最关键所在呀,
仔细看:
...1*(...10000000)化为...111*(...11100000)和...110(...11000000) 括号里的表示相应的网络号,你对...111*(...11100000)再划分为...1111*(...11110000)和...1110*(...11100000)
网络地址不在...111*和...110*的IP地址和子网掩码and的结果就这这个网络地址呀,比如...10001000的IP掩码是...10000000,and的结果只等于...10000000呀,不可能等于别的去呀。再比如...11101100(...11100000)
你看,不管它怎么划分,只要找到这个网络地址(网络号+子网号),他就能找到这个子网。前提条件是你的把子网掩码带上呀,你不带这个子网掩码或者写错了,它是找不到这个网络地址的呀。所以子网掩码一定要配置对。只要你找到了这个网络地址就一切OK了,不管你嵌套多好块,每一块的地位都是相同的,这个网络号唯一标识这个块的位置。再提一下,这里的子网掩码相当重要。比如说,你把子网掩码改错后,匹配到了上层网络去了,上层网络又没有这台主机,你这台机子就找不到了。)
但是呢,对于cidr只能说是网络聚合,为什么呢,因为我的网络前缀仅仅指的是一个地址块呀,而我们完全可以将这个地址块再划分呀,这样的话,你没有所谓的子网号,你就不能找到这个地址块中的更小的地址块了呀,因为你的匹配规则是只要找到了网络前缀就说明你在这个块内,但是无法说明你在这个块内的那个更小的块内呀,所以这时候,当一个IP地址需要匹配的之后,它不仅会匹配大块,还会匹配小块,这就好了呀,host一定在这个小块里呀,所以我们叫他为最长前缀匹配。
所以说cidr要比子网划分更方便了,更灵活了呀。
原理就是这样子,具体的路由寻址过程就简单了。不说了。。。。。。