当前位置:   article > 正文

NUC980 嵌入式系统移植 l2tp 模块实践记录_pppoptfile = /etc/ppp/peers/air-ppp

pppoptfile = /etc/ppp/peers/air-ppp

本篇以实践过程记录为主线,简介在嵌入式ARM linux系统、移植 l2tp 及配置参数解释。

本文嵌入式系统为新唐nuc980 的 arm9 硬件平台,采用 buildroot 方式移植 xl2tp 软件包,linux版本:4.4.200 ;

  1. l2tp 移植
    1.1) 配置 xl2tpd 软件包及依赖库
    menuconfig中配置参数如下:
    -> Target packages
    -> Networking applications
    -*- pppd
    [*] filtering
    [*] radius
    [*] xl2tp

依赖库配置:
-> Target packages
-> Libraries
-> Networking
-*- libpcap
-> Target packages
-> Libraries
-> Crypto
-*- openssl
[*] openssl binary
[*] openssl additional engines
编译生成image 和 rootfs 镜像文件,在目标机上配置 xl2tpd 的参数。nuc980 作为 xl2tpd 的服务器端,ubuntu 16 做为客户端。

1.2)配置 /etc/init.d/xl2tpd 启动脚本
参考配置文件路径:
build-2016/package/xl2tp$ cat xl2tpd
内容如下:

#!/bin/sh
#
PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/sbin/xl2tpd
PIDFILE=/var/run/xl2tpd.pid

test -f $DAEMON || exit 0

case "$1" in
  start)
    start-stop-daemon -S  -p $PIDFILE -x $DAEMON -- -D &
    ;;
  stop)
    start-stop-daemon -K  -p $PIDFILE -x $DAEMON
    ;;
  restart|force-reload)
    start-stop-daemon -K  -p $PIDFILE -x $DAEMON 
    sleep 1
    start-stop-daemon -S  -p $PIDFILE -x $DAEMON
    ;;
  *)
    echo "Usage: /etc/init.d/xl2tdp {start|stop|restart|force-reload}"
    exit 1
    ;;
esac

exit 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

把此文件脚本,拷贝至rootfs系统下: /etc/init.d/xl2tpd,赋予执行权限.
chmod 755 xl2tpd

  1. 服务器端的参数配置
    本次实验采用的 xl2tpd ,服务器端内容配置如下。

2.1) 配置 /etc/xl2tpd # cat xl2tpd.conf

[global]
port =1701
ipsec saref = no
access control = no
auth file=/etc/xl2tpd/l2tp-secrets
debug network = yes
debug state = yes
debug packet = yes
debug tunnel = yes

[lns default]
exclusive = yes
ip range = 100.0.0.100-100.0.0.200
local ip = 100.0.0.10
refuse pap = yes
; require authentication = yes
require chap = yes
name = Xl2tpServer              #此处字符
ppp debug = yes
pppoptfile = /etc/ppp/option.l2tpd.lns
length bit = yes
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

2.2) xl2tpd 的客户端登录认证用户名 缺省文件

/etc/xl2tpd # cat l2tp-secrets ,此文件并没有使能内容。

# Secrets for authenticating l2tp tunnels
# us	them	secret
# *		marko blah2
# zeus		marko	blah
# *	*	interop
  • 1
  • 2
  • 3
  • 4
  • 5

2.3) xl2tpd服务端ppp通讯参数
/etc/ppp # cat option.l2tpd.lns

#ktune
#ipcp-accept-local
#ipcp-accept-remote
#ms-dns 8.8.8.8

lock
noauth
dump
logfd 2

require-mschap-v2
ms-dns 192.168.123.111        # 给拔号用户分配 dns 服务器地址
lcp-echo-interval 10
lcp-echo-failure 3

#noccp
#auth
#nocrtscts
#idle 1800
#mtu 1500
#mru 1500
#nodefaultroute
#debug
#nolock
#logfile /var/log/ppp.log          # 日志文件路径
#proxyarp
#connect-delay 5000
#kdebug 2
#record /var/log/pppd.log
#receive-all
#refuse-chap
#refuse-pap
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

