您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页PPPOE相关问题解析

PPPOE相关问题解析

来源:五一七教育网
待解决问题:网关ip和本机ip相同时,数据转发过程

目录

待解决问题:网关ip和本机ip相同时,数据转发过程 ............................................. 1

PPPOE拨号分配给用户32位掩码,且IP与网关相同 ................................................................ 1 三种上网方式 ................................................................................................................................... 3

PPPOE拨号分配给用户32位掩码,且IP与网关相同 ................................................ 3

PPPOE server给用户固定非陪ip .................................................................................................... 4

最新随笔 ........................................................................................................................... 8 最新评论 ........................................................................................................................... 8

PPPoE 与PPP 协议分析 ................................................................................................................. 8

PPPOE拨号分配给用户32位掩码,且IP与网关相同

2010-02-12 20:46:49| 分类: 网络工程师 |举报 |字号 订阅

为什么拨号得到的32位掩码的IP可以上网?

[转]PPPOE拨号后得到的地址是32位掩码,网关ip与本机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位掩码节约了大量的地址资源。至于网关和地址 为什么一样,我想它没法不一样,呵呵。

主机得到地址后,网关是自己,那它如何通讯呢?

这就是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地址的捆绑关系。

三种上网方式

PPPOE拨号分配给用户32位掩码,且IP与网关相同

2010-02-12 20:46:49| 分类: 网络工程师 |举报 |字号 订阅

为什么拨号得到的32位掩码的IP可以上网?

[转]PPPOE拨号后得到的地址是32位掩码,网关与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位掩码节约了大量的地址资源。至于网关和地址 为什么一样,我想它没法不一样,呵呵。

主机得到地址后,网关是自己,那它如何通讯呢?

这就是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地址的捆绑关系。

PPPOE server给用户固定分配ip

1、PPPoE Server配置页面,固定IP分配页面绑定PPPoE 地址池IP跟网卡MAC先做绑定,绑定的IP为10.0.0.199

2、PPPoE Server配置页面,账号配置页面,定义账号user_chenyong分配固定IP为10.0.0.200,如图所示:

3、PC通过user_chenyong这个账号获取的IP确是固定IP分配的地址10.0.0.199

PPPOE协议与PPP协议详细分析

     

博客园 首页 新随笔 联系 订阅 管理

最新随笔 最新评论

PPPoE 与PPP 协议分析

Posted on 2010-02-08 00:24 Yan Zhe 阅读(4719) 评论(0) 编辑 收藏

PPP的连接控制协议(LCP)、认证协议(CHAP、PAP)、IP控制协议I(PCP)

分析一(PPPoE)

1.pppoe的功能包括动态IP地址分配、AAA和ISP动态选择

2.PPPoE主 要分为两个阶段即Discovery(地址发现)阶段和PPP会话阶段,当某个主机希望发起一个PPPoE会话时,它必须首先执行Discovery来确 定对方的以太网MAC地址并建立起一个PP-PoE会话标识符SSION_ID,虽然PPP定义的是端到端的对等关系,Discovery却是天生的一种 客户端-服务器关系,在Discovery的过程中,主机(作为客户端)发现某个访问集中器(Access

Concentrator,作为服务器),根据网络的拓扑结构,主机能够与不只一个的访问集中器通信.Discovery阶段允许主机发现所有的访问集中 器并从中选择一个。当Discovery阶段成功完成后,主机和访问集中器二者都具备了用于在以太网上建立点到点连接所需的所有信息。 3.PPPoE的帧格式和种类

Discovery阶段:以太网帧的ETHER_TYPE域都设置为0x8863。 PPPoE Active Discovery Initiation (PADI) PPPoE Active Discovery Offer(PADO) PPPoE Active Discovery Request (PADR)

PPPoE Active Discovery Sessionconfirmation (PADS) PPPoE Active Discovery Terminate(PADT)。

PPP会话阶段: 以太网帧的ETHER_TYPE域都设置为0x88。 PPPoE的payload部分包含O个或多个TAG。一个TAG是一个

TLV(type-length-value)结构,TAG_TYPE域为16位值(网络字节序),

4. PPPoE的工作流程 Discovery搜索阶段

●主机发送PADl分组,其目的地址为广播地址,会话IAD为0(未分配); ●任一接入服务器收到PADI并任提供所需的服务时,就回送PADO分组,会话IAD为O;

●主机可能收到多个PADO,根据服务及其提供的服务选定一个服务器,然后向该服务器发送PADR分组,其目的地址为该服务器的单播地址。会话ID为0(未分配);

