码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • CentOS配置LNS和VSR作为LAC建立L2TP隧道


    4347222984609b4b67cb14218e548669.gif

    正文共:1859字 13图,预估阅读时间:5 分钟

    很久之前发过配置服务器上公网的文章(我用100块钱把物理服务器放到了公网,省了几万块!),当时服务端是CentOS 7的系统,L2TP拨号用的现成脚本,一键部署的;后来系统升级成CentOS 8了,脚本不能用了,就自己手配了一个(成本增加了100块,内网服务器上公网解决方案2.0重磅来袭!)。

    再后来,拨号的路由器坏了,只能换上了企业路由器MSR810,遇到一个小问题,那就是怎么跟CentOS对接?今天来简单介绍一下。

    对于L2TP VPN,前面也做过介绍(巧用VSR的L2TP VPN功能实现访问云上业务)。企业路由器的配置一般是作为LAC来建立隧道,跟之前的客户端有些不一样,所以得勾兑一下两端的配置。

    首先是服务端,为了操作方便,我们本次就先不配置over IPsec了,仅配置L2TP的LNS功能。

    安装L2TP服务xl2tpd。

    yum install -y xl2tpd

    35b2afc25995c13f044fcb5549c0108f.png

    L2TP的配置文件有/etc/xl2tpd/xl2tpd.conf、/etc/ppp/options.xl2tpd和/etc/ppp/chap-secrets。/etc/xl2tpd/xl2tpd.conf配置文件主要配置LNS的网络接入部分,默认内容如下:

    45f1af7aae22f69ed30a8295e80d4d6c.png

    [global]部分,listen-addr即监听的IP地址,不配置表示监听所有网卡;如果要配置,请修改IP地址为监听网卡的地址,如192.168.1.76。[lns default]部分,ip range用于设置客户端连接服务器后LNS分配给客户端的IP地址范围;local ip用于设置本端LNS的网关IP地址。

    一般来讲,我们只要调整IP地址部分即可,例如:

    1. [lns default]
    2. ip range = 10.172.192.128-10.172.192.254
    3. local ip = 10.172.192.99

    /etc/ppp/options.xl2tpd配置文件的主要内容是配置和LAC建立隧道的网络参数,默认内容如下:

    032de9d78b4ff2cdcebef61bab3d76cc.png

    一般来讲,修改DNS地址即可。

    /etc/ppp/chap-secrets用于配置L2TP接入的用户密码数据,配置模板如下:

    ca3cad1d7d2e370234c45822ab409142.png

    填写服务名用于多服务场景,填写IP地址用于指定该用户登录后获取的IP地址为某个固定地址。

    主要参考上半部分,主要配置用户名与密码,依次写用户名、服务名、密码、IP地址,实际上服务名与IP地址都写成星号即可,以空格或TAB隔开;当然,也可以手工指定客户端获取的IP地址,比如我们配置LAC的认证信息如下:

    c4520b377aac6c3a3c523495c157c7ba.png

    调整完之后,重启xl2tpd服务。

    629d96e02e3aad0668fca5d4e9626975.png

    接下来,配置VSR路由器作为LAC。

    首先开启L2TP功能,创建LAC模式的L2TP组1;配置LAC端本端名称为LAC,并指定LNS的地址;关闭隧道验证功能。

    1. #
    2. l2tp enable
    3. #
    4. l2tp-group 1 mode lac
    5. lns-ip 192.168.1.76
    6. undo tunnel authentication
    7. tunnel name LAC

    创建虚拟PPP接口Virtual-PPP 1,配置PPP用户的用户名和密码,并配置PPP验证方式为CHAP;配置自动触发LAC发起L2TP隧道建立请求。

    1. #
    2. interface Virtual-PPP1
    3. ppp chap password simple l2tp
    4. ppp chap user l2tp
    5. ip address ppp-negotiate
    6. l2tp-auto-client l2tp-group 1

    9a9b346192d0b4e7123c5f517cc81b6e.png

    之后,VSR就会自动发起协商,建立隧道连接。

    e16ae09d8e9b1a1e149a62bfd2a1b545.png

    可以看到,隧道接口获取到了手工指定的静态IP地址10.172.192.166/32,并且和LNS之间互访正常。

    查看LNS端,本端的ppp0接口已经UP,地址为配置的LNS地址10.172.192.99。

    71f02bc8fef3342415ad8b9247b76b05.png

    可以看到,LNS上还有一个IP地址10.153.117.1/24,我们试一下LAC访问该IP地址。

    f2a48996ef5eb2ab11f4f951936f06dc.png

    跨三层转发,只要添加路由即可。

    如果想让CentOS转发业务,还要调整防火墙和iptables。首先停止firewalld服务并禁用。

    1. systemctl stop firewalld
    2. systemctl mask firewalld

    836c621f5d76ae3de23cfa4ecd9e6d36.png

    配置CentOS开启内核转发,并配置对转发流量进行NAT地址转换。

    1. echo 1 > /proc/sys/net/ipv4/ip_forward
    2. iptables -t nat -A POSTROUTING -j MASQUERADE

    然后测试VSR通过LNS访问互联网。

    ip route-static 0.0.0.0 0 10.172.192.99

    8e1a4e9d801cc126cffeccd4944ff5f0.png

    访问正常,并且是经过LNS进行转发的。

    335503bc9b4ef96a2d5b37b057eb4d6a.png

    小测一下,3.7 Gbps的转发性能你还满意吗?

    4ee764c7796c945c38cd92862705d4d9.gif

    长按二维码
    关注我们吧

    a194730bd575877e44d0f599e25442fa.jpeg

    4897bdd8f7593006fc75b9eb220a0afa.png

    CentOS 8服务器搭建L2TP服务器(over IPsec)操作指南

    专线入云场景能否配置动态路由协议?

    仅需一个公网IP地址,就能在互联网搞一张大二层网络

    一种基于IPsec的VXLAN“专线”解决方案

    ADVPN的S-S捷径到底有没有从总部绕转?

    使用8条命令即可完成的VPN配置!CentOS快速配置WireGuard全互联组网

    配置Juniper虚墙vSRX基于路由的IPsec VPN(WEB方式)

    Netmaker服务器端快速搭建WireGuard网络

    使用vSRX测试一下IPsec VPN各加密算法的性能差异

    如何用SD-WAN路由器实现串接透明部署?

    天翼云研发告诉我:AH封装的IPsec不能穿越NAT设备

  • 相关阅读:
    R语言dplyr包summarise_at函数计算dataframe数据中多个数据列(通过向量指定)的方差
    向勒索病毒说不,是时候重塑数据保护策略
    Flutter高仿微信-第54篇-群聊-邀请好友
    知识图谱应用---智慧金融
    推荐两款Windows效率提升工具
    小程序的开发之路②
    GPLV2协议重点F&Q整理与总结
    27 行为型模式-解释器模式
    对网络流的一个小总结
    基于 FFmpeg 的跨平台视频播放器简明教程(九):Seek 策略
  • 原文地址:https://blog.csdn.net/gtj0617/article/details/137849741
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号