关于VPN的个人理解与问题解决

(1) VNP的作用:
              使用户可以不在公司内网中安全访问内网资源,或者通过vpn连接国外网络(vpn翻墙,玩一些服务器在国外,国内没有代理的游戏,比如大火的 “吃鸡”虽然我不吃

(2)原理:

1.说到vpn就必须谈到隧道技术(pptp、l2tp、ipip、pppoe(adsl拨号上网经常使用)),隧道技术就是将其他数据包或者帧封装到一个数据包或者帧中,在这些数据帧中添加路由头部信息(如以太帧头部、ppp帧头部等)以便被封装的数据在互联网中传递,当然对客户来说这些都是透明的。

2.vpn也使用了隧道技术(本文主要说pptp协议 ),数据包封装过程:将用户数据(ip数据包、ipx上数据报或者NetBEUI)封装 在ppp帧中,ppp帧在进一步添加GRE报头形成GRE报文(此为 pptp协议),然后tcp/ip协议将GRE报文进行封装既添加ip报头,然后进行数据链路层的封装,数据链路层封装根据物理网络而添添加链路层的报头与报尾。如:以太网  则添加以太帧的报头和报尾(目的/源mac  类型  数据   帧校验序列)进行链路层封装,如果ip数据包在点到点 wan上传输 则添加 ppp帧的报头和报尾(0x7e 0xff  0x03  协议  信息部分  帧校验码  0x7e)。如果将上面ppp帧理解为一个tcp/ip协议上层协议封装数据,则上面pptp协议的封装过程和一般的应用层数据封装过程相似。

3.pptp的一些连接建立与ppp协议的一些身份验证与协商等就不在这多说了 ,详细过程资料一大堆。

4.数据包通过网路经过各个路由最后到达vpn服务器,物理网卡接受以太帧后解帧后交给tcp/ip协议后解ip数据包与GRE报文然后将剩下的ppp帧发送给ppp0(vpn虚拟网卡)进行解密然后根据数据内容提交给上层协议进行处理。

5.通过上面对数据封装与解包过程中我们可以感知到ppp帧中携带数据通过pptp搭建的隧道点对点的从vpn客户端传输到了vpn服务器。就好比在互联网中独自建立了一个高铁铁路,数据包在这条铁路中从起点(vpn客户端)坐到了终点(vpn服务器),然后下车根据站内的指示牌(路由)寻找出口。(脑补画面)。



(3) vpn的搭建:

redhat linux系统

client:192.168.1.73

server:  外:  192.168.1.92   内:172.25.45.1

vpn客户端地址:172.25.254.100 ~ 172.25.254.200

vpn服务器开启路由转发: echo “1” > /proc/sys/net/ipv4/ip_forward

需要安装ppp、pptp : 一个是对将要传输的数据封装为ppp帧,一个是将ppp帧添加GRE报头封装为GRE报文,然后将该报文提交给tcp/ip协议进行下一步的封装。

配置ppp和pptp的文件:

vim  /etc/ppp/chap-secrets  #这个就是ppp协议进行身份验证的依据文件

vpnclient   pptpd  ‘westos’*    #第一行为用户名  第二行为options.pptpd文件中name指定名字相同  第三行为密码  地四行指定客户端ip地址   ‘*’表示 全部可以接入

vim  /etc/pptpd.conf  #pptp服务的主配置文件

localip  192.168.1.92  #填写vpn的外网地址

remoteip 172.25.254.100-200  #添加vpn客户端地址池

这样vpn的简单配置就完成了 。

但是这样配置的vpn还是有一些不尽人意的地方,如:连接上vpn后客户端无法访问外网,无法访问公司内网之类的问题。



(4)解决方法:

无法访问外网:

vpn客户端 :

route add -net 172.25.45.0 netmask 255.255.255.0 pppo  #添加目的网络(vpn服务器内网网段)为 172.25.45.0 ip数据包经过 pppo(虚拟网卡)出去

vpn服务器:

此时vpn服务器需要在nat表POSTROUTING链做一个snat,当然你需要安装iptables(yum  install  iptables -y)。

iptables  -t nat -A  POSTROUTING -s 172.25.254.0/24  -j SDNT -to  192.168.1.92    #在iptables上将出包时候源地址为vpn客户端地址改变为vpn外网ip

*********注: 以上两步根据实际情况添加

无法访问内网:

vpn服务器:

route add -net  172.25.254.0 netmask 255.255.255.0   gw 172.25.45.1  #在vpn内网主机中设置 目标网络172.25.254.0 的网关为172.25.45.1

时间: 2024-10-19 03:36:21

关于VPN的个人理解与问题解决的相关文章

对浏览器css兼容性的学习理解及问题解决汇总

一.从浏览器内核的角度 来看,浏览器兼容性问题可分为以下三类: 1. 渲染相关:和样式相关的问题,即体现在布局效果上的问题. 2. 脚本相关:和脚本相关的问题,包括JavaScript和DOM.BOM方面的问题.对于某些浏览器的功能方面的特性,也属于这一类. 3. 其他类别:除以上两类问题外的功能性问题,一般是浏览器自身提供的功能,在内核层之上的. 二.浏览器兼容性相关问题及其解决思路 1.目前,各主流浏览器的新版本,对于  W3C  的标准支持很好,因此,首先保证代码符合 W3C 的标准,这是

linux vpn

Linux下搭建VPN服务器(CentOS.pptp) 搭建过程参考这篇文章 先说我搭建过程中出现的问题吧: 按照 教程搭建好之后出现了619错误,查看日志:/var/log/messages: Nov 20 09:46:20 localhost pptpd[7498]: GRE: read(fd=6,buffer=8059680,len=8196) from PTY failed: status = -1 error = Input/output error, usually caused b

VPN虚拟专用网络搭建

检测是否符合pptp的搭建环境的要求 modprobe ppp-compress-18 && echo ok 这条执行执行后,显示"ok"则表明通过.不过接下来还需要做另一个检查,输入指令: #cat /dev/net/tun 一.下载并安装VPN服务 下载所需安装包 wget http://poptop.sourceforge.net/yum/stable/packages/dkms-2.0.17.5-1.noarch.rpm wget http://poptop.s

Linux下搭建VPN服务器(CentOS、pptp)

本文介绍在安装CentOS操作系统的Xen VPS上,如何搭建PPTP VPN服务.包括PPTP的安装.配置,以及相应的iptables规则.本文暂时不涉及PPTP流量控制的部分,等抽空学明白了FreeRADIUS,再来写续篇.2011年7月20日更新:在安全建议这一部分,增加了使用不同的IP地址,分别提供VPN服务和Web等其他常规服务,以及使用不同IP地址时如何书写iptables规则的内容. 写在前面 在Godaddy一美元COM域名的怂恿下,这几天先是拿到了这个gnailuy.com,然

Linux下搭建VPN服务器(CentOS、pptp)转

先说我搭建过程中出现的问题吧: 按照 教程搭建好之后出现了619错误,查看日志:/var/log/messages: Nov 20 09:46:20 localhost pptpd[7498]: GRE: read(fd=6,buffer=8059680,len=8196) from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check

转载-Linux下搭建VPN服务器(CentOS、pptp)

转自:http://www.cnblogs.com/sixiweb/archive/2012/11/20/2778732.html 搭建过程参考这篇文章 先说我搭建过程中出现的问题吧: 按照 教程搭建好之后出现了619错误,查看日志:/var/log/messages: Nov 20 09:46:20 localhost pptpd[7498]: GRE: read(fd=6,buffer=8059680,len=8196) from PTY failed: status = -1 error

在CentOS 5.8上搭建PPTP VPN服务

在天朝上网,vpn已经是必备之物了,我也记录一下搭建vpn服务的方法. 1. 确认内核是否支持MPPE模块MPPE用来支持Microsoft Point to Point Encryption, 包括微软和Linux桌面都支持MPPE modprobe ppp-compress-18 && echo ok 2. 安装ppp软件包pptp是使用ppp协议对数据进行封装的,然后将ppp数据帧封装在ip数据报文中. yum install ppp 3. 安装pptp软件包下载32位rpm包: w

dtree详细资料

登录|注册     xufaxi的专栏 目录视图 摘要视图 订阅 [活动]2017 CSDN博客专栏评选      [评论送书]SQL优化.深度学习.数据科学家      CSDN日报20170527 --<人机大战,历史的见证>      CSDN 日报 | 4.19-5.19 上榜作者排行出炉 登录|注册     xufaxi的专栏 目录视图 摘要视图 订阅 [活动]2017 CSDN博客专栏评选      [评论送书]SQL优化.深度学习.数据科学家      CSDN日报2017052

VPN_pptp部署

PPTP VPN部署 PPTP(点到点隧道协议)是一种用于让远程用户拨号连接到本地的ISP,通过因特网安全远程访问公司资源的新型技术.它能将PPP(点到点协议)帧封装成IP数据包,以便能够在基于IP的互联网上进行传输.PPTP使用TCP(传输控制协议)连接的创建,维护,与终止隧道,并使用GRE(通用路由封装)将PPP帧封装成隧道数据.被封装后的PPP帧的有效载荷可以被加密或者压缩或者同时被加密与压缩.我们常见的PPTP都是在路由器上配置的,不过linux下也可以实现PPTP服务器的功能,下面就来