●该服务器收到PADR后生成一个唯一的会话ID,向主机回送PADS分组,准备启动PPP。

Session会话阶段,PPPoE的Host主机从接入服务器AC获取一个Session ID。进入PPP会话阶段 分析二(PPP) 1. PPP协议组成

a) 链路控制协议(LCP-Link Control Protocol),完成线路的启动、测试、任选参数的协商和最终线路断开功能

b) 认证协议,最常用的包括口令验证协议PAP(Password Authentication Protocol)和挑战握手验证协议CHAP(Challenge-Handshake Authentication Protocol)

c) 用户认证,主要通过LCP协商采用何种认证协议,但认证协议本身不是PPP协议的范围

d) IP控制协议IPCP(网络控制协议(NCP)),最常用的NCP协议为。它的一个重要功能就是动态分配IP地址; 2. 认证方式

1. 口令验证协议(PAP)

PAP 是一种简单的明文验证方式。NAS(网络接入服务器,Network Access Server)要求用户提供用户名和口令,PAP以明文方式返回用户信息。很明显,这种验证方式的安全性较差,第三方可以很容易的获取被传送的用户名和口 令,并利用这些信息与NAS建立连接获取NAS提供的所有资源。所以,一旦用户密码被第三方窃取,PAP无法提供避免受到第三方攻击的保障措施。

2. 挑战-握手验证协议(CHAP)

CHAP 是一种加密的验证方式,能够避免建立连接时传送用户的真实密码。NAS向远程用户发送一个挑战口令(challenge),其中包括会话ID和一个任意生 成的挑战字串(arbitrary challengestring)。远程客户必须使用MD5单向哈希算法(one-way hashing algorithm)返回用户名和加密的挑战口令,会话ID

以及用户口令,其中用户名以非哈希方式发送。

CHAP对PAP进行了改进,不 再直接通过链路发送明文口令,而是使用挑战口令以哈希算法对口令进行加密。因为服务器端存有客户的明文口令,所以服务器可以重复客户端进行的操作,并将结 果与用户返回的口令进行对照。CHAP为每一次验证任意生成一个挑战字串来防止受到再现攻击(replay attack)。在整个连接过程中,CHAP将不定时的向客户端重复发送挑战口令,从而避免第3方冒充远程客户(remote client impersonation)进行攻击。 3. PPP工作流程

a) LCP协商(之下物理层,之上网络接口层)创建链路

Open事件发送到PPP的LCP子层,当LCP启动后,即请求建立物理链路,开始以上的PPPoE协商,当PPPoE协商成功后,就向LCP层发送Up事件。 b) 认证

LCP向对端发送协商请求,双方确定链路的配置参数后,LCP向认证层发送Up事件。

c) NCP协商 调用链路层创建阶段选定的网络控制层协议

认证成功后,在向NCP层发Up事件。如不需要认证,则可直接向NCP层发送up事件,NCP协议收到Up事件后开始NCP处理。 d) PPP正常终结过程

NCP分别终结,然后LCP终结,最后物理层终结

说明:每层可向相邻的子层发送“Up”或“Down”事件。“Up”表示该层已激活,“Down”表示该层已终结. 4.PPP帧格式

a) 发送的顺序是从左到右Protocol

分析二(实现)

1. PPP和PPPoE数据包收发处理流程

PPPoE层主要实现PPPoE拨号过程和对上层PPP的数据包进行PPPoE封装及处理,主要处理帧类型为0x8863,则为PPPoE Dis-covery包,如为0x88,则为PPPoE Session阶段的包经拆封处理后送到PPP层处理

PPP层软件主要实现LCP链路建立、PPP认证、IPCP协商IP地址和对IP数据包的PPP封装等功能。 2. 数据包流向

4. PPP和PPPoE软件模块设计

整个PPPoE、PPP软件可分为一下模块设计,

1)PPP模块主要实现LCP、IPCP和认让协议(chap、pap)等,PPP还实现一个虚拟的ifnet接口,实现对上层IP报的封装和分发处理。

2)PPP Adpater模块主要实现PPP和PPPoE模块之间的接口适配。 3)PPPoE Discoverv模块实现PPPoE的Discov-ely阶段的处理。

4)PPPoE Session模块实现PPPoE的Session阶段的处理,主要是PPPoE封装和

解包处理。 5)PPPoE Timer模块主要实现PPPoE模块的定时处理功能,用于PPPoE Discovery阶段的状态机切换处理。

6)PPPoE Adapater模块主要实现PPPoE的包的收发处理。

7)PPPoE Config模块主要实现PPP和PPPoE的相关配置功能。如配置用户名密码等。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务