PPP封装没有任何MAC地址存在;数据帧如果通过以太网交换,以太网交换机基于MAC地址转发数据帧,无法识别PPP帧。
所以PPP只能在串行链路;不利于远距离传输遗迹复综合的网络环境中进行数据帧转发
username XXX password XXX
//本地存储用户名和密码条目;与CLIEN发送来的用户名和密码进行对比;对比成功 认证通过
运营商配置本地池,分配地址给相应的客户端
Router(config)#ip local pool server 12.1.1.10 12.1.1.20
ip address negotiated
encapsulation ppp
ppp pap sent-username XXX password XXX
以太网HDLC:
传统以太网数据帧,基于源目MAC地址进行二层透传转发
PPP:认证
Ethernet:可以在复杂多变变网络环境中转发二层帧
解决PPP没有办法在路由器的以太口上封装的核心思想:
创建虚拟接口/用于封装PPP
Router(config)#username 123 password 123
Router(config)#ip local pool sp 12.1.1.100 12.1.1.105
Router(config)#bba-group pppoe global
*Sep 4 06:07:24.415: %LINEPROTO-5-UPDOWN: Line protocol on Interface Virtual-Access1, changed state to up
*Sep 4 06:07:24.415: %LINK-3-UPDOWN: Interface Virtual-Access1, changed state to up
Router(config-bba-group)#virtual-template 1 //虚接口与用户组关联
Router(config-bba-group)#exi
Router(config)#interface virtual-template 1
Router(config-if)#encapsulation ppp
Router(config-if)#ppp authentication pap
Router(config-if)#peer default ip address ?
dhcp Use DHCP proxy client mechanism to allocate a peer IP address
dhcp-pool Use local DHCP pools to allocate a peer IP address
pool Use IP pool mechanism to allocate a peer IP address
Router(config-if)#pppoe enable group global
server(config)#do show run | s bba
bba-group pppoe global
virtual-template 1
//创建PPPoE拨号的用户组,默认组为global,关联virtual-template口
虚拟拨号模板接口
物理接口仅激活PPPoE,并且和相应的组关联
server(config-if)#do show run int virtual-template 1
Building configuration...
Current configuration : 127 bytes
!
interface Virtual-Template1
ip address 12.1.1.2 255.255.255.0 //将virtual口当成串行口,所以地址不配置与物理接口下
peer default ip address pool sp
ppp authentication pap
end
client(config)#int dialer 1
client(config-if)#encapsulation ppp
client(config-if)#ppp pap sent-username 123 password 123
client(config)#int dialer 1
client(config-if)#dialer pool 1 //将DIALER口与dialer pool 映射拨号口关联到拨号池
client(config-if)#ip address negotiated
client(config-if)#int e0/0
client(config-if)#pppoe-client dial-pool-number 1 //接口下激活拨号池
client(config-if)#
*Sep 4 06:27:22.136: %DIALER-6-BIND: Interface Vi1 bound to profile Di1
*Sep 4 06:27:22.142: %LINK-3-UPDOWN: Interface Virtual-Access1, changed state to up
client(config-if)#
client#
*Sep 4 06:27:22.196: %LINEPROTO-5-UPDOWN: Line protocol on Interface Virtual-Access1, changed state to up
client#
*Sep 4 06:27:23.334: %SYS-5-CONFIG_I: Configured from console by console
经过PPPoE封装后的ICMP包格式
可以看到封装了PPP的二层头和以太网二层头部
为不为以太网二层头部(源,目MAC地址,用于物理接口转发以及穿越交换环境)
交换机仅根据以太网头部转发数据帧,不会查看PPP内容
数据帧到达目的节点后,以太网接口拆除以太网二层头部封装,交友virtual口进行PPP封装的检查
PPPoE session 回话是在ping包之前建立的,保证了从AIP到BIP之间链路已经被认证过
virtual-template接口 双DOWN
在PPPoE环境中 virtual-template 口不进行任何数据包的转发与封装
用户在PPPoE建立回话的初期,认证通过后,将由对应的virtual-template接口 CLONE配置到全新的virtual-access接口,并且建立PPPoE会话session。每隔客户拥有唯一的session
CLONE形成的virtual-access接口和virtual-template接口拥有相同的配置,IP/MAC,service provider通过数据包封装中的PPPoE session ID来区分不同用户的流量
Router(config)#access-list 10 permit 3.3.3.3
Router(config)#ip nat inside source list 10 interface dialer 2
Router(config)#
*Sep 5 03:05:10.907: %LINEPROTO-5-UPDOWN: Line protocol on Interface NVI0, changed state to up
Router(config)#int lo0
Router(config-if)#ip nat in
Router(config-if)#int di2
Router(config-if)#ip nat outside
Router(config-if)#exi
Router(config)#ip route 0.0.0.0 0.0.0.0 dia2