ip subnet zero和ip classless的用法

如果你有一个CLASS CIP地址,比如192.168.10.0,你想把它分成8个网段,每个网段内可以有32台主机,你可以这样分:
subnetmask
是:255.255.255.224
192.168.10.0 - 31
, 网络地址:192.168.10.0,广播地址:192.168.10.31
192.168.10.32 - 63
, 网络地址:192.168.10.32, 广播地址:192.168.10.63
192.168.10.64 - 95
, 网络地址:192.168.10.64,广播地址:192.168.10.95
192.168.10.96 - 127
, 网络地址:192.168.10.96,广播地址:192.168.10.127
192.168.10.128 - 159
, 网络地址:192.168.10.128,广播地址:192.168.10.159
192.168.10.160 - 191
, 网络地址:192.168.10.160,广播地址:192.168.10.191
192.168.10.192 - 223
, 网络地址:192.168.10.192,广播地址:192.168.10.223
192.168.10.224 - 255
, 网络地址:192.168.10.224,广播地址:192.168.10.255 即:每个网段32IP地址,第一个是网络地址,用来标志这个网络,最后一个是广播地址,用来代表这个网络上的所有主机。这两个IP地址被TCP/IP保留,不可分配给主机使用。

另外,第一个子网192.168.10.0 - 31和最后一个子网192.168.10.224 - 255通常也被保留,不能使用,原因是因为第一个子网的网络地址192.168.10.0和最后一个子网的广播地址192.1.68.10.255具有二意性。
先看看这个大C的网络地址和广播地址:
192.168.10.0 是它的网络地址,192.168.10.255是它的广播地址.显然,它们分别与第一个子网的网络地址和最后一个子网的广播地址相重了。
那么怎样区分192.168.10.0到底是哪个网络的网络地址呢?
答案是:把子网掩码加上去!
192.168.10.0 255.255.255.0 是大C的网络地址,192.168.10.0 255.255.255.224 是第一个子网的网络地址,192.168.10.255255.255.255.0是大C的广播地址,192.168.10.255255.255.255.224是最后一个子网的广播地址。带上掩码,它们的二意性就不存在了。
所以,在严格按照TCP/IPABCDIP地址分类的环境下,为了避免二意性,全0和全1网段都不让使用。这种环境我们叫作Classful。在这种环境下,子网掩码只在所定义的路由器内有效,掩码信息到不了其它路由器,比如RIP-1,它在做路由广播时根本不带掩码信息,收到路由广播的路由器因为无从知道这个网络的掩码,只好照标准TCP/IP的定义赋予它一个掩码。比如,拿到10.X.X.X,就认为它是A类,掩码是255.0.0.0;拿到一个204.X.X.X,就认为它是C类,掩码是255.255.255.0
但在Cla ssl ess 的环境下,掩码任何时候都和IP地址成对地出现,这样,前面谈到的二意性就不会存在,是Classful还是Cla ssl ess 取决于你在路由器上运行的路由协议,一个路由器上可同时运行ClassfulCla ssl ess 的路由协议。RIPClassful,它在做路由广播时不带掩码信息;OSPFEIGRPBGP4Cla ssl ess 的,它们在做路由广播时带掩码信息,它们可以同时运行在同一台路由器上。
Cisco路由器上,缺省你可以使用全1网段,但不能使用全0网段。所以,当在Cisco路由器上给端口定义IP地址时,该IP地址不能落在全0网段上。如果你配了,你会得到一条错误信息。使用IP SUBNET-ZERO命令之后,你才能使用全0网段。
要强调的是,使用了IP SUBNET-ZERO命令之后,如果路由协议使用的是Classful的(比如RIP),虽然你的定义成功了,但那个子网掩码还是不会被RIP带到它的路由更新报文中。即,IP SUBNET-ZERO 命令不会左右路由协议的工作。
总之,TCP/IP协议中,全0和全1网段因为具有二意性而不能被使用。Cisco 缺省使全1网段可以被使用,但全0网段只有在配置了IP SUBNET-ZERO后方可被使用。
http://www.net130.com/2004/8-17/8306.html
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ip cla ssl ess 命令的作用
关于ip cla ssl ess 问题,给个简单的例子,假设show ip route时在路由表中有以下输出
C 10.1.1 .0/24 s0/0
C 10.1.2.0/24 s0/1
S     10.1.3.0/24 s0/0
S 0.0.0.0/0      s0/1
问路由器收到IP,目的地址10.1.4.1,路由器该如何转发?
问路由器收到IP,目的地址20.1.4.1,路由器该如何转发?
根据常识大家都会说走默认路由。回答正确,但是这只是在ip cla
ssl ess 命令生效的时候。如 果去除这条命令,结果就是去20.1.4.1走默认路由,去10.1.4.1路由器则丢弃!
为什么这样,在没有ip cla
ssl ess 命令生效的时候,cisco 路由器找路由记录首先看目的地址    是哪个大的网络号,如现在10.1.4.1的大网络号是10.0.0.0,因为它是A类地址,然后在路由表中找这个大网络号或其子网的相关的记录,如果能找到对应记录则转发,如果找不到则丢弃。为什么不走默认路由?因为现在路由器认为它知道10.0.0.0这个A类地址上的所有子网,例子中只有310.1.1.0/24, 10.1.2.0/24 ,10.1.3.02/24,数据包要去的10.1.4.0/24这个子网并不存在,所以将数据包丢掉。
20.1.4.1则不同,因为路由表中没有20.0.0.0这个大网络号的相关路由记录,所以立刻走默认路由。
总结:ip cla
ssl ess 命令其实是影响的路由表查找的方法,最直接的效果就是对默认路由的使用。有了ip cla ssl ess 命令,则路由器查找路由表使用的是最长匹配原则,而不首先考虑目的地址是哪个类的。
http://hptech.blog.51cto.com/39654/21357

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
默认路由 和 ip cla ssl ess          如果执行了“ip cla ssl ess” 命令(实际上这是默认值),则路由器存在默认路由时,所有在路由表中查不到具体路由的数据包将通过默认路由发送。
        
