LAC and LNS setup with Cisco as LAC

本页说明如何将 MikroTik RouterOS 设备配置为 L2TP Network Server (LNS),以便与充当 LAC 的 Cisco 路由器建立 VPDN 连接。文中包含 LAC 上 PPPoE 客户端设置、LNS 上激活 L2TP 服务器的基础配置示例,以及两种角色的 RouterOS 命令示例。

LAC and LNS setup with Cisco as LAC

LAC/LNS 设置,也称为 Virtual Private DialUp Network (VPDN),允许远程拨号用户与私有网络之间建立长距离点对点连接。

拨号客户端使用 PPPOE 连接到 L2TP access concentrator (LAC),LAC 判断该会话应通过 IP 网络转发到 L2TP Network Server (LNS),创建 L2TP 隧道并将 PPP 帧转发到服务器,客户端在那里完成认证并建立会话(见下图)。

在撰写本文时,RouterOS 无法用于 LAC 角色。因此,本文将演示如何设置一个非常基础的网络,其中 RouterOS 作为 LNS,Cisco 路由器作为 LAC。

配置

我们将使用一个简单配置来演示 VPDN 设置的基础知识。假设 LAC 将把 FQDN 名称中包含 mt.lv 域的客户端转发给 LNS。

客户端

为简单起见,假设客户端是一台 RouterOS 路由器:

/interface/pppoe-client/add interface=ether1 user=good_worker@mt.lv password=strongpass

LAC

假设客户端连接到 GigabitEthernet1 端口,LNS 服务器的 IP 地址为 10.155.101.231

aaa new-model
!
aaa authentication ppp default local
!
vpdn enable
vpdn aaa attribute nas-ip-address vpdn-nas
vpdn search-order domain dnis 
!
vpdn-group LAC
 request-dialin
  protocol l2tp
  domain mt.lv
 initiate-to ip 10.155.101.231
 source-ip 10.155.101.216
 local name LAC
 l2tp tunnel password 0 tunnelpass
!
bba-group pppoe MAIN-BBA
 virtual-template 1
!
interface GigabitEthernet1
 pppoe enable group MAIN-BBA
!
interface Virtual-Template1
 description pppoe MAIN-BBA
 no ip address
 no peer default ip address
 ppp mtu adaptive
 ppp authentication chap
!

请注意,为简单起见,此设置既不在本地也不通过 RADIUS 对客户端进行认证,实际上不检查域名,也不控制 L2 访问。如果你想使用这些功能,请参阅 Cisco 配置手册。

LNS

在 LNS 上,我们需要启用 L2TP 服务器,并设置一种方法用于认证来自 LAC 的 L2TP 连接。

/interface/l2tp-server/server
set enabled=yes
/ppp/l2tp-secret
add address=10.155.101.216/32 secret=tunnelpass

现在是实际用户认证。在此例中,为简单起见我们将使用本地认证方法。

/ip/pool
add name=pool0 ranges=192.168.99.2-192.168.99.99
/ppp/profile
set default local-address=192.168.99.1 remote-address=pool0
/ppp/secret
add name=good_worker@mt.lv password=strongpass

状态检查

在 LNS 上,你可以通过检查 l2tp 服务器接口或检查活动的 ppp 连接来查看所有成功连接的客户端:

[admin@CHR_v6_bgp] /interface/l2tp-server> print
Flags: X - disabled, D - dynamic, R - running
# NAME USER MTU CLIENT-ADDRESS UPTIME ENCODING
0 DR <l2tp-... good_worker@mt.lv 1450 10.155.101.216 6h13m49s

[admin@CHR_v6_bgp] /ppp/active> print
Flags: R - radius
# NAME SERVICE CALLER-ID ADDRESS UPTIME ENCODING
0 good_worker@mt.lv l2tp 10.155.101.216 192.168.99.2 6h15m57s 

在 LAC 上,我们也可以看到活动的客户端会话以及 LAC 与 LNS 之间的活动 L2TP 隧道:

csrLAC#show vpdn

L2TP Tunnel and Session Information Total tunnels 1 sessions 1

LocTunID RemTunID Remote Name State Remote Address Sessn L2TP Class/
Count VPDN Group
26090 11 CHR_v6_bgp est 10.155.101.231 1 LAC

LocID RemID TunID Username, Intf/ State Last Chg Uniq ID
Vcid, Circuit
18521 16 26090 good_worker@mt.lv, Gi1 est 06:17:07 571

会话建立

让我们仔细看看客户端会话是如何通过 LAC 进行认证和建立的。

  • 客户端发起 PPPoE 呼叫。
  • LAC 与客户端开始 LCP 协商。
  • CHAP 协商完成后,LAC 发送 CHAP challenge。
  • 客户端发送 CHAP response。
  • LAC 根据收到的域名检查是否应将客户端会话转发给 LNS。该检查可以在本地进行,也可以使用 RADIUS 服务器进行。客户端也可以在此处先完成认证再转发会话。
  • LAC 建立一条 L2TP 隧道。
  • LNS 检查 LAC 是否被允许打开隧道并运行认证过程。隧道建立完成,可以转发 VPDN 会话。
  • LAC 将与客户端协商的 LCP 选项、用户名和密码转发给 LNS。
  • LNS 在本地或使用 RADIUS 对客户端进行认证,并发送 CHAP Success 或 CHAP Failure 消息。
  • 执行 IP Control Protocol (IPCP) 阶段,安装 IP 地址和路由。此时会话被视为已建立。