OpenVPN多处理之-多队列TUN多实例】的更多相关文章

两年前我以前提到了多个OpenVPN共享一个tun虚拟网卡,旨在降低管理开销和切换开销,由于我讨厌在外面对一大堆网卡做Bridge或者Bonding,除了初衷不同,其实的关于TUN的进展一直没有偏离我的思路.假设你看一下哪怕是Linux 3.9.6的内核的tun.c就知道我当初的思路并没有错.Linux内核社区相同也是这么做的,无疑,大牛们做的更好. 1.关于网卡多队列 硬件在不断的进步,可是终究会遇到物理瓶颈,而此时再想扩展性能就须要横向优化了,就是说,一个芯片遇到了瓶颈,我就搞多个,这也是非…
1.有一点不正确劲 在改动了那个TUN驱动后,我在想,为何我总是对一些驱动程序进行修修补补而从来不从应用程序找解决方式呢?我改动了那个TUN驱动,可是能保证我的改动对别的应用一样可用吗?难道TUN驱动就OpenVPN一家在用?这绝不可能,既然我想到了这个方法,肯定别人也想到了,仅仅所以网上没有资料,是由于这些牛人不屑于此罢了.       使用原生的没有改动的TUN驱动,怎样?Well,let's go on!       问题在哪里,问题在假设我启动多个OpenVPN进程,那么它们每个的mul…
LVS集群TUN模式实例 1. 实验拓扑图 2. 实验环境 4台CentOS6.2的服务器. 类型 IP DR eth0:10.20.73.20  VIP eth0:0 10.20.73.30 RS 10.20.73.22(web01) 10.20.73.23(web02) 10.20.110.140(web03)[不同网段] 3.安装和配置 3.1 安装 在DS上安装lvs:yum install ipvsadm 3.2  配置 配置lvs启动脚本: [root@master]# cat /e…
Linux 进程间通信(posix消息队列 简单)实例 详情见: http://www.linuxidc.com/Linux/2011-10/44828.htm 编译: gcc -o consumer consumer.c -lrt gcc -o producer producer.c -lrt /* * * Filename: producer.c * * Description: 生产者进程 * * Version: 1.0 * Created: 09/30/2011 04:52:23 PM…
转载至 https://www.codeproject.com/Articles/28785/Thread-synchronization-Wait-and-Pulse-demystified /* * 这是一个完整源代码示例,演示了此模式的多功能性.它实现了一个可以停止的阻塞队列. * 阻塞队列是固定大小的队列.如果队列已满,则尝试添加项目将被阻止. * 如果队列为空,则尝试删除项目将阻止. * 当Quit()被调用时,队列停止.这意味着您无法再添加任何项目,但可以删除现有项目,直到队列为空.…
好久没有更新这个系列了,由于我之前也说过,前段时间实在太忙了,并且早在一个月前就预示着本月将更加忙!事实也确实如此!最终在国庆前夕完毕了既定的计划,心里也最终能够长出一口气了.近期在忙什么呢?事实上就是OpenVPN!既然OpenVPN-ng已经不在计划内,那么让OpenVPN支持多处理就是必定要做的了. 还记得以下这张图吗?我暂且叫它版本号1: 起初,我一直以为画完这幅图就已经证明自己对OpenVPN非常精通了,后来我慢慢知道我错了,于是,我画出以下这幅图的时候,事实证明我当初的理解是多么肤浅…
第一章VPN介绍 1.1 VPN概述 VPN(全称Virtual Private Network)虚拟专用网络,是依靠ISP和其他的NSP,在公共网络中建立专用的数据通信网络的技术,可以为企业之间或者个人与企业之间提供安全的数据传输隧道服务.在VPN中任意两点之间的连接并没有传统专网所需的端到端的物理链路,而是利用公共网络资源动态组成的,可以理解为通过私有的隧道技术在公共数据网络上模拟出来的和专网有同样功能的点到点的专线技术,所谓虚拟是指不需要去拉实际的长途物理线路,而是借用了公共Interne…
对于需要从公网访问内网的情况, 需要做如下配置 从公网到内网 除了设置net.ipv4.ip_forward = 1 以外, 还需要设置iptables, 增加两行forward # Generated by iptables-save v1. :: *filter :INPUT ACCEPT [:] :FORWARD ACCEPT [:] :OUTPUT ACCEPT [:] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A…
openvpn构建1. 检测是否支持tun/tap cat /dev/net/tun cat: /dev/net/tun: File descriptor in bad state ##这代表支持 2. 安装依赖rpm包 yum -y install openssl-devel gcc gcc-c++ make pam-devel 3. 安装lzo库 (编译安装需要gcc make 和gcc-c++) wget http://www.oberhumer.com/opensource/lzo/do…
1.sss 当构建组件之间的关系已经错综复杂到接近于一张全然图的时候,就要换一个思路了,或者你须要重构整个系统,或者你将又一次实现一个. 2.TAP网卡和TUN网卡 2.1.TAP的优势 1.方便组网 你能够把全部的OpenVPN节点,包含服务端和client看作是一台巨大的三层交换机,全部的TAP虚拟网卡组成一个虚拟的内部以太网,假设在某个节点,你将物理网卡和TAP网卡Bridge在了一起,那么针对该物理网卡连接的网段,执行二层转发,假设没有进行这样的Bridge,则执行三层转发.在下图模式下…