如果执行了“no ip cla
ssl ess” 命令,当路由器存在一主类网络的某一子网路由时,路由器将认为自己已经知道该主类网络的全部子网的路由,这时即使存在默认路由,到达该主类任一子网的数据包不会通过默认路由发送。
        
图中,执行了“no ip cla
ssl ess” 后,由于R1 路由器上有10.0.0.0的子网10.1.1.0/24(这是直连路由),因此R1 路由器收到到达10.2.2.0/24子网的数据包不会使用默认路由进行发送。然而如果数据包是要到达20.2.2.0/24,默认路由会被采用,因为R1 没有任何20.0.0.0子网的路由。
125103a46-aa.jpg (13.55 KB)
2009-11-25 09:37


         
如果在R1 上配置了默认路由:ip route 0.0.0 .0 0.0.0.0 s0/0/0,则R1路由器是否会把到达10.2.2.0/24 网络的数据从s0/0/0 接口发送出去?这取决于是否执行了“ip cla ssl ess” 命令。
http://cisco.ccxx.net/cisco/tech/routing/2009/0823/26143.html
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ip cla ssl ess 的理解
ip cla ssl ess( 无类)no ip cla ssl ess( 有类classful)
什么是有类:no ip cla ssl ess classful
严格按照TCP/IP ABCDIP地址分类,子网掩码只在所定义的路由器内有效,掩码信息到不了其它路由器;

