L2TP两种部署方法简述及Radius认证

关于L2TP,一直想找个时间好好总结下,最近同事正好遇到一个问题,所以把整个L2TP的内容研究了下,总算搞的清楚些了。虽然网上L2TP的文档很多,但感觉都不是非常详细。对于L2TP,有两个关键组件,一个是LAC,另一个就是LNS。常说的tunnel是LAC与LNS建立的。两个组件都可以提供认证,在LAC上的认证主要区分客户去那个tunnel,而LNS的认证是验证用户的合法性。对于L2TP的拨号方式,也分两种,一种是独立LAC,另一种是LAC客户端直接连LNS。

独立LAC + Lab

独立LAC模式在国内很少部署,因为此模式需要和运营商配合,而这这种模式主要考虑电话线路,直接提供VPN拨号。此拨号有别于国内的PPPOE,国内的PPPOE仅仅提供了宽带服务,而这里说的独立LAC,PPPOE终结在BRAS后,会向指定的LNS建立tunnel,直接把用户通过tunnel路由到相应的VPN网络中。国内的BRAS其实可以实现LAC,只不过没有这样部署而已。

简单的独立LAC Topology:

PC—-LAC—ISP—LNS—Server

PC建立PPPOE的拨号,LAC仅作第一次认证找到相应的tunnel并终结PPPOE,而PPP终结在LNS中。拨号建立后,PC只知道Server的地址,对于ISP是透明的。
具体的测试内容,可以看我这篇总结:《L2TP – 独立LAC测试分析

2013-5-16 更新:路由模拟PC拨号
在某些情况下,不方便直接连PC拨号,索性直接用路由器拨号,那么路由器怎么拨号呢?根据网上的大部分配置,基本都是路由器用serial口封装PPP拨号,这个很好理解。那么如果现实没有V35线又想拿真实设备做实验,怎么办呢?只要是PPP不就ok了么,那么就用PPPOE吧,其实路由器很容易实现,只是类似的配置模板比较少,下面是配置:

bba-group pppoe global
!
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface FastEthernet3/0
 no ip address
 duplex full
 pppoe enable group global
 pppoe-client dial-pool-number 1
!
interface Dialer1
 mtu 1492
 ip address negotiated
 encapsulation ppp
 dialer pool 1
 ppp chap hostname test@cisco.com ppp chap password 0 test

所有相关的PPPOE拨号属性都在Dialer里配置,另外此处直接用bba-group feature,全局PPPOE的属性可以在这下面配置。配上这个后,他会自动出发并发送PPPOE报文。老的配置中,PPPOE是借用VPDN的拨号方式来实现的,现在已经不用了,只有在L2TP时才会用到VPDN的拨号命令。

LAC客户端 + Lab

在日常应用中,大多数都是采用LAC客户端(此时PC就集成了LAC的角色)直接连LNS。这种方式的前提是LNS的地址可路由,相当于先获得internet访问,再进行L2TP拨号。

简单的LAC客户端Topology:

PC—ISP—LNS—Server

在这种环境下,PC可以到达ISP上其他的网络,包括LNS。所以此时PC会建立L2TP拨号,拨号里面的地址就是LNS的地址,此时PC相当于LAC的角色。
具体的测试内容,可以看我这篇总结:《L2TP – LAC客户端测试分析

2014-1-16 更新:
“Requester is not authorized to establish a control channel”

在LAC客户端测试分析中,我用到了这条命令:”no l2tp tunnel authentication”,当时也是测试很长时间,查了很多资料才发现的,由于PC上没有tunnel的认证,所以需要关闭他。在有LAC的情况下,是需要tunnel认证的,但是如果不需要,常见的手法是去掉”l2tp tunnel password 0 cisco”,看上去没什么问题,因为已经不配置password了,但事实上他仍然需要去认证,由于没有password,认证一直失败,并一直报错(ASR1k的debug):

L2TP tnl   0803D:00004297: Requester is not authorized to establish a control channel

下面是抓包信息:

No. Source           Destination     Protocol Length Info                                                           
1   10.10.10.1       10.10.10.2      L2TP     187    Control Message - SCCRQ (tunnel id=0, session id=0)
2   10.10.10.2       10.10.10.1      L2TP     188    Control Message - SCCRP (tunnel id=3, session id=0)  
3   10.10.10.1       10.10.10.2      L2TP     106    Control Message - StopCCN (tunnel id=28305, session id=0)
4   10.10.10.2       10.10.10.1      L2TP     54     Control Message - ZLB      (tunnel id=3, session id=0)

Frame 3: 106 bytes on wire (848 bits), 106 bytes captured (848 bits)
Ethernet II, Src: Cisco_40:35:79 (68:bd:ab:40:35:79), Dst: Cisco_72:bb:11 (00:22:55:72:bb:11)
Internet Protocol Version 4, Src: 10.10.10.1 (10.10.10.1), Dst: 10.10.10.2 (10.10.10.2)
User Datagram Protocol, Src Port: l2f (1701), Dst Port: l2f (1701)
Layer 2 Tunneling Protocol
    Packet Type: Control Message Tunnel Id=28305 Session Id=0
    Length: 64
    Tunnel ID: 28305
    Session ID: 0
    Ns: 1
    Nr: 1
    Control Message AVP
    Result-Error Code AVP
        1... .... .... .... = Mandatory: True
        .0.. .... .... .... = Hidden: False
        .... ..00 0010 0100 = Length: 36
        Vendor ID: Reserved (0)
        Type: Result-Error Code (1)
        Result code: 4 - Requester is not authorized to establish a control connection
        Error code: 0 - No General Error
        Error Message: Invalid challenge response
    Assigned Tunnel ID AVP

所以两边都no掉认证才可以,如”no l2tp tunnel authentication”。

Radius认证 + Lab

根据L2tp的环境,AAA认证可以部署在多个环节,我对LNS环节认证做了总结。
具体的测试内容,可以看我这篇总结:《L2TP – 独立LAC测试分析

L2TP Establish Step

每次复习L2TP的东西,都要找总结中l2tp建立过程的link,实在是累,这次把建立过程的图放到这个汇总贴中,方便复习:
下面的图是从网上找到的,应该是CCO文档中的,算是逻辑的建立过程:
l2tp-topology-logic
为了更能方便理解每一步的详细过程,在另一篇文档中找到了这个图,结合上面的图,看后添加的标记:
注:摘自《Cisco ISG Design and Deployment Guide: ATM to ISG LNS Aggregation
l2tp-topology-pak

anyShare分享到:
你可以留言,或者trackback 从你的网站

留言哦