2.4)ppp chap 鉴权文件内容配置
文件路径:/etc/ppp/chap-secrets 内容如下

robot@ubuntu:/etc/ppp$ sudo cat chap-secrets 
# Secrets for authentication using CHAP
# client	server	secret			IP addresses
  robot         *       admin123.               *    #客户端ppp登录的用户名和密码
  • 1
  • 2
  • 3
  • 4

3.客户端的参数配置
3.1) xl2tp 客户端配置参数

robot@ubuntu: /etc/xl2tpd$ cat xl2tpd.conf

[global]
port =1701
auth file=/etc/xl2tpd/l2tp-secrets
debug network = yes
debug tunnel = yes
debug state = yes
debug packet = yes

[lac lac]

name = robot                                  ;L2TP的账号
lns = 192.168.123.111                         ;L2TP的服务器IP
pppoptfile = /etc/ppp/peers/test.l2tpd     ;PPPD拨号配置文件

ppp debug = yes
redial = yes
redial timeout = 15

require chap = yes
refuse pap = yes
require authentication = yes

length bit =yes
rx bps = 100000000
tx bps = 100000000

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

3.2)xl2tp 鉴权文件,客户端未启用
robot@ubuntu:/etc/xl2tpd$ sudo cat l2tp-secrets

# Secrets for authenticating l2tp tunnels
# us	them	secret
# *		marko blah2
# zeus		marko	blah
# *	*	interop
  • 1
  • 2
  • 3
  • 4
  • 5

3.3)ppp拨号文件配置内容
robot@ubuntu:/etc/ppp/peers$ sudo cat test.l2tpd

remotename default
user "robot"
password "123"
unit 0
nodeflate
nobsdcomp
noauth
persist
nopcomp
noaccomp
maxfail 5
debug
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  1. 实验参数记录
    4.1)启动服务器端命令
    /etc/xl2tpd # xl2tpd -C xl2tpd.conf -D
    显示内容如下
xl2tpd[1364]: IPsec SAref does not work with L2TP kernel mode yet, enabling force userspace=yes
xl2tpd[1364]: setsockopt recvref[30]: Protocol not available
xl2tpd[1364]: Not looking for kernel support.
xl2tpd[1364]: xl2tpd version xl2tpd-1.3.6 started on (none) PID:1364
xl2tpd[1364]: Written by Mark Spencer, Copyright (C) 1998, Adtran, Inc.
xl2tpd[1364]: Forked by Scott Balmos and David Stipp, (C) 2001
xl2tpd[1364]: Inherited by Jeff McAdams, (C) 2002
xl2tpd[1364]: Forked again by Xelerance (www.xelerance.com) (C) 2006
xl2tpd[1364]: Listening on IP address 0.0.0.0, port 1701
xl2tpd[1364]: network_thread: recv packet from 192.168.123.88, size = 103, tunnel = 0, call = 0 ref=0 refhim=0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

4.2)启动客户端命令
root@ubuntu:/etc/xl2tpd# service xl2tpd restart #重启xl2tpd服务
root@ubuntu:/etc/xl2tpd# echo “c lac” > /var/run/xl2tpd/l2tp-control #启动l2tp登录、触发ppp连接

root@ubuntu:/etc/xl2tpd# ifconfig

