四、配置设备作为PPPoE服务器
路由器的PPPoE服务器功能可以配置在物理以太网接口或PON接口上,也可配置在由ADSL接口生成的虚拟以太网接口上。
1、配置虚拟模板接口
虚拟模板接口VT和以太网接口或PON接口绑定后,实现PPPoE功能。
PPPoE服务器的虚拟模板接口配置
system-view
interface virtual-template vt-number 创建虚拟模板接口并进入虚拟模板接口视图。
ppp authentication-mode {chap | pap} [[call-in] domain domain-name] 配置本端设备对对端设备的认证方式。
ip address ip-address {mask | mask-length} 配置虚拟模板接口的IP。
remote address ip-address 二选一,配置为以上接口所连接的PPPoE客户端分配的IP。
remote address pool pool-name 配置为PPPoE客户端指定地址池。
ppp ipcp dns primary-dns-address [secondary-dns-address] 配置设备为对端设备指定主、从DNS服务器的IP地址。
quit
ip pool ip-pool-name 创建全局地址池并进入全局地址池视图。
network ip-address [mask {mask | mask-length}] 配置地址池下的IP地址范围。
gateway-list ip-address & <1-8> 配置地址池的出口网关地址。ip-address用来指定客户端的网关IP地址。
2、配置接口上启用PPPoE服务器协议
用户需要将虚拟接口模板绑定到接口(物理以太网接口或PON接口,或者由ADSL接口生成的虚拟以太网接口),才可以实现PPPoE功能。主要就是通过ppp-server bind virtual-template vt-number接口视图命令绑定连接客户端的路由器接口。
3、(可选)配置PPPoE会话参数
PPPoE服务器能创建PPPoE会话的最大数目、PPPoE服务器的一个MAC地址上能创建的PPPoE会话的最大数目和PPPoE客户端的一个MAC地址上能创建PPPoE会话的最大数目。
system-view
pppoe-server max-sessions total number 配置设备创建PPPoE会话的最大数目。
pppoe-server max-sessions local-mac number 配置在一个本端MAC地址上能创建的PPPoE会话的最大数。
pppoe-server max-sessions remote-mac number 配置在一个对端MAC地址上能创建PPPoE会话的最大数。
4、配置PPPoE认证用户
当设备作为PPPoE服务器对PPPoE客户端进行认证、授权和计费时,需配置PPPoE认证用户。以本地认证方式为例。
system-view
aaa
local-user user-name password cipher password
local-user user-name service-type ppp
五、PPPoE管理
Display access-user:查看当前在线用户信息
Display pppoe-client session {packet |summary }【dial-number number】:查看PPPoE客户端的PPPoE会话状态和统计信息。
Display pppoe-server session {all | packet}:查看PPPoE会话状态和统计信息
Reset pppoe-server {all| interfaceinterface-type interface-number | virtual-template number}:清楚PPPoE会话,在PPPoE服务器用户视图下。
Reset pppoe-client {all |dial-bundle-number number}:在PPPoE Client端用户视图下,复位PPPOE会话。
在AAA视图下执行cut access-user user-id begin-number【end-number】命令强制断开指定ID的PPPoE会话。
六、设备作为PPPoE服务器的配置实例
基本网络结构:
局域网内主机与设备直联,设备作为PPPoE服务器,企业网内的主机需要通过PPPoE拨号接入Internet。用户在主机上安装拨号软件,每个主机使用同一个账号进行拨号上网。
PPPoE服务器为主机动态分配IP地址
PPPoE服务器通过AAA本地认证认证主机用户
PPPoE服务器为主机分配DNS服务器地址。
2、具体步骤
①创建并配置VT
system-view
interface virtual-template 1
ppp authentication-mode chap domain system
ip address 192.168.10.1 255.255.255.0
remote address pool pool1
ppp ipcp dns 10.10.10.10 10.10.10.11
quit
②配置用于为客户端分配IP地址的全局地址池pool1.
ip pool pool1
network 192.168.10.10 mask 255.255.255.0
gateway-list 192.168.10.1
quit
- 在以太网接口GE1/0/0上启用PPPoE协议。
interface g1/0/0
pppoe-server bind virtual-template 1
quit
- 配置PPPoE认证用户
aaa
authentication-scheme sys_a
authentication-mode local
quit
domain system
authentication-scheme sys_a
quit
local-user user1@system password cipher user1123
local-user user1@system service-type ppp
quit
配置完成后,可以在PPPoE服务器上执行display pppoe-server session all,显示PPPoE会话的状态信息和配置信息。根据显示信息判断会话状态是否正常(状态为Up表示正常)、配置是否正确(是否和之前的数据规划和组网一致)。
在eNSP上的实验
上图是对云的配置,主要是想使用拨号连接,因为eNSP上没有模拟的拨号程序,使用主机上的虚拟机安装一个XP系统,在其上建立PPP拨号连接
在虚拟机上拨号,成功,使用ipconfig命令,显示如下
第一感觉不正确的地方是dns地址和网关地址,dns感觉跟配置的地址顺序反过来了,而gateway没有使用配置中的地址,即192.168.71.20,然后IP地址也有些感觉不对劲。
先在配置中将dns的地址改为11.10.10.10,这时,这里的显示就是10.10.10.11,如果修改了user的密码,再次拨号,显示:
说明连接是正确的,确实连接到了配置的路由器上,路由器作为PPPoE-server也起作用了。至于IP地址与网管的地址错误问题,在XP虚拟机上,
因为使用虚拟机的网络VMnet8,启动了DHCP,这一块有点搞不清楚了。
看抓包:
PPPoE的过程还是很清楚的,先是discovery过程,四个步骤:
先是PADI:
可以看到目的MAC地址是广播地址;然后是PADO,带了AC-Name
然后是PADR
最后是PADS,session会话建立
然后是LCP协商过程,协商主要是确认认证方式,这里确认为CHAP认证;
然后是CHAP认证过程,三步,认证后,多了一步,确认协议压缩
然后就是ICPC阶段:
上面是客户端的请求信息,所有的IP都是0.0.0.0,就是要求PPPoE-Server给分配
大体的步骤是差不多了,出现的问题估计主要跟所使用的的模拟环境有关,主要是虚拟机的虚拟网卡本身还有DHCP有关吧,过程差不多明白了,其他就不研究了。
七、设备作为PPPoE客户端的配置实例:
网络结构如下:
路由器下行通过GE1/0/0连接局域网用户,上行通过GE2/0/0接入PPPoE服务器。用户希望主机共享一个账号,通过这个账号到PPPoE服务器进行认证,认证后,即建立一个PPPoE会话,接入Internet;长时间无数据传输时,PPPoE客户端切断本次会话。
1、基本配置思路
同时涉及PPPoE客户端和PPPoE服务器的配置。在PPPoE客户端:配置ADSL接口属性、配置Dialer接口,包括Dialer接口IP地址、PPP封装、Dialer接口属性和共享DCC拨号参数(包括CHAP认证,以实现设备通过PPP认证与PPPoE服务器建立连接),同时配置拨号方式为报文触发方式、配置物理拨号接口:因为采用以太网接口与PPPoE服务器连接,所以可以启用PPPoE协议,建立PPPoE会话连接。
PPPoE服务器需要配置认证方式、IP地址获取方式或设置为PPPoE客户端分配的IP地址或地址池。
2、具体步骤
①配置Dialer接口,主要是共享DCC配置。(客户端)
system-view
sysname adsl-client
dialer-rule
dialer-rule 1 ip permit
quit
interface dialer 1
dialer user user2
dialer-group 1
dialer bundle 1
ppp chap user user1@system
ppp chap password cipher user1123
dialer timer idle 300
dialer queue-length 8
ip address ppp-negotiate
quit
②配置物理拨号接口,建立按需拨号PPPoE会话
interface g2/0/0
pppoe-client dial-bundle-number 1 on-demand
quit
③配置到PPPoE服务器的静态路由。
ip route-static 0.0.0.0 0.0.0.0 dialer 1
配置好后,执行display pppoe-client session summary查看pppoe会话的状态和配置信息。
在eNSP上的实验:
PC1:192.168.2.2 AR1的GE0/0/1:192.168.2.1 AR2的GE0/0/2:192.168.10.1 AR2的GE0/0/0:192.168.20.1 PC2:192.168.20.2
配置好以后,在PC1上PING 192.168.20.2,发现是不通的
在PPPoE Server上的路由有问题,没有返回192.168.2.0的路由,添加默认路由:
ip route-static 0.0.0.0 0.0.0.0 virtual-template 1
然后就通了
通过抓包,了解链路建立过程:
当有数据到来时,这里就是PC1发送PING包,通过192.168.2.1网关,到达路由器,路由器根据路由表,默认路由判定需要通过dialer1传送,这时触发链路的建立,先是PPPoE的Discovery阶段,四步,即PADI、PADO、PADR、PADS,然后就是LCP的协商阶段,主要协商认证方式,协商完毕后,因为有认证,开始进行认证,使用CHAP认证,需要三次握手,认证通过后,进入IPCP阶段,这里主要看到有一个configuration Nak,它对应的request如下:
客户端向服务器端发送请求,并且IP地址为0.0.0.0,服务器端收到后,使用Nak进行响应,就是请求的参数都能识别,但是不认可参数配置的值,用Nak携带服务器建议的参数值返回给客户端,如下图:
这实际上就是PPPoE Server的地址分配功能,给客户端分配了一个IP地址,客户端在用这个地址进行request,完成IPCP过程。
这里的配置主要是dialer user user2这一步不太理解其作用,这里的user名字可以随意配置,网上有说可以不用配置
通过测试,dialer user必须配置,用户名可以随意,但是配置后就不能更改,一旦更改,就无法建立连接。在抓包的过程中也没有见过这个参数被传递。
dialer user命令在前面共享DCC中,命令解释如下: 在dialer接口上使能共享DCC功能。username指定对端用户名,必须与对端配置的PPP用户名一致。这是启动共享DCC的关键。如果不配置,直接往下配置:
直接提示你必须进行配置,这里不理解的是须与对端配置的PPP用户名一致,对端就是pppoe-server,没有配置什么用户啊???
八、利用ADSL Modem将局域网接入Internet的配置实例
RouterA下行通过Eth3/0/0连接局域网用户,上行通过GE1/0/0连接ADSL Modem设备;RouterB通过ATM1/0/0接口连接DSLAM设备。局域网内计算机的内网地址网段:192.168.10.0/24,用户希望通过RouterA访问服务器RouterB,访问外网。已知账户的用户名为user1,密码123456.
1、配置基本思路
①配置RouterA作为PPPoE客户端,实现局域网内的主机不用安装PPPoE客户端软件即可访问Internet的目的。
②配置RouterB作为PPPoE服务器提供RADIUS认证、计费功能。
③配置NAT功能,实现局域网内的用户可以访问外网的目的。
2、具体步骤。
(1)PPPoE客户端上的配置
①配置Dialer拨号口
system-view
sysname RouterA
dialer-rule
dialer-rule 1 ip permit
quit
interface dialer 1
dialer user user1
dialer-group 1
dialer bundle 1
ppp chap user user1
ppp chap password simple user1123
dialer timer idle 300
dialer queu-length 8
ip address ppp-negotiate
quit
②建立PPPoE会话
interface g 1/0/0
pppoe-client dial-bundle-number 1
quit
③配置局域网用户通过NAT转换将私网地址转换为公网地址,进行拨号上网。
acl number 2002
rule 5 permit ip source 192.168.10.0 0.0.0.255
quit
interface dialer 1
nat outbound 2002
quit
- 配置到PPPoE服务器的静态路由,假设PPPoE服务器的IP地址为192.168.10.1
ip route-static 0.0.0.0 0.0.0.0 dialer 1
(2)PPPoE服务器上的配置
①配置全局地址池pool1
system-view
sysname RouterB
ip pool pool1
network 192.168.10.10 mask 255.255.255.0
gateway-list 192.168.10.1
quit
②创建并建立VT
interface virtual-template 1
ppp authentication-mode chap domain system
ip address 192.168.10.1 24
remote address pool pool1
quit
③在Virtual Ethernet接口上启用PPPoE服务器协议
interface virtual-ethernet 0/0/1
pppoe-server bind virtual-template 1
quit
- 对ATM接口进行配置
interface atm 1/0/0
pvc 0/32
map bridge virtual-ethernet 1
quit
- 配置PPPoE用户
aaa
local-user user1 password cipher user1123
local-user user1 service-type ppp
quit
- 配置RADIUS认证,计费方案。
radius-server template shiva
radius-server authentication 129.6.6.66 1812
radius-server accounting 129.6.6.66 1813
radius-server authentication 129.6.6.67 1812 secondary
radius-server accounting 129.6.6.67 1813 secondary
radius-server shared-key simple hello
quit
aaa
authentication-scheme 1
authentication-mode radius
quit
accounting-scheme 1
accounting-mode radius
quit
domain system
authentication-scheme 1
accounting-scheme 1
radius-server shiva
配置好后可在RouterA上执行display pppoe-client session summary查看状态和配置信息:
这个实验没法做,关键是服务器端,DSLAM与服务器之间是ATM线路,所以在服务器上,是先配置VT,然后配置VE,在VE上绑定VT,即PPPoE,然后又将VE映射到ATM接口,实现了PPPoEoA。