this project is to provide simple and robust facilities for loadbalancing and high-availability to Linux...system and Linux based infrastructures Keepalived 主要使用 VRRP 实现 VIP 的管理 On the other hand high-availability...,Keepalived 可以通过预设的检查逻辑来管理 LVS 配置,从而实现对 LVS 自动且动态的调配,让整个 LB 系统更加灵活且健壮 这里演示一下如何配置 Keepalived 加 LVS 的 TUN...192.168.1.184/24 } } virtual_server 192.168.1.184 80 { delay_loop 6 lb_algo wrr lb_kind TUN...192.168.1.184/24 } } virtual_server 192.168.1.184 80 { delay_loop 6 lb_algo wrr lb_kind TUN
而TUN方式,是通过给数据包加上新的IP头部来实现,这个可以跨整个广域网。 异地机房的好处:容灾 | 但是是否可以保证边界最近访问到对应的real server呢?...VIP 172.17.1.160 [root@localhost network-scripts]# echo 1 > /proc/sys/net/ipv4/ip_forward 2, 配置LVS TUN...没有tun0 ,加参数-a 时,查看可以看到tun0 [root@localhost ~]# ifconfig -a #查看。...Linux的rp_filter用于实现反向过滤技术,也即uRPF,它验证反向数据包的流向,以避免伪装IP攻击。...DR和TUN在网络层实际上使用了一个伪装IP数据包的功能。让client收到数据包后,返回的请求再次转给分发器。
因此 VIP 必须绑定在真实服务器的 lo 网卡上,并且不允许将此网卡信息经过 ARP 协议对外通告 3.请求的数据包经过负载均衡器后,直接由真实服务器返回给客户端,响应数据包不需要再经过负载均衡器 TUN...此时在真实服务器上查看 TCP 连接为:VIP ➡️ CIP 总结一下 TUN 模式的特点: 1.不改变请求数据包,而是在请求数据包上新增一层 IP 首部信息。...在 DR 和 TUN 模式中,负载均衡器只转发了请求数据包,响应数据包不经过负载均衡器,而是直接返回给客户端。...TUN 模式,是对 DR 模式的一种演进。突破 DR 模式中真实服务器的默认网关必须是负载均衡器的限制。...TUN 模式不会对源数据包进行修改,而是在源数据包上额外新增一条 IP 首部信息,所以不能对端口映射,且要求真实服务器必须能够卸载掉两层 IP 首部信息。 ?
因为每天都要通过V**访问公司内部服务,二哥想起来,何不给大家介绍下V**的工作原理呢?V**协议有很多个,最典型的有IPSec和OpenV**,这里二哥只聊OpenV**。...tun设备 我们一定见过了令人眼花缭乱的各种网络设备,有物理网卡,也有如veth和bridge这样的虚拟设备,现在又来了一个tun设备。 tun设备是什么呢?...图 1:tun设备和eth设备对比示意图 现在我们大概能猜得出:使用 tun设备的目的,其实是为了把来自协议栈的数据包,先交给某个打开了/dev/net/tun字符设备的用户进程处理。...首先它也归内核的网络设备子系统管理,对于Linux内核网络设备管理模块来说,虚拟设备和物理设备没有区别,都是网络设备,都能配置IP,从网络设备来的数据,都会转发给协议栈,协议栈过来的数据,也会交由网络设备发送出去...很显然,对于tun设备而言,将接收到的数据发往应用层这个动作是在它的驱动层面实现的。代码位于drivers/net/tun.c。 隧道协议 聊完了tun设备,我们再来看看隧道协议。
其中gre模型是视线隧道模型中众多模型的一种,还有ipip和sit 倒数第二步的意思是给自己的tun0设置一个虚拟ip,peer后面跟的是你想直接通过隧道传过去的对方的隧道虚拟ip ?
一、TUN模式集群 在NAT模式中,由于所有的请求及响应的数据包都需要经过LVS调度器,如果后端的服务器数量较大,则调度器就会成为整个集群环境的瓶颈。...而请求包的大小往往小于响应包,因为响应数据包中包含有客户需要的具体数据,所以TUN模式的思路就是将请求与响应分离,让调度器仅处理请求,让真实服务器将响应数据包直接返回给客户端。...在TUN模式中有一个IP隧道,这个IP隧道是一种数据包封装技术,可以将原始数据包封装并添加新的包头(包头内容包括新的源地址和端口,新的目标地址和端口),从而实现将一个目标为调度器VIP地址的数据包封装,...工作原理 基于NAT机制实现。...缺点: 隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux系统上。
因为每天都要通过VPN访问公司内部服务,二哥想起来,何不给大家介绍下VPN的工作原理呢?VPN协议有很多个,最典型的有IPSec和OpenVPN,这里二哥只聊OpenVPN。...tun设备 ---- 我们一定见过了令人眼花缭乱的各种网络设备,有物理网卡,也有如veth和bridge这样的虚拟设备,现在又来了一个tun设备。 tun设备是什么呢?...图 1:tun设备和eth设备对比示意图 现在我们大概能猜得出:使用 tun设备的目的,其实是为了把来自协议栈的数据包,先交给某个打开了/dev/net/tun字符设备的用户进程处理。...首先它也归内核的网络设备子系统管理,对于Linux内核网络设备管理模块来说,虚拟设备和物理设备没有区别,都是网络设备,都能配置IP,从网络设备来的数据,都会转发给协议栈,协议栈过来的数据,也会交由网络设备发送出去...很显然,对于tun设备而言,将接收到的数据发往应用层这个动作是在它的驱动层面实现的。代码位于drivers/net/tun.c。 隧道协议 ---- 聊完了tun设备,我们再来看看隧道协议。
1、learning:vppsb router插件编译、 2、Learning VPP: OSPF routing protocol 3、Learning VPP: linux-cp(1) 简介 TUN.../TAP是linux下的虚拟网卡设备,能够被用户态的进程用来发送和接收数据包,但是与物理网卡的数据来自链路层不同,tun/tap数据的接收和发送方都是来自用户进程或内核。...:tun、tap设备都是通过linux内核的驱动程序tun来创建的,tun驱动在初始化的时候会创建一个misc设备,路径是/dev/net/tun,用来作为向用户态导出的接口,所有对tun、tap设备的操作都必须先打开...return VNET_API_ERROR_SYSCALL_ERROR_1; clib_memset (&ifr, 0, sizeof (ifr)); /*设置tun、tap接口在linux设备名称...工作原理及使用场景。
Linux mmap原理 前言 Linux段页式内存管理 mmap mmap内存映射原理 文字概述 mmap函数参数介绍 源码解析 1. 文件映射 2....,但是并没有深入理解mmap在操作系统内部是如何实现的,原理是什么。...本文想要和大家一起来聊聊mmap的原理,本文整体脉络如下: linux段页式内存管理回顾 mmap原理 ---- Linux段页式内存管理 这里的段页式内存管理主要基于linux 0.11进行讲解...(作者本人并非主攻linux,所以只是对linux 0.11略有研究) 无论是现代操作系统还是最早的linux 0.11操作系统,在对于物理内存的管理,都是将物理内存按页划分,如下图所示:...下面我们通过一幅图来对 mmap 的原理进行阐述: 从上图可以看出,mmap 的原理就是将虚拟内存空间映射到文件的页缓存,我们可以知道:对文件进行读写时需要经过页缓存进行中转的。
可以在Link Layer这一层看到有若干种网络设备:veth、bridge、eth0、tun。它们都是组成Overlay网络模型不可或缺的关键设备。...通过将图1中的VXLAN内核模块拆解成tun设备和flannel daemon,并将它们挪动到用户态,我们可以非常清晰地看到进行数据封装、解封的确切地点以及数据的流向。...因为目的IP是10.244.1.3,所以网络包需要被送往tun设备flannel.1。...图 3:veth + bridge网络包接收流程中,Bridge处理细节 回到熟悉的场景 1.7 ~ 1.9 是我们前两篇《tun设备的妙用-V**篇》和《tun设备的妙用-OpenV**篇全流程补充》
应用程序如何操作Tun/Tap Linux Tun/Tap驱动程序为应用程序提供了两种交互方式:虚拟网络接口和字符设备/dev/net/tun。...下图描述了Tap/Tun的工作原理: 使用Tun/Tap创建点对点隧道 通过应用程序从/dev/net/tun字符设备中读取或者写入数据看上去并没有太大用处,但通过将Tun/Tap结合物理网络设备使用...Linux Bridge上,Linux Bridge发给Eth1的数据包也会被发送到以太网交换机上。...Linux Bridge上还有一个Tap虚拟网卡,用于V**程序接收从Linux Bridge上收到的数据包。...由于Eth1被加入了V**主机上的Linux Bridge,因此Linux Bridge收到该ARP请求。 Linux Bridge对该ARP请求进行泛洪,发送到连到其上面的Tap虚拟网卡上。
IP 隧道 Linux 原生支持多种三层隧道,其底层实现原理都是基于 tun 设备。我们可以通过命令 ip tunnel help 查看 IP 隧道的相关操作。...inherit/00..ff } TTL := { 1..255 | inherit } KEY := { DOTTED_QUAD | NUMBER } 可以看到,Linux...实践 IPIP 隧道 我们下面以 ipip 作为例子,来实践下 Linux 的隧道通信。本文以前文的 Linux 路由机制作为基础,不清楚 Linux 路由的可以先翻看下那篇文章再来看。...5、Linux 打开了 ip_forward,相当于一台路由器,10.10.10.0 和 10.10.20.0 是两条直连路由,所以直接查表转发,从 NS1 过渡到 NS2。...总结 现在的 Linux 内核原生支持 5 种隧道协议,它们底层实现都是采用 tun 虚拟设备。 我们熟知的各种 V** 软件,其底层实现都离不开这 5 种隧道协议。
LVS 是linux virtual server的简写,意为:Linux虚拟服务器,这是一个由章文嵩博士在1998年5月发起的一个自由软件项目。...Linux 2.4 以后的内核版本,已经集成了 LVS 的各个功能模块,我们可以直接使用LVS提供的各种功能。...4.2 TUN 模式 优点: 可以调度百台以上的服务器(同等规模的服务器),而它不会成为系统的瓶颈。可以用来构建高性能的超级服务器。 原理、配置简单,容易理解。...TUN 可以调度百台以上的服务器(同等规模的服务器),而它不会成为系统的瓶颈。可以用来构建高性能的超级服务器。原理、配置简单,容易理解。...TUN 可以调度百台以上的服务器(同等规模的服务器),而它不会成为系统的瓶颈。可以用来构建高性能的超级服务器。 原理、配置简单,容易理解。
本文将详细探讨HTTPS协议的工作原理、HTTP与HTTPS的区别、加密技术的应用以及如何通过证书认证保障安全通信 1.1 HTTPS 是什么及其工作原理?...HTTPS的工作原理如下: 当用户通过HTTPS访问网站时,数据首先被加密层处理,进行加密后再交给传输层。 接收方在接收到数据后,同样通过加密层解密,解密后的数据再交给应用层使用。...虽然非对称加密的安全性更高,但由于算法复杂,效率较低使得加密解密速度没有对称加密解密的速度快 1.5 数据摘要与数据指纹 数字指纹(数据摘要):基本原理是利用单向散列函数(Hash 函数)对信息进行运算...原理 – 客户端进行认证 当客户端获取到这个证书之后, 会对证书进行校验(防止证书是伪造的). 判定证书的有效期是否过期 判定证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构)....| 四、共勉 【★,°:.☆( ̄▽ ̄)/$:.°★ 】那么本篇到此就结束啦,如果有不懂 和 发现问题的小伙伴可以在评论区说出来哦,同时我还会继续更新关于【Linux】的内容,请持续关注我 !!
Clash Verge 中的 Tun 模式 前言 有朋友遇到这样的上网情况: 开启 tun 模式后,有时能上网,有时不能上网;但只开系统代理时却能正常上网。...朋友对此有了疑问:tun 模式在这里充当什么作用? TUN 模式与系统代理模式 一张表格解答该问题: 代理模式 说明 特点 系统代理 1....Tun 模式 代理程序会创建一张虚拟网卡,通过配置操作系统的路由将网络请求重定向到这张虚拟网卡,代理程序从虚拟网卡中读取并处理这些网络请求。...一句话解释 TUN模式下,Clash Verge 设置了一个虚拟网卡,所有流量都会经过这个虚拟网卡,由不得你走不走代理,所有的流量都会被接管分流。
在Linux内核中,进程又称为任务(task),进程的虚拟地址空间可以分为用户虚拟地址空间和内核虚拟地址空间,所有进程共享内核虚拟地址空间,又各自拥有独立的用户虚拟地址空间。...C语言标准库进程和Linux的内核进程称呼有所区别,对应关系如下: C标准库...Linux内核 包括多个线程的进程 线程组 只有一个线程的进程...图片 Linux内核提供了一组宏值来表示进程的状态: TASK_RUNNING(可运行状态或就绪状态);Linux并没有严格区分运行态或就绪态,统一为TASK_RUNNING...Linux不支持硬实时处理,至少在主流的内核中不支持。
这篇是对上一篇《tun设备的妙用-V**篇》的补充。有朋友问二哥能不能把 OpenV** server 端的细节也画出来。安排! 在这张图里,你会发现在server端那里也有一个 tun0 设备。...tun设备是一个网络设备 需要注意的是在这张图中,我将 tun 设备画在了链路层,因为它本质上还是一个网络设备,它的代码位于 drivers/net/tun.c 。...网上有不少图是直接将tun设备画在IP层的,二哥觉得这样画虽然可以形象地说明tun设备和IP层的密切关系( tun 设备和 IP frame 打交道,而 tap 设备与 Ethernet frame 打交道...思考再三,我还是决定遵循tun设备的本质和它该处的位置来画这张图。 IP层发给tun设备的数据包 同时因为 tun 设备又是一个 POINTOPOINT 设备,故数据发送过程中不会有 ARP 流程。...tun设备和用户态通信的数据包 那么另一个问题来了,tun 设备发往应用层的数据包的格式是什么呢?
前面两篇文章已经介绍过 tap/tun 的原理和配置工具。这篇文章通过一个编程示例来深入了解 tap/tun 的程序结构。...Y vermagic: 3.10.0-862.14.4.el7.x86_64 SMP mod_unload modversions signer: CentOS Linux...sig_key: E4:A1:B6:8F:46:8A:CA:5C:22:84:50:53:18:FD:9D:AD:72:4B:13:03 sig_hashalgo: sha256 在 linux...使用 tap/tun 设备需要包含头文件 #include linux/if_tun.h>,以下是完整代码。...ioctl.h> #include #include #include #include #include linux
系统调用 是 Linux 内核提供的一段代码(函数),其实现了一些特定的功能,用户可以通过 int 0x80 中断(x86 CPU)或者 syscall 指令(x64 CPU)来调用 系统调用。...二、进入系统调用 本文主要介绍的是 x86 CPU 进入系统调用的方式 Linux 提供了 int 0x80 中断来让用户程序进入 系统调用,我们来看看 Linux 对 int 0x80 中断的处理初始化过程...原理如下图(图片来源 https://developer.ibm.com/zh/technologies/linux/tutorials/l-system-calls/ ): ?...Linux 使用寄存器来传递参数,参数与寄存器的关系如下: 第1个参数放置在 ebx 寄存器。 第2个参数放置在 ecx 寄存器。 第3个参数放置在 edx 寄存器。...而 Linux 进入中断处理程序时,会把这些寄存器的值保存到内核栈中,这样 系统调用 就能通过内核栈来获取到参数。
文章目录 1.epoll 的用法 2.epoll 的创建 3.epoll 对象结构 4.向 epoll 添加文件描述符 5.阻塞和唤醒进程 6.小结 参考文献 epoll 是 Linux 平台下的一种特有的...本文主要讲解 epoll 的实现原理。 1.epoll 的用法 先复习下 epoll 的用法。...epoll_create() 函数创建一个 epoll 的文件描述符,epoll_create() 函数原型如下: int epoll_create(int size); 参数 size 是由于历史原因遗留下来的,自 Linux...---- 参考文献 epoll_create(2) - Linux manual page - man7.org linux内核Epoll 实现原理 Linux source code (v6.0)
领取专属 10元无门槛券
手把手带您无忧上云