ens33     Link encap:Ethernet  HWaddr 00:0c:29:54:7b:a5  
          inet addr:192.168.123.88  Bcast:192.168.123.255  Mask:255.255.255.0
          inet6 addr: fe80::42db:54c2:99b8:c1d8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8223 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3778 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3051947 (3.0 MB)  TX bytes:346937 (346.9 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:834 errors:0 dropped:0 overruns:0 frame:0
          TX packets:834 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:64959 (64.9 KB)  TX bytes:64959 (64.9 KB)

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:100.0.0.100  P-t-P:100.0.0.10  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:7 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:69 (69.0 B)  TX bytes:63 (63.0 B)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

查询客户端 xl2tp 运行日志如下
root@ubuntu:/etc/xl2tpd# systemctl status xl2tpd.service

● xl2tpd.service - LSB: layer 2 tunelling protocol daemon
   Loaded: loaded (/etc/init.d/xl2tpd; bad; vendor preset: enabled)
   Active: active (running) since Sat 2021-01-02 09:40:06 CST; 20min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 3844 ExecStop=/etc/init.d/xl2tpd stop (code=exited, status=0/SUCCESS)
  Process: 3879 ExecStart=/etc/init.d/xl2tpd start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/xl2tpd.service
           ├─3884 /usr/sbin/xl2tpd
           └─5101 /usr/sbin/pppd passive nodetach : refuse-pap auth require-chap name robot debug file /etc/ppp/peers/testNNN.l2tpd plugin pppol2tp.so pppol2tp 8    # !!!采用 pppol2tp 的拨号方式

Jan 02 09:59:47 ubuntu pppd[5101]: rcvd [LCP EchoRep id=0x7 magic=0x5d9a7049]
Jan 02 09:59:47 ubuntu pppd[5101]: rcvd [LCP EchoReq id=0x15 magic=0x5d9a7049]
Jan 02 09:59:47 ubuntu pppd[5101]: sent [LCP EchoRep id=0x15 magic=0xcda959de]
Jan 02 09:59:57 ubuntu pppd[5101]: rcvd [LCP EchoReq id=0x16 magic=0x5d9a7049]
Jan 02 09:59:57 ubuntu pppd[5101]: sent [LCP EchoRep id=0x16 magic=0xcda959de]
Jan 02 10:00:07 ubuntu pppd[5101]: rcvd [LCP EchoReq id=0x17 magic=0x5d9a7049]
Jan 02 10:00:07 ubuntu pppd[5101]: sent [LCP EchoRep id=0x17 magic=0xcda959de]
Jan 02 10:00:14 ubuntu xl2tpd[3884]: network_thread: recv packet from 192.168.91.45, size = 20, tunnel = 50916, call = 0 ref=0 refhim=0
Jan 02 10:00:14 ubuntu xl2tpd[3884]: control_finish: message type is Hello(6).  Tunnel is 34227, call is 0.
Jan 02 10:00:14 ubuntu xl2tpd[3884]: network_thread: recv packet from 192.168.91.45, size = 12, tunnel = 50916, call = 0 ref=0 refhim=0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

4.3) 服务器端调试信息
xl2tp 服务器端调试打印信息如下

