愿星光伴随你左右


  • 首页

  • todo

  • 思考

  • life

  • food

  • OS

  • lua

  • redis

  • Golang

  • C

  • TCP/IP

  • ebpf

  • p4

  • OpenVPN

  • IPSec

  • L2TP

  • DNS

  • distributed

  • web

  • OpenWRT

  • 运维

  • Git

  • 鸟哥的私房菜

  • IT杂谈

  • 投资

  • About Me

  • 友情链接

  • FTP

  • 搜索
close

OpenVPN的效率问题

时间: 2022-07-12   |   分类: openvpn     |   阅读: 1797 字 ~4分钟

OpenVPN由于其设计问题,速度很慢,有人认为是由于加密解密导致了速度变慢,当将cipher设置成none之后,发现效率并没有提升,并且使用最慢的cipher,使用比较好的cpu,设置比较大的txqueuelen,使用比较快的网卡–100baseT-FD,OpenVPN的效率还是不行,cpu使用率没多少,那么可以认为提升cpu性能已经于事无补了,后来才发现是OpenVPN自身的问题,通过源代码看得出OpenVPN是一个单进程单线程的程序,整个程序启动后就是一个大的循环,结构如下:

阅读全文 »

OpenVPN高级路由技术 全面的互通性配置

时间: 2022-07-12   |   分类: openvpn     |   阅读: 1858 字 ~4分钟

本文全面介绍OpenVPN的路由配置,不再阐述理论。为了简单且不引入其它问题,以下的配置不考虑NAT。 零.介绍和声明以及拓扑图

  1. 以下的配置不再给出任何配置文件或者配置选项,比如iroute配置等;以下路由配置可以不使用默认网关,使用默认网关只是为了方便。正确的做法是配置指向确切网络的路由,变长掩码非0
  2. 由于OpenVPN支持tun和tap两种模式,在Tun中,路由指的是下一跳节点或者是一个虚拟网卡,在tap中,路由指的是从OpenVPN虚拟交换机出去的虚拟端口,这二者是截然不同的,协议也没有工作在同一个层,因此OpenVPN内部路由使用multi_instance代表这两者,tun模式中,multi_instance代表三层路由目标,tap模式中,multi_instance代表二层路由目标,即端口。 拓扑图如下:

img

阅读全文 »

OpenVPN高级路由技术 虚拟交换机和内部路由缓存

时间: 2022-07-12   |   分类: openvpn     |   阅读: 5280 字 ~11分钟

前面的《OpenVPN高级路由技术》系列文章阐述了OpenVPN中潜在的内部路由技术以及具体的配置方法,另外也谈到了如何使用OpenVPN将网络进行扩展,然而具体到这些内部路由是怎么工作的,并没有谈及。为什么直到现在才说这些呢?我以为最好先不要管内部原理,先要学会用,只有当你明白这是个黑盒子的时候,你才会有目的的想进入它,希望它成为你的白盒子。

阅读全文 »

OpenVPN的包过滤机制

时间: 2022-07-12   |   分类: openvpn     |   阅读: 4720 字 ~10分钟

OpenVPN是和网络结合的非常紧密的一款VPN,事实上,每一个VPN框架都和IP网络结合的很紧密,因此在此首先劝一下那些想搞VPN的朋友们,一定要先彻底精通TCP/IP网络协议栈,特别是IP路由,防火墙原理之后再去啃OpenVPN或者其它的VPN,否则会事倍功半的,仅仅看懂源代码和灵活配置,灵活运用,灵活定制之间的差距和很远,精通VPN远远不是会写C代码会使用哈希表就能应付得了的。

阅读全文 »

OpenVPN高级路由技术 反向推送信息

时间: 2022-07-12   |   分类: openvpn     |   阅读: 3242 字 ~7分钟

在《VPN的概念以及要点》中,我指出了OpenVPN构建的网络是单向的,也就是说在不手工配置系统路由的情况下,只能由OpenVPN客户端一侧发起连接。这是因为OpenVPN服务器会把自己一侧的路由推送至OpenVPN客户端,反之,OpenVPN客户端却不能把自己一侧的路由推送给OpenVPN服务器。于是我自己修改代码手工实现了一个PUSH消息,将客户端的信息放在PUSH_REQUEST的后面进行发送,然后OpenVPN服务器端进行解析。此举改动了大量的代码,浪费了我一天无聊的时间…

有什么更直接的方式么?事实上,当你认为没有的时候,蓦然回首,那人正在灯火阑珊处等你呢。如果你执行openvpn –help的时候,你会发现一个很有趣的选项,那就是push-peer-info选项,正如help解释所说,它只能用于client。该选项的含义是将OpenVPN客户端的信息推送至OpenVPN服务器。那么赶紧试试看。

阅读全文 »

OpenVPN高级路由技术 扩展成巨大的网络

时间: 2022-07-12   |   分类: openvpn     |   阅读: 1805 字 ~4分钟

OpenVPN内部实现了一个路由器的功能,其源代码的multi_get_instance_by_virtual_addr函数执行路由查找的工作,这种路由是OpenVPN的内部路由,也就是说这种路由是OpenVPN配置并查找的,和外部的系统路由是完全独立的。

阅读全文 »

OpenVPN的高级路由技术 内部路由

时间: 2022-07-12   |   分类: openvpn     |   阅读: 5625 字 ~12分钟

server模式以及点对点模式的OpenVPN

前文好几次说过,虽然OpenVPN也可以创建隧道,该隧道封装了IP数据报或者以太帧,然而却和使用IPSec VPN的网络拓扑无法做到兼容,这是因为在网对网模式下,默认配置下,使用tun虚拟网卡模式的OpenVPN的客户端虚拟网卡上要强制做SNAT,否则便通不过OpenVPN服务器端的检查。这是因为OpenVPN服务器是根据分配给客户端的虚拟IP地址来维护客户端和自己保存的session(也就是multi_instance)的对应关系的。为了定位是哪个客户端发来了封装的数据包,OpenVPN需要解析出封装载荷中的源IP地址,从而找到和自己保存的multi_instance的对应关系。初看起来,这好像是OpenVPN服务器设计时端偷了一个懒,然而下一节会说明,事实并不是那样。

阅读全文 »

使用OpenVPN的桥接模式扩展内部局域网

时间: 2022-07-12   |   分类: openvpn     |   阅读: 1364 字 ~3分钟

背景

​ OpenVPN是一款高度可扩展的VPN软件,除了既有的将应用客户端安全接入服务器这一传统功能外,还可以让你无缝的接入一个远程的局域网,正如你身在该局域网一样,如果你不用OpenVPN,你将很难做到这一点。当然,你可以选择像IPSec这样的重量级VPN,但是你的生活从此将不再简单,你也可以使用拨号,连接到远程,但是你永远无法体验完全接入这种身临其境的感觉。

阅读全文 »
32 33 34 35 36 37 38 39 40

日志
分类
标签
RSS 订阅
GitHub
© 2009 - 2025
粤ICP备2021068940号-1 粤公网安备44011302003059
0%