ADSL获取的IP地址与网关相同,却能上网的原理

这时你的子网掩码肯定是32位的也就是 255.255.255.255 网关与IP地址相同都是正确的,原因和BAS(接入服务器)的工作原理有关。
BAS的主要功能有两个:
1)终结PPPOE的session,给发送请求的主机分配IP地址; 2)转发上网流量
我们分析一下PPPOE用户上网的过程,首先用户会在主机上运行PPPOE拨号程序(如ETHERNET600或XP自带的拨号程序),拨号的主要目的就是拿到IP地址,请求到达BAS后,在BAS上会配置的PPPOE Server负责回应请求,进行认证检查(最基本的就是看用户名密码是否正确),决定是否给发送请求的主机分配IP地址。认证通过后BAS就从IP POOL(IP地址池)中挑选一个地址发给主机,这个地址就是你看到的掩码32位的地址。 说了好多废话,见晾^-^。马上回答你的第一个问题,掩码为什么是32位,网关为什么是自己? 前面提到了主机地址是从IP POOL中得到的,IP POOL一般都配成一段地址,如一个或半个C类地址等等。所有的PPPOE拨号主机的地址都从IP POOL中分配,对于主机来讲32位掩码地址已经足够,并不影响正常通讯,打个比方,router的Loopback0地址是32位掩码的,我们经常用这个地址作为telnet,Ftp的通讯地址,主机用32位掩码地址的道理与Loopback0地址类似,它并不影响服务。还有就是为了节约地址资源,大家知道如果掩码是30位的话,4个地址中要浪费两个地址作为网络地址和广播地址,主机地址只能用另外两个。32位掩码节约了大量的地址资源。至于网关和地址为什么一样,我想它没法不一样,呵呵。累了吧,break一下,我们继续。 主机得到地址后,网关是自己,那它如何通讯呢?这就是BAS的基本功能了,主机拨号得到地址后,就相当于与BAS直连的一个虚端口,BAS上面增加一条针对主机地址的直连路由。然后我们分析上网的过程,主机开始发送数据包,数据包到达BAS,BAS此时就象一个router,它检查从主机过来的数据包中的目的地址,如果路由表中有针对此目的地址的条目,那么BAS将数据包发送到下一跳,如果没有,BAS按照缺省路由指定的下一跳转发。通常主机发送的数据包都是按照缺省路由转发的,除非是连到同一个BAS的两个PPPOE主机之间的通讯。 现在我们知道主机发出的数据包如何被转发了,那么回到主机的数据包怎么办呢? 很简单,通常来讲,BAS上面就是router,在router上面做一条针对IP POOL的静态路由,指到BAS,然后将它发布到internet。这样,目的地址是某PPPOE主机的数据包首先会到达BAS,然后BAS会按照32位掩码地址将其转发给指定的主机。 路由器的POS接口地址掩码是30位是因为它需要和对端互通,30位掩码是最合适的,够用而且不浪费。ARP表中不显示应该是因为POS接口是点对点通讯,不象 ethernet是点到多点的通讯,需要知道每个MAC地址与IP地址的捆绑关系。有的设备POS接口是有MAC地址的,但是在ARP表中只会显示本地 POS接口和IP地址的捆绑关系,不象ethernet接口,即有本地接口的MAC地址与IP地址的捆绑关系,又有通过ARP学习到的对端地址的MAC地址与IP地址的捆绑关系。 【ADSL获取的IP地址与网关相同,却能上网的原理】转载于:https://blog.51cto.com/kunloo/245204

    推荐阅读