packet dump: 
HEX: { 02 C8 67 00 00 00 00 00 00 00 00 00 80 08 00 00 00 00 00 01 80 08 00 00 00 02 01 00 80 0A 00 00 00 03 00 00 00 03 80 0A 00 00 00 04 00 00 00 00 00 08 00 00 00 06 06 90 80 0C 00 00 00 07 75 62 75 6E 74 75 00 13 00 00 00 08 78 65 6C 65 72 61 6E 63 65 2E 63 6F 6D 80 08 00 00 00 09 10 14 80 08 00 00 00 0A 00 04 }
ASCII: {   g                                                           ubuntu      xelerance.com                }
xl2tpd[1364]: get_call: allocating new tunnel for host 192.168.123.88, port 1701.
xl2tpd[1364]: control_finish: message type is Start-Control-Connection-Request(1).  Tunnel is 4116, call is 0.
packet dump: 
HEX: { C8 02 00 67 10 14 00 00 00 00 00 01 80 08 00 00 00 00 00 02 80 08 00 00 00 02 01 00 80 0A 00 00 00 03 00 00 00 03 80 0A 00 00 00 04 00 00 00 00 00 08 00 00 00 06 06 90 80 0C 00 00 00 07 28 6E 6F 6E 65 29 00 13 00 00 00 08 78 65 6C 65 72 61 6E 63 65 2E 63 6F 6D 80 08 00 00 00 09 D7 3E 80 08 00 00 00 0A 00 04 }
ASCII: {    g                                                          (none)      xelerance.com       >        }
xl2tpd[1364]: control_finish: sending SCCRP
xl2tpd[1364]: network_thread: recv packet from 192.168.123.88, size = 20, tunnel = 55102, call = 0 ref=0 refhim=0
packet dump: 
HEX: { 02 C8 14 00 3E D7 00 00 01 00 01 00 80 08 00 00 00 00 00 03 }
ASCII: {     >               }
xl2tpd[1364]: control_finish: message type is Start-Control-Connection-Connected(3).  Tunnel is 4116, call is 0.
xl2tpd[1364]: Connection established to 192.168.123.88, 1701.  Local: 55102, Remote: 4116 (ref=0/0).  LNS session is 'default'
xl2tpd[1364]: network_thread: recv packet from 192.168.123.88, size = 48, tunnel = 55102, call = 0 ref=0 refhim=0
packet dump: 
HEX: { 02 C8 30 00 3E D7 00 00 02 00 01 00 80 08 00 00 00 00 00 0A 80 08 00 00 00 0E 55 79 80 0A 00 00 00 0F 00 00 00 02 80 0A 00 00 00 12 00 00 00 00 }
ASCII: {   0 >                     Uy                    }
xl2tpd[1364]: control_finish: message type is Incoming-Call-Request(10).  Tunnel is 4116, call is 0.
packet dump: 
HEX: { C8 02 00 1C 10 14 55 79 00 01 00 03 80 08 00 00 00 00 00 0B 80 08 00 00 00 0E FC F8 }
ASCII: {       Uy                    }
xl2tpd[1364]: control_finish: Sending ICRP
xl2tpd[1364]: network_thread: recv packet from 192.168.123.88, size = 50, tunnel = 55102, call = 64760 ref=0 refhim=0
packet dump: 
HEX: { 02 C8 32 00 3E D7 F8 FC 03 00 02 00 80 08 00 00 00 00 00 0C 80 0A 00 00 00 18 05 F5 E1 00 80 0A 00 00 00 13 00 00 00 01 00 0A 00 00 00 26 05 F5 E1 00 }
ASCII: {   2 >                                        &    }
xl2tpd[1364]: control_finish: message type is Incoming-Call-Connected(12).  Tunnel is 4116, call is 21881.
xl2tpd[1364]: start_pppd: I'm running: 
xl2tpd[1364]: "/usr/sbin/pppd" 
xl2tpd[1364]: "passive" 
xl2tpd[1364]: "nodetach" 
xl2tpd[1364]: "100.0.0.10:100.0.0.100" 
xl2tpd[1364]: "refuse-pap" 
xl2tpd[1364]: "name" 
xl2tpd[1364]: "Xl2tpServer" 
xl2tpd[1364]: "debug" 
xl2tpd[1364]: "file" 
xl2tpd[1364]: "/etc/ppp/option.l2tpd.lns" 
xl2tpd[1364]: "/dev/pts/1" 
xl2tpd[1364]: Call established with 192.168.123.88, Local: 64760, Remote: 21881, Serial: 2
xl2tpd[1364]: network_thread: recv packet from 192.168.123.88, size = 26, tunnel = 55102, call = 64760 ref=0 refhim=0
packet dump: 
HEX: { 02 00 3E D7 F8 FC FF 03 C0 21 01 01 00 10 02 06 00 00 00 00 05 06 B4 EE 9B D9 }
ASCII: {   >      !                }
pppd options in effect:
debug		# (from command line)
nodetach		# (from command line)
logfd 2		# (from /etc/ppp/option.l2tpd.lns)
dump		# (from /etc/ppp/option.l2tpd.lns)
require-mschap-v2		# (from /etc/ppp/option.l2tpd.lns)
refuse-pap		# (from command line)
name Xl2tpServer		# (from command line)
/dev/pts/1		# (from command line)
lock		# (from /etc/ppp/option.l2tpd.lns)
passive		# (from command line)
lcp-echo-failure 3		# (from /etc/ppp/option.l2tpd.lns)
lcp-echo-interval 10		# (from /etc/ppp/option.l2tpd.lns)
ms-dns xxx # [don't know how to print value]		# (from /etc/ppp/option.l2tpd.lns)
100.0.0.10:100.0.0.100		# (from command line)
using channel 3
Using interface ppp0
Connect: ppp0 <--> /dev/pts/1
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0xba036f5d> <pcomp> <accomp>]
packet dump: 
HEX: { 40 02 00 25 10 14 55 79 FF 03 C0 21 01 01 00 19 02 06 00 00 00 00 03 05 C2 23 81 05 06 BA 03 6F 5D 07 02 08 02 }
ASCII: { @  %  Uy   !             #     o]    }
xl2tpd[1364]: network_thread: recv packet from 192.168.123.88, size = 35, tunnel = 55102, call = 64760 ref=0 refhim=0
packet dump: 
HEX: { 02 00 3E D7 F8 FC FF 03 C0 21 02 01 00 19 02 06 00 00 00 00 03 05 C2 23 81 05 06 BA 03 6F 5D 07 02 08 02 }
ASCII: {   >      !             #     o]    }
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0xba036f5d> <pcomp> <accomp>]
xl2tpd[1364]: network_thread: select timeout
xl2tpd[1364]: network_thread: select timeout
xl2tpd[1364]: network_thread: recv packet from 192.168.123.88, size = 26, tunnel = 55102, call = 64760 ref=0 refhim=0
packet dump: 
HEX: { 02 00 3E D7 F8 FC FF 03 C0 21 01 01 00 10 02 06 00 00 00 00 05 06 B4 EE 9B D9 }
ASCII: {   >      !                }
rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb4ee9bd9>]
sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb4ee9bd9>]
packet dump: 
HEX: { sent [LCP EchoReq id=0x0 magic=0xba036f5d]
40 02 00 1C 10 14 55 79 FF 03 C0 21 02 01 00 10 02 06 00 00 00 00 05 06 B4 EE 9B D9 }
ASCII: { @     Uy   !                }
packet dump: 
HEX: { 40 02 00 14 10 14 55 79 FF 03 C0 21 09 00 00 08 BA 03 6F 5D }
ASCII: { @     Uy   !      o]}
xl2tpd[1364]: network_thread: recv packet from 192.168.123.88, size = 18, tunnel = 55102, call = 64760 ref=0 refhim=0
packet dump: 
HEX: { 02 00 3E D7 F8 FC FF 03 C0 21 09 00 00 08 B4 EE 9B D9 }
ASCII: {   >      !        }
sent [CHAP Challenge id=0xe2 <f1eb1a13f6aa84ed91ea59c425d14354>, name = "Xl2tpServer"]
rcvd [LCP EchoReq id=0x0 magic=0xb4ee9bd9]
sent [LCP EchoRep id=0x0 magic=0xba036f5d]xl2tpd[1364]: network_thread: recv packet from 192.168.123.88, size = 18, tunnel = 55102, call = 64760 ref=0 refhim=0
packet dump: 
HEX: { 02 00 3E D7 F8 FC FF 03 C0 21 0A 00 00 08 B4 EE 9B D9 }
ASCII: {   >      !        }
packet dump: 
HEX: { 40 02 00 2A 10 14 55 79 FF 03 C2 23 01 E2 00 1E 10 F1 EB 1A 13 F6 AA 84 ED 91 EA 59 C4 25 D1 43 54 76 70 6E 53 65 72 76 65 72 }
ASCII: { @  *  Uy   #               Y % CTXl2tpServer}

rcvd [LCP EchoRep id=0x0 magic=0xb4ee9bd9]
xl2tpd[1364]: network_thread: recv packet from 192.168.123.88, size = 69, tunnel = 55102, call = 64760 ref=0 refhim=0
packet dump: 
HEX: { 02 00 3E D7 F8 FC FF 03 C2 23 02 E2 00 3B 31 8B E9 AA 52 92 C1 49 5E DB 2D FB 4F 07 91 B7 77 00 00 00 00 00 00 00 00 B4 58 4F 60 A1 16 34 D1 30 3A DD DD 2B 2D AE 8C 59 1C BB 71 10 E8 18 CE 00 72 6F 62 6F 74 }
ASCII: {   >      #   ;1   R  I^ - O   w         XO`  4 0:  +-  Y  q     robot}
rcvd [CHAP Response id=0xe2 <8be9aa5292c1495edb2dfb4f0791b7770000000000000000b4584f60a11634d1303adddd2b2dae8c591cbb7110e818ce00>, name = "robot"]
packet dump: 
HEX: { 40 02 00 14 10 14 55 79 FF 03 C0 21 0A 00 00 08 BA 03 6F 5D }
ASCII: { @     Uy   !      o]}
sent [CHAP Success id=0xe2 "S=E58CEE285B030CCAA8A16E0F31DACF1DA26A221F M=Access granted"]
packet dump: 
HEX: { 40 02 00 4B 10 14 55 79 FF 03 C2 23 03 E2 00 3F 53 3D 45 35 38 43 45 45 32 38 35 42 30 33 30 43 43 41 41 38 41 31 36 45 30 46 33 31 44 41 43 46 31 44 41 32 36 41 32 32 31 46 20 4D 3D 41 63 63 65 73 73 20 67 72 61 6E 74 65 64 }
ASCII: { @  K  Uy   #   ?S=E58CEE285B030CCAA8A16E0F31DACF1DA26A221F M=Access granted}
xl2tpd[1364]: network_thread: recv packet from 192.168.123.88, size = 20, tunnel = 55102, call = 64760 ref=0 refhim=0
packet dump: 
HEX: { 02 00 3E D7 F8 FC FF 03 80 21 01 01 00 0A 03 06 00 00 00 00 }
ASCII: {   >      !          }
sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
packet dump: 
HEX: { 40 02 00 1B 10 14 55 79 FF 03 80 FD 01 01 00 0F 1A 04 78 00 18 04 78 00 15 03 2F }
ASCII: { @     Uy          x   x   /}
xl2tpd[1364]: network_thread: recv packet from 192.168.123.88, size = 14, tunnel = 55102, call = 64760 ref=0 refhim=0
packet dump: 
HEX: { 02 00 3E D7 F8 FC FF 03 80 FD 01 01 00 04 }
ASCII: {   >           }
xl2tpd[1364]: network_thread: recv packet from 192.168.123.88, size = 25, tunnel = 55102, call = 64760 ref=0 refhim=0
packet dump: 
HEX: { 02 00 3E D7 F8 FC FF 03 80 FD 04 01 00 0F 1A 04 78 00 18 04 78 00 15 03 2F }
ASCII: {   >             x   x   /}
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 100.0.0.10>]
rcvd [IPCP ConfReq id=0x1 <addr 0.0.0.0>]
sent [IPCP ConfNak id=0x1 <addr 100.0.0.100>]packet dump: 
HEX: { 40 02 00 1C 10 14 55 79 FF 03 80 21 01 01 00 10 02 06 00 2D 0F 01 03 06 64 00 00 0A }
ASCII: { @     Uy   !       -    d   }

packet dump: 
HEX: { 40 02 00 16 10 14 55 79 FF 03 80 21 03 01 00 0A 03 06 64 00 00 64 }
ASCII: { @     Uy   !      d  d}
xl2tpd[1364]: network_thread: recv packet from 192.168.123.88, size = 20, tunnel = 55102, call = 64760 ref=0 refhim=0
packet dump: 
HEX: { 02 00 3E D7 F8 FC FF 03 80 21 04 01 00 0A 02 06 00 2D 0F 01 }
ASCII: {   >      !       -  }
rcvd [CCP ConfReq id=0x1]
sent [CCP ConfAck id=0x1]
xl2tpd[1364]: network_thread: recv packet from 192.168.123.88, size = 20, tunnel = 55102, call = 64760 ref=0 refhim=0
packet dump: 
HEX: { 02 00 3E D7 F8 FC FF 03 80 21 01 02 00 0A 03 06 64 00 00 64 }
ASCII: {   >      !      d  d}
packet dump: 
HEX: { 40 02 00 10 10 14 55 79 FF 03 80 FD 02 01 00 04 }
ASCII: { @     Uy        }
rcvd [CCP ConfRej id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
sent [CCP ConfReq id=0x2]
packet dump: 
HEX: { 40 02 00 10 10 14 55 79 FF 03 80 FD 01 02 00 04 }
ASCII: { @     Uy        }
xl2tpd[1364]: network_thread: recv packet from 192.168.123.88, size = 14, tunnel = 55102, call = 64760 ref=0 refhim=0
packet dump: 
HEX: { 02 00 3E D7 F8 FC FF 03 80 FD 02 02 00 04 }
ASCII: { rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>]
sent [IPCP ConfReq id=0x2 <addr 100.0.0.10>]
  >           }
rcvd [IPCP ConfReq id=0x2 <addr 100.0.0.100>]packet dump: 
HEX: { 40 02 00 16 10 14 55 79 FF 03 80 21 01 02 00 0A 03 06 64 00 00 0A }
ASCII: { @     Uy   !      d   }
xl2tpd[1364]: network_thread: recv packet from 192.168.123.88, size = 20, tunnel = 55102, call = 64760 ref=0 refhim=0
packet dump: 
HEX: { 02 00 3E D7 F8 FC FF 03 80 21 02 02 00 0A 03 06 64 00 00 0A }
ASCII: { 
sent [IPCP ConfAck id=0x2 <addr 100.0.0.100>]
rcvd [CCP ConfAck id=0x2]  >      !      d   }
packet dump: 
HEX: { 40 02 00 16 10 14 55 79 FF 03 80 21 02 02 00 0A 03 06 64 00 00 64 }
ASCII: { @     Uy   !      d  d}

rcvd [IPCP ConfAck id=0x2 <addr 100.0.0.10>]
local  IP address 100.0.0.10
remote IP address 100.0.0.100
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180

4.3) 实验测试图片
nuc980 arm上的tunnel接入点
在这里插入图片描述
客户端ping 服务端 nuc980 的时延
在这里插入图片描述
调整xl2tp的conf文件通讯速率后的时延
在这里插入图片描述

名称解释说明:
L2TP(Layer 2 Tunneling Protocol)是一种用于承载PPP报文的channel技术;使用L2TP “承载”PPP报文在Internet上传输有多种方式,1、通过传统拨号方式接入Internet,2、以太网方式接入Internet 。

PPP(Point-to-Point Protocol),链路层协议。PPP是为了在点对点物理链路(例如RS232串口链路、电话ISDN线路等)上传输OSI模型中的网络层报文而设计的,它改进了之前的一个点对点协议-SLIP协议–只能同时运行一个网络协议、无容错控制、无授权等许多缺陷,PPP是现在最流行的点对点链路控制协议。
ppp与l2tp 协议间的关系,可参考下图:
在这里插入图片描述
用户通过PPPoE方式发起建立连接指令,其本质就是:
echo “c lac” > /var/run/xl2tpd/l2tp-control 启动 l2tp 的控制程序,程序中采用 PPPoL2TP 的方式,与 L2TP 的服务器进行鉴权、协商并建立 l2tp 链路,建成后的链路在操作系统中体现方式:virtual PPP 网卡设备。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/188897
推荐阅读
相关标签
  

闽ICP备14008679号