在linux下搭建l2tp隧道
搭一个l2tp隧道,拓扑如下

两台机器是CentOS5,内核选上CONFIG_LEGACY_PTYS选项后自己编译的,l2tp是已经停更的l2tpd-0.69。先在LS上配置IP地址,iptables规则,这些不在多说,直接看l2tpd的配置文件
;/etc/l2tpd/l2tpd.conf
[global]
; if you run l2tpd on the internal interface only, enable the line below
; listen-addr = 192.168.1.98
[lns default]
ip range = 192.168.1.128- 192.168.1.254
local ip = 192.168.1.98
require chap = yes
refuse pap = yes
;下面这行说的是要PPP认证,我实际测试中感觉有没有这一行都没影响
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd
length bit = yes
然后是LS的pppd配置文件如下
#/etc/ppp/options.l2tpd
ipcp-accept-local
ipcp-accept-remote
ms-dns 192.168.1.1
ms-dns 192.168.1.3
ms-wins 192.168.1.1
ms-wins 192.168.1.3
noccp
#noauth
auth
crtscts
idle 1800
mtu 1200
mru 1200
# change line below to defaultroute to make all traffic go through the VPN
nodefaultroute
debug
lock
proxyarp
connect-delay 5000
再然后配置pppd的认证文件
#/etc/ppp/chap-secrets
"johnsnow" * "youknownothing" 192.168.1.0/24
RS的l2tpd的配置文件如下
; Connect as a client to a server at 194.168.10.4
[lac myl2tp]
lns = 194.168.10.4
require chap = yes
refuse pap = yes
;require authentication = yes
; Name should be the same as the username in the PPP authentication!
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd.client
length bit = yes
RS的pppd配置文件如下
#/etc/ppp/options.l2tpd.client
ipcp-accept-local
ipcp-accept-remote
refuse-eap
noccp
#noauth
noauth
crtscts
idle 1800
mtu 1200
mru 1200
#nodefaultroute
defaultroute
debug
lock
#proxyarp
connect-delay 5000
RS的pppd认证文件
#/etc/ppp/chap-secrets
"johnsnow" * "youknownothing"
分别在LS和RS上执行
l2tpd -c /etc/l2tpd/l2tpd.conf -D
最后在RS上拨号
echo "c myl2tp" >/var/run/l2tp-control
最后用ifconfig看一下,多了一个ppp接口说明拨号成功了。整个配置过程不难,但是我在配置LS的pppd配置文件时候走了一些弯路,在我配置了auth之后总是拨号不成功,最后在认证文件里最后一列加上了地址(192.168.1.0/24)才能认证成功。我猜想在LS的pppd启动的时候RS的ppp0已经分到了一个192.168.1.0/24网段的地址,导致LS的pppd认证不通过,但是我不确定,非常不确定,有时间把代码看一下。
这个配置仅仅使用了l2tp协议,并没有使用ipsec相关协议,在网络上还是明文传输的,如果要加密还需要配置ipsec。
在linux下搭建l2tp隧道的更多相关文章
- MongoDB学习笔记—Linux下搭建MongoDB环境
1.MongoDB简单说明 a MongoDB是由C++语言编写的一个基于分布式文件存储的开源数据库系统,它的目的在于为WEB应用提供可扩展的高性能数据存储解决方案. b MongoDB是一个介于关系 ...
- Linux下搭建个人网站
前不久在阿里买了一个服务器,然后开始第一次尝试搭建自己的个人网站.前端采用了bootstrap框架,后端采用的是PHP,数据库使用的是Mysql.新手第一次在linux下搭建遇见很多问题,在这里分享一 ...
- Linux下搭建PHP环境
转载于: http://www.uxtribe.com/php/405.html 该站下有系列PHP文章. 在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件 ...
- Java学习心得之 Linux下搭建Java环境
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 Linux下搭建Java环境 1.前言2.JDK安装3.配置环境变量4. ...
- Java学习心得之 Linux下搭建JavaWeb环境
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 Linux下搭建JavaWeb环境 1. 前言2. Java安装3. t ...
- Ruby学习心得之 Linux下搭建Ruby环境
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Ruby学习心得之 Linux下搭建Ruby环境1.前言2.Linux下安装Ruby环境 一 ...
- Linux下搭建Lotus Domino集群
Linux下搭建Lotus Domino 集群 本文内容是Linux平台下Lotus Domino服务器部署案例(http://chenguang.blog.51cto.com/350944/1334 ...
- Linux下搭建 Cocos2d-x-2.1.4 编译环境
[tonyfield 2013.09.04 ] 参考 Linux下搭建 Cocos2d-x-2.1.4 编译环境 导入 HelloCpp 例程 1. Java 入口 HelloCpp.java Hel ...
- Linux下搭建tomcat集群全记录(转)
本文将讲述如何在Linux下搭建tomcat集群,以及搭建过程中可能的遇到的问题和解决方法.为简单起见,本文演示搭建的集群只有两个tomact节点外加一个apache组成,三者将安装在同一机器上:ap ...
随机推荐
- python爬取拉勾网职位信息-python相关职位
import requestsimport mathimport pandas as pdimport timefrom lxml import etree url = 'https://www.la ...
- 4.CountDownLatch-闭锁
- Do not use built-in or reserved HTML elements as component id:mask vue报错
今天学习了一下vue的组件,但是报了一个错误 Do not use built-in or reserved HTML elements as component id:mask , 经过查询得知是因 ...
- ansible-doc到底有多好用,助你玩转各种模块
#使用ansible-doc:查看各种模块的帮助 #命令格式: ansible-doc -l #列出所有的模块列表 ansible-doc -s 模块名 #查看指定模块的参数 ansible-doc ...
- 关于取整函数ceil(),floor(),round()函数得应用
ceil()返回向上取整最接近的整数. double ceil(double); floor()返回向下取整最接近的整数. double floor(double); round()用于对浮点数的四舍 ...
- 普转提Day1
T1 给定一个长度为N的序列,去掉其中连续的一部分使得剩下的部分没有重复元素. 很显然可以发现去掉的一部分只有三种情况:开头.中间.最后. 那么我们只需要枚举Hash就可以了.复杂度O(N^2). 不 ...
- C 类型限定符
C 类型限定符 1. Introduction C 语言中的大部分类型都可以用称为限定符(qualifier)的关键字 const. volatile. restrict. _Atomic 加以限定. ...
- PHP图片压缩类,高清无损直接用就ok啦
这个不完全是我自己写的-_-!,但是好用呀 <?php /** * Created by PhpStorm. * Note:文件介绍 * User: Lynly * Date: 2018/11/ ...
- 简述application.properties和application.yml 以及 @ConfigurationProperties 和@PropertySource @Value 和@ImportResource的用法,区别
问题: 如何在application.properties和application.yml中配置String,Date,Object,Map,List类型的属性,并且idea能提示 先写一个Perso ...
- mysql笔记--基础知识
SQL基础 SQL语句的分类: DQL: 数据库查询语句,基本的就是select查询命令,用于查询数据 DML: 数据操纵语句,用于插入,更新,删除数据,即INSERT, UPDATE,DELETE ...