以太网是现有局域网采用的最通用而且最成熟的通信协议标准。由于以太网在性价比,可扩展性,可靠性和IP网络的适应性上的优势,以太网已经成为宽带接入网络乃至运营商城域网和骨干网的首选技术之一。
本章目标
以太网接入的典型应用
以太网由于技术标准化程度高,应用广泛,带宽提供能力强,扩张性良好,技术成熟,设备性价比高,对IP的良好支持,成为城域网和接入网的主流技术。上图是一个利用以太网技术提供宽带介入的示例。再上图所示的以太网接入网应用中,位于CPN也就是用户侧的设备主要被称为家庭网(HG Home Gateway),而位于运营商接入网边缘的设备主要被称为接入点(AN,Access Node),最后位于AN和运营商城域网乃至骨干网之间设备通常被称为汇聚设备(AGG,Aggregation)
大型园区的接入是以太网接入的典型应用场景之一。对于用户众多的大型住宅园区,可以采用园区内设置一台园区交换机作为AN。
在上图所示的以太网接入应用中,AN可以选用三层交换机或二层交换机进行部署,其区别在于:
一 采用三层转发延伸到AN的接入方式时,AN上行通过路由协议实现路由转发,AN下行通过实现不同用户二层隔离,这样广播域被限制在AN下行的同一业务VLAN内,提高了接入网的带宽利用率。如果二层交换在AGG终结,则广播域的范围扩大到一台AGG设备下的同一业务VLAN。
二 在二层交换终结在AGG设备的方案中,一台AGG设备最多可接入用户终端数将受限于其自身MAC地址表项数,而如果采用三层到AN的方案,AN用户进行高密度接入并终结二层转发,从而同一AGG可以接入更多用户终端。
三 采用三层到AN的方案时,AN和AGG上无须支持和部署复杂的二层隔离和安全特性,网络改造规模小,有利于采用已有设备采用较低成本的设备进行快速部署。
根据上面的对比,我们不难发现,选用三层交换机作为AN进行部署比起选用二层交换机优势明显,所以,在大部分的以太网接入应用中也采用了这种方式。
PPPoE原理及配置
PPPoE原理
PPPoE协议采用Client/Server的方式,他将包含用户的认证信息的PPP报文封装在以太网帧之内,在以太网上提供点对点的连接的同时,也利用PPP协议的PAP和CHAP认证方式对用户进行认证。
PPPoE有两个明显的阶段,Discovery阶段和PPP Session阶段,具体如下:
一 Discovery阶段:当一个主机想开始PPPoE进程的时候,他必须先识别接入端的以太网MAC地址,建立PPPoE的SESSION ID。这就是Discovery阶段的目的。
二 PPP Session阶段:当PPPoE进入Session阶段后,PPP报文就可以作为PPPoE帧的净荷封装在以太网帧发到对端,SESSION ID必须是Discovery阶段确定的ID,MAC地址必须是对端的MAC地址,PPP报文从Protocol ID开始。在Session阶段,主机或服务器任何一方面都可发PADT(PPPoe Active Discovery Terminate)
报文通知对方结束本Session。
在上图所示的以太网帧的结构中:
一 :ETHER_TYPE为0x8863时表示该帧为Discovery阶段的报文,ETHER_TYPE为0x8864时则表示该帧为PPPoE Session阶段的报文。
二 DESTINATION_ADDR部分为目的MAC地址,可以是广播MAC地址(0xffffffff)或者单播MAC地址,对于PPPoE Session数据来说,必需使用在Discovery阶段中确认的单播MAC地址。
三 SOURCE_ADDR则表示源MAC地址。
在上图所示的组网中,PPPoE Client先将用户数据封装为PPP,再将PPP封装到以太网帧中,PPP中相关的验证信息将会送给PPPoE Server进行PAP或CHAP验证,通过验证之后,PPPoE Server会以IPCP协商的形式从PPPoE Server获得IP地址。
PPPoE Client 和 PPPoE Server 之间的 PPPoE 协商过程分为 Discovery 阶段和 PPP Session 阶段。
Discovery 阶段
第1步: PPPoE Client 在以太网口上广播 PADI ( PPPoE Active Discovery Initiation )报文,该报文以以太网帧的形式被 ADSL Modem 桥接到运营商的集中路由器( PPPoE Server )上。( PPPoE 头部: CODE =0x09:SESSION_ ID =0x0000。 PPPoE Payload : TAG _ TYPE 须包括 Service - Name ,用于指示请求的服务;也可以包含其他的 TAG )
第2步: PPPoE Server 在收到 PADI 之后,发送回 PADO ( PPPoE Active Discovery Offer )报文,其中包含了 PPPoE Server 的 AC - name ( Access Concentrator ' s name )信息和可以提供的服务信息 Service - Name ,以供 PPPoE Client 进行选择。( PPPoE 头部: CODE =0x07: SESSION ID =0x0000. PPPoEPayloa ↑ me ◇ TAG ,用于指示可以提供的服务类型;必须包含 AC - name 的 TAG )
注意:
在实际应用中,运营商的网络中可能存在多台 PPPoE Server 来响应 PPPoE Client 的 PADI 报文。通常在 Discovery 阶段, PPPoE Client 需要发现所有可用 PPPoE Server ,并根据其 AC - name 和 Service - Name 信息来选择一个合适的 PPPoE Server 。
第3步: PPPoE Client 发送一个单播的 PADR ( PPPoE Active Discovery Request )报文给选定的 PPPoE Server 。报文中包含服务信息 Service - Name 。( PPPoE 头部: CODE =0x19: SESSION _ ID =0x0000. PPPoE Payload : TAG _ TPerice - ame ,用于指示请求的服务;也可以包含其他的 TAG )
第4步: PPPoE Server 发回 PADS ( PPPoE Active Discovery Session - Confirmation )报文,其中包含 session ID 信息。完成 Discovery 阶段。( PPPoE 头部: CODE =0x19; SESSION _ ID 由 PPPoE Server 定义。 PPPoE Payload : TAG _ TYPE 必须包括 Service - Name ,用于指示 PPPoE Server 同意提供的服务;也可以包含其他的 TAG )注意:
在此阶段,如果 PPPoE Server 和 Client 就服务类型 Service - Name 未能达成一致, SESSION _ ID 将被设为Ox0000,无法建立 PPP session 。
在 Discovery 阶段之后, PPPoE Client 已经知道了 PPPoE Server 的 MAC 地址和 session ID ,并可以据此来建立相应的 PPP 连接。接下来进入 PPP session 阶段。
PPP Session 阶段
在 PPP session 阶段, PPPoE Client 和 PPPoE Server 之间进行普通的 LCP 、 NCP 、 IPCP 协商来进行 PPP 验证( PAP 或 CHAP )和 IP 地址的分配。这里不再赘述。
在 PPP session 阶段,以太网帧的 ETHER _ TYPE 为0x8864, PPPoE 头部的 CODE =0x00, SESSION _ ID 在会话建立过程中不能发生改变, PPPoE Payload 为 PPP 帧。
在 PPP session 建立之后, PPPoE Server 和 Client 都可以通过发送 PADT ( PPPoE Active Discovery Terminate )报文来终止 PPP session 。 PPPoE 头部的 CODE =0xa7,不包括 TAG 。
PPPoE 的配置命令
如果以H3C MSR路由器作为PPPoE Server。相关的配置主要包括:
1) 配置虚拟接口模板
2)在以太网接口上启用PPPoE协议
在系统视图下使用interface virtual-template命令可以创建虚拟接口模板并进入虚拟接口模板视图。在虚拟接口模板视图下可以进行如下配置:
一 设置PPP的工作参数(PAP验证):
【接口视图】ppp authentication-mode pap [[call-in]domain isp-name]
二 设置的PPP工作参数(CHAP验证):
【接口视图】ppp authentication-mode chap [[call-in]domain isp-name]
【接口视图】ppp chap user username
三 设置PPP的工作参数(通过使用全局地址池给对端分配地址):首先通过开启DHCP定义全局IP地址池,然后在接口上使用全局地址池给PPP用户分配IP地址。
【系统视图】dhcp enable
【系统视图】dhcp server ip-pool pool-name
【地址池视图】network network-address [mask-length | mask mask]
【地址池视图】gateway-list ip-address &<1-8>
进入指定的以太网接口视图,使用pppoe-server命令绑定虚拟接口模板在以太网接口上启用PPPoE协议。
如果以H3C MSR路由器作为PPPoE Client,相关的配置主要包括:
1)配置拨号接口
2)配置PPPoE会话
相关的配置命令如下:
一 配置Dialer-group Rule:
【系统视图】dialer-rule dialer-group {protocol-name{permit | deny}|acl
acl-number}
二 创建一个Dialer接口:
【系统视图】interface dialer number
三 配置接口IP地址
【接口视图】ip address{address mask | ppp-negotiate}
其中ppp-negotiate表示配置接口通过PPP协商获取IP地址。
一 使能共享DDR:
【接口视图】dialer bundle enable
二 配置接口的Dialer Group:
【接口视图】dialer-group group-number
三 在以太网接口视图下建立一个PPPoE会话,并且指定该会话所对应的Dialer Bundle,该Dialer Bundle的序号number与Dialer接口的编号相同:
【接口视图】pppoe-client dial-bundle-number number[no-hostuniq]
PPPoE典型配置实例
在如上图所示的组网中,我们用一台MSR路由器(RTA)来作为PPPoE Server,PPPoE Client也是一台MSR路由器(HG),PPPoE Server和PPPoE Client都通过以太网接口连接到一台以太网交换机(SWA,模拟以太网接入环境)
在PPPoE Server上的配置如下:
1)配置虚拟模板接口1的参数,采用认证对端。
在PPPoE Client上的配置如下: