PPP 数据包的第 2 层隧道
第 2 层隧道协议概述
L2TP 在 RFC 2661 第二 层隧道协议 (L2TP) 中定义。
L2TP 以对最终用户和应用尽可能透明的方式促进中间网络的 PPP 数据包隧道传输。它采用访问配置文件进行组和个人用户访问,并使用身份验证在每条隧道的两端之间建立安全连接。还支持多链路 PPP 功能。
L2TP 服务仅在以下路由器上受支持:
带有 AS PIC 的 M7i 路由器
具有 AS 和多服务 100 PIC 的 M10i 路由器
具有 AS、多服务 100 和多服务 400 PIC 的 M120 路由器
在 MX 系列路由器上,仅 MPC 支持 L2TP 接入集中器 (LAC) 和 L2TP 网络服务器 (LNS) 功能;任何服务 PIC 或 MS-DPC 均不支持它们。有关 L2TP 的 MPC 支持的详细信息,请参阅 MX 系列接口模块参考
有关更多信息,请参阅 L2TP 服务配置概述。
也可以看看
L2TP 服务配置概述
用于配置 L2TP 服务的语句位于以下层次结构级别:
[编辑服务 L2TP 隧道组 group-name]
L2TP 隧道组 语句标识 L2TP 实例或 L2TP 服务器。关联语句指定接受传入隧道和会话的本地网关地址、处理此隧道组中会话数据的自适应服务 (AS) 物理接口卡 (PIC)、对 L2TP 和 PPP 访问配置文件的引用,以及用于配置窗口大小和计时器值的其他属性。
[编辑接口 sp-fpc/pic/port 单元 logical-unit-number 拨号选项]
dial-options 语句包括 l2tp-interface-id 语句和共享/专用标志的配置。接口标识符将用户会话与逻辑接口相关联。会话可以使用共享或专用逻辑接口。要运行路由协议,会话必须使用专用逻辑接口。
[编辑访问配置文件 profile-name 客户端 name L2TP]
隧道配置文件在 [edit access] 层次结构级别定义。隧道客户端在这些配置文件中使用身份验证、多链路协商和分段以及其他 L2TP 属性进行定义。
[编辑访问配置文件 profile-name 客户端 name PPP]
用户配置文件在 [edit access] 层次结构级别定义。用户客户端在这些配置文件中使用身份验证和其他 PPP 属性进行定义。指定本地身份验证时使用这些客户端配置文件。
[编辑访问 RADIUS-server address]
在 [edit access profile profile-name] 层级配置身份验证顺序 RADIUS 时,必须在 [edit access radius-server] 层级配置 RADIUS 服务。
有关在 [edit access] 层级配置属性的更多信息,请参阅适用于路由设备的 Junos OS 管理库。有关 MX 系列路由器上用于订阅者访问的 L2TP LAC 和 LNS 配置的信息,请参阅《Junos 订阅者访问配置指南》中的用于订阅者访问的 L2TP 概述。
L2TP 最低配置
要配置 L2TP 服务,您必须至少执行以下任务:
在层次结构级别上
[edit services l2tp]定义具有以下属性的隧道组:l2tp-access-profile— L2TP 隧道的配置文件名称。ppp-access-profile- L2TP 用户的配置文件名称。local-gateway- L2TP 隧道的地址。service-interface— 用于 L2TP 服务的 AS PIC 接口。或者,您也可以进行配置以进行调试
traceoptions。
以下示例显示了带有追踪选项的隧道组的最低配置:
[edit services l2tp] tunnel-group finance-lns-server { l2tp-access-profile westcoast_bldg_1_tunnel; ppp-access-profile westcoast_bldg_1; local-gateway { address 10.21.255.129; } service-interface sp-1/3/0; } traceoptions { flag all; filter { protocol udp; protocol l2tp; protocol ppp; protocol radius; } }在层次结构级别:
[edit interfaces]标识 L2TP 隧道数据包进入路由器的物理接口,例如
ge-0/3/0。使用为 IP 服务定义的
unit 0 family inet配置 AS PIC 接口,并使用family inet和 语dial-options句配置另一个逻辑接口。
以下示例显示了 L2TP 的最低接口配置:
[edit interfaces] ge-0/3/0 { unit 0 { family inet { address 10.58.255.129/28; } } } sp-1/3/0 { unit 0 { family inet; } unit 20 { dial-options { l2tp-interface-id test; shared; } family inet; } }在层次结构级别:
[edit access]配置隧道配置文件。每个客户端指定一个唯一的 L2TP 存取集中器 (LAC) 名称,其
interface-id值与 AS PIC 接口单元上配置的值匹配;shared-secret即 LAC 与 L2TP 网络服务器 (LNS) 之间的身份验证。配置用户配置文件。如果将 RADIUS 用作身份验证方法,则需要对其进行定义。
定义 RADIUS 服务器,其中包含在路由器和 RADIUS 服务器之间共享的 IP 地址、端口和身份验证数据。
注意:当 L2TP 网络服务器 (LNS) 配置了 RADIUS 身份验证时,默认行为是接受首选 RADIUS 分配的 IP 地址。以前,默认行为是接受并安装进入 IPCP 配置请求数据包的 IP 地址选项的非零对等 IP 地址。
或者,您可以为公共属性定义组配置文件,例如
keepalive 0关闭激活消息。
以下示例显示了 L2TP 的最低配置文件配置:
[edit access] group-profile westcoast_users { ppp { keepalive 0; } } profile westcoast_bldg_1_tunnel { client production { l2tp { interface-id test; shared-secret "$ABC123"; # SECRET-DATA } user-group-profile westcoast_users; } } profile westcoast_bldg_1 { authentication-order radius; } radius-server { 192.168.65.63 { port 1812; secret "$ABC123"; # SECRET-DATA } }
也可以看看
配置 L2TP 隧道组
要在路由器上建立 L2TP 服务,您需要确定一个 L2TP 隧道组,并指定多个值,用于定义创建隧道时要使用的访问配置文件、接口地址和其他属性。要标识隧道组,请在层次结构级别包含[edit services l2tp]该tunnel-group语句。
如果删除某个隧道组或将其标记为非活动状态,则该隧道组中的所有 L2TP 会话都将终止。如果更改 or local-gateway address 语 service-interface 句的值,则使用这些设置的所有 L2TP 会话都将终止。如果在层次结构级别更改 [edit services l2tp tunnel-group group-name] 或删除其他语句,则您建立的新隧道将使用更新后的值,但现有隧道和会话不受影响。
以下部分介绍如何配置 L2TP 隧道组:
- 为 L2TP 隧道组配置访问配置文件
- 配置本地网关地址和 PIC
- 为 L2TP 隧道配置窗口大小
- 为 L2TP 隧道配置计时器
- 隐藏 L2TP 隧道的属性-值对
- 配置 L2TP 隧道活动的系统日志记录
为 L2TP 隧道组配置访问配置文件
要验证 L2TP 连接和会话请求,您可以通过在层次结构级别配置[edit access]该语句来profile设置访问配置文件。您需要配置两种类型的配置文件:
L2TP 隧道访问配置文件,用于验证对指定本地网关地址的所有 L2TP 连接请求
PPP 访问配置文件,通过建立到本地网关地址的 L2TP 隧道验证所有 PPP 会话请求
有关配置配置文件的更多信息,请参阅适用于 路由设备的 Junos OS 管理库。 示例:配置 L2TP 服务中包含配置文件示例。
要将配置文件与隧道组相关联,请在[edit services l2tp tunnel-group group-name]层次结构级别包括 and l2tp-access-profile ppp-access-profile 语句:
l2tp-access-profile profile-name; ppp-access-profile profile-name;
配置本地网关地址和 PIC
配置 L2TP 组时,还必须为 L2TP 隧道连接和处理请求的 AS PIC 定义一个本地地址:
要配置本地网关 IP 地址,请在层次结构级别包含
[edit services l2tp tunnel-group group-name local-gateway]该address语句:address address;
要配置 AS PIC,请在层次结构级别包含
[edit services l2tp tunnel-group group-name]该service-interface语句:service-interface sp-fpc/pic/port;
您可以随意指定逻辑单元号以及服务接口。如果指定,则设备将用作逻辑接口,表示使用此配置文件协商的 PPP 会话。
如果更改本地网关地址或服务接口配置,则使用这些设置的所有 L2TP 会话都将终止。
只要将 L2TP 会话配置为在出口接口上使用 IQ2 PIC,L2TP LNS 会话或具有 ATM VC 的 L2TP 会话就支持动态服务等级 (CoS) 功能。有关更多信息,请参阅服务等级用户指南(路由器和 EX9200 交换机)。
为 L2TP 隧道配置窗口大小
您可以配置 L2TP 隧道两端的数据包处理的最大窗口大小:
接收窗口大小限制服务器处理的并发数据包数。默认情况下,最大值为 16 个数据包。要更改窗口大小,请在层次结构级别包含以下
receive-window语句[edit services l2tp tunnel-group group-name]:receive-window packets;
最大发送窗口大小限制另一端的接收窗口大小。信息在接收窗口大小属性值对中传输。默认情况下,最大值为 32 个数据包。要更改窗口大小,请在层次结构级别包含以下
maximum-send-window语句[edit services l2tp tunnel-group group-name]:maximum-send-window packets;
为 L2TP 隧道配置计时器
您可以配置以下计时器值来调节 L2TP 隧道处理:
hello 间隔 — 如果服务器在指定的时间间隔内未收到任何消息,则路由器软件会向隧道的远程对等方发送 hello 消息。默认情况下,间隔长度为 60 秒。如果配置值为 0,则不会发送 hello 消息。要配置其他值,请在层次结构级别包含
[edit services l2tp tunnel-group group-name]该hello-interval语句:hello-interval seconds;
重传间隔 — 默认情况下,重传间隔长度为 30 秒。要配置其他值,请在层次结构级别包含
[edit services l2tp tunnel-group group-name]该retransmit-interval语句:retransmit-interval seconds;
隧道超时 — 如果服务器无法在指定的时间间隔内通过隧道发送任何数据,则会假定与远程对等方的连接已丢失并删除隧道。默认情况下,间隔长度为 120 秒。要配置其他值,请在层次结构级别包含
[edit services l2tp tunnel-group group-name]该tunnel-timeout语句:tunnel-timeout seconds;
隐藏 L2TP 隧道的属性-值对
建立 L2TP 隧道并对连接进行身份验证后,将通过属性-值对对对信息进行编码。默认情况下,此信息不会隐藏。要在已知共享密钥后隐藏属性-值对,请在[edit services l2tp tunnel-group group-name]层次结构级别包含以下hide-avps语句:
hide-avps;
配置 L2TP 隧道活动的系统日志记录
您可以指定属性来控制如何为 L2TP 服务生成系统日志消息。
要配置接口范围的默认系统日志记录值,请在层次结构级别包含[edit services l2tp tunnel-group group-name]该syslog语句:
syslog { host hostname { services severity-level; facility-override facility-name; log-prefix prefix-value; } }
使用指定系统日志目标服务器的主机名或 IP 地址配置 host 该语句。主机名 local 将系统日志消息定向到路由引擎。对于外部系统日志服务器,主机名必须能够从初始数据包(触发会话建立)传送到的同一路由实例中访问。您只能指定一个系统日志记录主机名。
表 1 列出了可在层次结构级别的[edit services l2tp tunnel-group group-name syslog host hostname]配置语句中指定的严重性级别。从最后info开始emergency的级别按从最高严重性(对功能影响最大)到最低的顺序排列。
严重性级别 |
描述 |
|---|---|
|
包括所有严重级别 |
|
系统崩溃或其他导致路由器停止运行的情况 |
|
需要立即更正的情况,例如损坏的系统数据库 |
|
危急情况,例如硬盘驱动器错误 |
|
错误情况通常后果不如紧急、警报和严重级别中的错误严重 |
|
需要监控的条件 |
|
非错误但可能需要特殊处理的情况 |
|
关注的事件或非错误条件 |
建议在正常作期间将系统日志记录严重性级别设置为。 error 要监控 PIC 资源使用情况,请将级别 warning设置为 。要在检测到入侵检测系统错误时收集有关入侵攻击的信息,请将特定服务集的级别设置为。 notice 要调试配置或记录网络地址转换 (NAT) 事件,请将级别 info设置为 。
有关系统日志消息的更多信息,请参阅 系统日志资源管理器。
要将一个特定设施代码用于对指定系统日志主机的所有日志记录,请在[edit services l2tp tunnel-group group-name syslog host hostname]层次结构级别包含该facility-override语句:
facility-override facility-name;
支持的工具包括: authorization、 daemon、 ftp、 kernel和 userlocal0 local7through 。
要为此系统日志主机的所有日志记录指定文本前缀,请在层次结构级别包含该 log-prefix 语句 [edit services l2tp tunnel-group group-name syslog host hostname] :
log-prefix prefix-text;
为提供 L2TP 服务的逻辑接口配置标识符
只能在 M7i、M10i、M120 和 MX 系列路由器上的自适应服务接口上配置 L2TP 服务。您必须将逻辑接口配置为专用接口或共享接口。如果逻辑接口是专用的,则一次只能表示一个会话。一个共享逻辑接口可以有多个会话。
要配置逻辑接口,请在层次结构级别包含[edit interfaces interface-name unit logical-unit-number dial-options]该l2tp-interface-id语句:
l2tp-interface-id name; (dedicated | shared);
l2tp-interface-id必须在层次结构级别复制[edit access profile name]在逻辑接口上配置的名称:
对于特定于用户的标识符,请在层次结构级别包含
[edit access profile name ppp]该l2tp-interface-id语句。对于组标识符,请在层次结构级别包含
[edit access profile name l2tp]该l2tp-interface-id语句。
您可以使用相同的接口标识符配置多个逻辑接口,以便用作多个用户的池。有关配置访问配置文件的更多信息,请参阅适用于路由 设备的 Junos OS 管理库。
如果删除在逻辑接口上配置的 dial-options 语句设置,则在该接口上运行的所有 L2TP 会话都将终止。
示例:在共享逻辑接口上配置多链路 PPP
共享或专用逻辑接口支持多链路 PPP。以下示例可用于在单个共享接口上配置多个多链路捆绑包:
interfaces {
sp-1/3/0 {
traceoptions {
flag all;
}
unit 0 {
family inet;
}
unit 20 {
dial-options {
l2tp-interface-id test;
shared;
}
family inet;
}
}
}
access {
profile t {
client test {
l2tp {
interface-id test;
multilink;
shared-secret "$ABC123"; # SECRET-DATA
}
}
}
profile u {
authentication-order radius;
}
radius-server {
192.168.65.63 {
port 1812;
secret "$ABC123"; # SECRET-DATA
}
}
}
services {
l2tp {
tunnel-group 1 {
l2tp-access-profile t;
ppp-access-profile u;
local-gateway {
address 10.70.1.1;
}
service-interface sp-1/3/0;
}
traceoptions {
flag all;
debug-level packet-dump;
filter {
protocol l2tp;
protocol ppp;
protocol radius;
}
}
}
}
用于 L2TP 服务的 AS PIC 冗余
L2TP 服务支持 AS PIC 冗余。要配置冗余,请指定一个冗余服务 PIC (rsp) 接口,其中主 AS PIC 处于活动状态,辅助 AS PIC 处于备用状态。如果主 AS PIC 发生故障,辅助 PIC 将变为活动状态,并且所有服务处理都将传输至该 PIC。如果恢复主 AS PIC,它将保持备用状态,并且不会抢占辅助 AS PIC;您需要手动将服务还原到主 PIC。要确定哪个 PIC 当前处于活动状态,请发出命令 show interfaces redundancy 。
在 L2TP 上,唯一支持的服务选项是 热备用,其中一个备用 PIC 支持多个工作 PIC。无法保证恢复时间,因为检测到故障后,必须在备份 PIC 上完全还原配置。隧道和会话在切换时将被拆除,需要分别由 LAC 和 PPP 客户端重新启动。但是,配置将保留并在新的活动 PIC 上可用,尽管需要重新建立协议状态。
与其他支持热备用的 AS PIC 服务一样,您可以发出命令 request interfaces (revert | switchover) 在主 L2TP 接口和辅助 L2TP 接口之间手动切换。
有关更多信息,请参阅 配置 AS 或多服务 PIC 冗余。有关示例配置,请参阅 示例:配置 L2TP 服务。有关作模式命令的信息,请参阅 CLI 资源管理器。
示例:配置 L2TP 服务
为并发隧道会话配置具有多个组和用户配置文件以及逻辑接口池的 L2TP:
[edit access]
address-pool customer_a {
address 10.1.1.1/32;
}
address-pool customer_b {
address-range low 10.2.2.1 high 10.2.3.2;
}
group-profile sunnyvale_users {
ppp {
framed-pool customer_a;
idle-timeout 15;
primary-dns 192.168.65.1;
secondary-dns 192.168.65.2;
primary-wins 192.168.65.3;
secondary-wins 192.168.65.4;
interface-id west;
}
}
group-profile eastcoast_users {
ppp {
framed-pool customer_b;
idle-timeout 20;
primary-dns 192.168.65.5;
secondary-dns 192.168.65.6;
primary-wins 192.168.65.7;
secondary-wins 192.168.65.8;
interface-id east;
}
}
group-profile sunnyvale_tunnel {
l2tp {
maximum-sessions-per-tunnel 100;
interface-id west_shared;
}
}
group-profile east_tunnel {
l2tp {
maximum-sessions-per-tunnel 125;
interface-id east_shared;
}
}
profile sunnyvale_bldg_1 {
client white {
chap-secret "$ABC123"; # SECRET-DATA
ppp {
idle-timeout 22;
primary-dns 192.168.65.1;
framed-ip-address 10.12.12.12/32;
interface-id east;
}
group-profile sunnyvale_users;
}
client blue {
chap-secret "$ABC123"; # SECRET-DATA
group-profile sunnyvale_users;
}
authentication-order password;
}
profile sunnyvale_bldg_1_tunnel {
client test {
l2tp {
shared-secret "$ABC123"; # SECRET-DATA
maximum-sessions-per-tunnel 75;
interface-id west_shared;
ppp-authentication chap;
}
group-profile sunnyvale_tunnel;
}
client production {
l2tp {
shared-secret "$ABC123";
ppp-authentication chap;
}
group-profile sunnyvale_tunnel;
}
}
[edit services]
l2tp {
tunnel-group finance-lns-server {
l2tp-access-profile sunnyvale_bldg_1_tunnel;
ppp-access-profile sunnyvale_bldg_1;
local-gateway {
address 10.1.117.3;
}
service-interface sp-1/3/0;
receive-window 1500;
maximum-send-window 1200;
retransmit-interval 5;
hello-interval 15;
tunnel-timeout 55;
}
traceoptions {
flag all;
}
}
[edit interfaces sp-1/3/0]
unit0 {
family inet;
}
unit 10 {
dial-options {
l2tp-interface-id foo-user;
dedicated;
}
family inet;
}
unit 11 {
dial-options {
l2tp-interface-id east;
dedicated;
}
family inet;
}
unit 12 {
dial-options {
l2tp-interface-id east;
dedicated;
}
family inet;
}
unit 21 {
dial-options {
l2tp-interface-id west;
dedicated;
}
family inet;
}
unit 30 {
dial-options {
l2tp-interface-id west_shared;
shared;
}
family inet;
}
unit 40 {
dial-options {
l2tp-interface-id east_shared;
shared;
}
family inet;
}
配置 L2TP 冗余:
interfaces {
rsp0 {
redundancy-options {
primary sp-0/0/0;
secondary sp-1/3/0;
}
unit 0 {
family inet;
}
unit 11 {
dial-options {
l2tp-interface-id east_shared;
shared;
}
family inet;
}
}
}
跟踪 L2TP 运维
跟踪作跟踪所有 AS PIC作,并将其记录在 /var/log 目录的日志文件中。默认情况下,此文件名为 /var/log/l2tpd。
本主题涉及跟踪 M Series 路由器上的 L2TP LNS作。要跟踪 MX 系列路由器上的 L2TP LAC作,请参阅跟踪 L2TP 事件以进行故障排除。
要跟踪 L2TP作,请在[edit services l2tp]层次结构级别包含以下traceoptions语句:
traceoptions { debug-level level; file <filename> <files number> <match regular-expression > <size maximum-file-size> <world-readable | no-world-readable>; filter { protocol name; user-name username; } flag flag; interfaces interface-name { debug-level severity; flag flag; } level (all | error | info | notice | verbose | warning); no-remote-trace; }
您可以指定以下 L2TP 跟踪标志:
all——追踪一切。configuration— 跟踪配置事件。protocol— 跟踪路由协议事件。routing-socket- 跟踪路由套接字事件。rpd— 跟踪路由协议进程事件。
您可以为 PPP、L2TP、RADIUS 和用户数据报协议 (UDP) 跟踪指定追踪级别。要配置追踪级别,请在层次结构级别包含[edit services l2tp traceoptions]该debug-level语句,并指定以下值之一:
detail—详细的调试信息error- 仅错误packet-dump—数据包解码信息
您可以按协议进行过滤。要配置过滤器,请在层次结构级别包含filter protocol[edit services l2tp traceoptions]该语句,并指定以下一个或多个协议值:
pppl2tpradiusudp
要按协议名称实施过滤,还必须配置 flag protocol 或 flag all。
您还可以在特定的自适应服务接口上为 L2TP 配置 traceoptions。要配置每个接口的跟踪,请在层次结构级别包含[edit services l2tp traceoptions]该interfaces语句:
interfaces interface-name {
debug-level level;
flag flag;
}
实现traceoptions会消耗CPU资源,影响数据包处理性能。
您可以为接口指定 debug-level and flag 语句,但选项与常规 L2TP traceoptions 略有不同。您可以将调试级别指定为 detail、 、 error或 extensive,以提供完整的 PIC 调试信息。以下标志可用:
all——追踪一切。ipc— 跟踪 PIC 与路由引擎之间的 L2TP 进程间通信 (IPC) 消息。packet-dump— 根据调试级别转储每个数据包的内容。protocol— 跟踪 L2TP、PPP 和多链路处理。system— 跟踪 PIC 上的数据包处理。