什么是无类:ip cla ssl ess
不按照按照TCP/IP ABCDIP地址分类,掩码任何时候都和IP地址成对地出现;
IP cla ssl ess 的作用:
1
ip cla
ssl ess 这条命令是作用于路由转发进程的,告诉路由器工作在无类环境下
2
、它能让路由器超越有类网络的边界而根据最长匹配条目来转发数据包;
3
、当目的网络没有出现在路由表中时通过默认路由转发数据包,而不是简单的丢弃
4
、如果路由器工作在有类环境下,当目的网络出现在路由表中,但没有具体的网络 匹配时,防火墙将丢弃数据包。

例如:

ip cla ssl ess 命令最早在cisco IOS 10.0被介绍,在cisco IOS 11.3后。ip cla ssl ess 就缺省有效了(enable)
为什么呢?

原因是这样的,当在路由器中使用了classful的路由协议(如:RIP),而在路由表里有子网时,问题就出现了。
no ip cla ssl ess 的时候,假设现在路由器里有10.0.0.0/8,10.1.0.0/16,10.2.0.0/16的路由记录,这时路由器收到了
一个目的地为10.4.0.0/16IP包,路由器发现10.4.0.0/16不在路由表中,那么这个包将被路由器丢弃。即使有缺省路由也没有用。
现在假设 ipcla ssl ess 命令被启动了,那么这个10.4.0.0/16包将怎样被转发呢?它将会按照10.0.0.0/8的路由记录来转发这个包。因为它是10.4.0.0/16的超网。当然,如果路由器里连这个10.0.0.0/8的路由记录也不存在,10.4.0.0/16的包就会按照缺省路由来
总结:
        
加一条ip cla
ssl ess 命令,那么路由器成为无类路由环境,当目的数据包到达时,不进行有类匹配,而是进行无类匹配,即进行最长匹配原则;当用最长匹配时不在路由表内,那么路由器将把它交给默认路由,通过默认路由,把数据包送出。
        
使用有类路有,当一个路由器收到一个数据包,而它的目的地址在路由表中不存在的话,它就会丢弃这个数据包。如果你使用了缺省路由,就必须使用ip cla
ssl ess 命令,因为远端子网并不存在于你的路由表中。
http://blog.chinaunix.net/u/9595/showart_337309.html
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CCNP― 学习IP Cla ssl ess 路由协议IP Cla ssl ess 命令的应用,
RIPv1,在路由进行交换时是不包含掩码的,并且会在边界上做自动汇总。当我们进行下面配置时,会出现一些意外的事.... 我们有路由表: 10.0.0.0/24 is subnetted , 2 subnets, R10.1.1.0/24 [120/1] vi a 10.1.2 .2 R 10.1.2.0/24 [120/2] vi a 10.1.2 .2 S*0.0.0.0/0 [120/3] vi a 10.1.2 .2当有一个10.1.1.2IP必须进行数据交换时,它会用10.1.1.0/24这条路由,这点相信大家都清楚,当有一个192.168.1.1IP必须进行数据交换时,它会采用0.0.0.0/0这条静态设置的缺省路由,这也是正常的。然而,当我们碰到一个10.2.2.2IP要进行数据交换时,它也同样走缺省路由么?经过我的研究,不会走这条路由的(前提是没配置IPCla ssl ess) !原因是在这个路由表中,用到的是RIPv1类路由协议,10.1.1.0/2410.1.2.0/24这两个子网都指明了从10.1.2.2走,但是这点却没有指出10.2.2.0/2410.0.0.0/8如何走,那么10.2.2.0/24这条路由就不知道该怎么走,它不会去选择缺省路由,而是将包丢弃,这样就会造成10.2.2.2这个IP无法进行数据交换。碰到这种问题,让数据包进行无类匹配,我们就要在路由器上配置IP Cla ssl ess ,这时未在路由表中明确指出的IP数据包就不会被丢弃,而是先以子网掩码最长的路由进行匹配,如果没有,那么就会继续比对梢短掩码的路由,如果仍然没有则就选择缺省路由。

你可能感兴趣的:(职场,休闲,Router&Switch)