- 博客(19)
- 资源 (5)
- 收藏
- 关注
原创 IPVS的连接结构
在连接结构的初始化函数ip_vs_conn_init中,可见IPVS为连接结构ip_vs_conn分配了专用的slab缓存,全局连接数据结构ip_vs_conn_tab的大小默认为4K(CONFIG_IP_VS_TAB_BITS)。#ifndef CONFIG_IP_VS_TAB_BITS#define CONFIG_IP_VS_TAB_BITS 12#endifstatic int...
2019-09-25 21:20:31 1212
原创 IPVS使用的Netfilter Hook点
IPVS的实现利用了Netfilter的三个Hook点,分别是:NF_INET_LOCAL_IN、NF_INET_LOCAL_OUT和NF_INET_FORWARD。在每个Hook点,IPVS注册了两个钩子函数。如下所示:static const struct nf_hook_ops ip_vs_ops[] = { /* After packet filtering, change so...
2019-09-24 10:57:12 2037
原创 以太网流量控制XON/XOFF
当以太网卡不能处理对端发送的数据帧时,将发送‘PAUSE’帧到对端,请求暂停发送。当本端以太网卡可处理更多数据时,或者‘PAUSE’请求的暂停时间超时,对端可继续发送数据。可使用以下的ethtool命令查看网卡的流控设置。$ ethtool --show-pause eth0 Pause parameters for eth0:Autonegotiate: onRX: ...
2019-09-23 09:49:49 5296
原创 IPVS系统的连接同步 - SLAVE同步线程
Slave同步线程函数sync_thread_backup如下,其处理多播同步报文的接收。如下可见,其检测监听套接口的sk_receive_queue队列,一旦队列中有值,使用ip_vs_receive函数将报文接收到线程的缓存中。之后调用函数ip_vs_process_message进行实际的处理。static int sync_thread_backup(void *data){ ...
2019-09-19 21:09:43 426
原创 IPVS系统的连接同步 - MASTER同步线程
在内核IPVS中存在两个同步点:函数ip_vs_in和ip_vs_conn_expire。前者用于同步连接信息更新,后者用于超时连接的同步。static unsigned int ip_vs_in(struct netns_ipvs *ipvs, unsigned int hooknum, struct sk_buff *skb, int af){ struct ip_vs_conn ...
2019-09-19 21:09:01 814
原创 IPVS系统的连接同步 - 准备阶段
以下命令启动和停止ipvs系统的连接同步功能,master和backup表示主同步进程;backup表示备份进程,接收master同步的连接信息:# ipvsadm --start-daemon master --mcast-interface ens39 --syncid 2# ipvsadm --start-daemon backup --mcast-interface ens39 --s...
2019-09-18 21:11:12 801
原创 StrongSwan虚拟测试环境搭建
全新安装的Ubuntu系统,版本:$ cat /etc/issueUbuntu 18.04.3 LTS \n \l$ StrongSwan的版本为: 5.8.1。在搭建环境之前,更新一个apt系统,将sources.list文件中的如下行增加universe,以防在安装过程中找不到包。$ sudo vi /etc/apt/sources.list deb http://arch...
2019-09-16 20:33:29 1965
原创 IPVS调度算法之LBLCR
LBLCR(Locality-Based Least-Connection with Replication)调度算法,与LBLC调度算法类似,只是加入了真实目的服务器集合的概念,调度器注册LBLCR调度器的定义结构为ip_vs_lblcr_scheduler,使用函数register_ip_vs_scheduler注册到IPVS的调度器系统中。static struct ip_vs_sch...
2019-09-15 22:10:22 718
原创 IPVS调度算法之LBLC
LBLC(Locality-Based Least-Connection)调度算法,是基于LC算法的一个变种, 对LC算法调度的目的服务器进行缓存, 对于后续的连接如果其目的IP可在缓存中找到目的服务器, 使用其处理新连接。调度器注册LBLC调度器的定义结构为ip_vs_lblc_scheduler,使用函数register_ip_vs_scheduler注册到IPVS的调度器系统中。sta...
2019-09-15 22:09:10 1194
原创 IPVS调度算法之NQ
NQ(Never Queue)调度算法,即当真实服务器中有空闲的时,先调度到空闲服务器,否则依据SED算法调度。调度器注册NQ调度器的定义结构为ip_vs_nq_scheduler,使用函数register_ip_vs_scheduler注册到IPVS的调度器系统中。static struct ip_vs_scheduler ip_vs_nq_scheduler ={ .n...
2019-09-10 19:52:38 942
原创 IPVS调度算法之FO
FO(Weighted Fail Over)调度算法。调度器注册FO调度器的定义结构为ip_vs_fo_scheduler,使用函数register_ip_vs_scheduler注册到IPVS的调度器系统中。static struct ip_vs_scheduler ip_vs_fo_scheduler = { .name = "fo", ....
2019-09-09 19:53:47 528
原创 IPVS调度算法之OVF
OVF(Overflow-connection)调度算法,基于真实服务器的活动连接数量和权重值实现。将新连接调度到权重值最高的真实服务器,直到其活动连接数量超过权重值位置,之后调度到下一个权重值最高的真实服务器。调度器注册OVF调度器的定义结构为ip_vs_ovf_scheduler,使用函数register_ip_vs_scheduler注册到IPVS的调度器系统中。static stru...
2019-09-09 19:44:14 344
原创 IPVS调度算法之SED
SED(Shortest Expected Delay)调度算法,将新连接调度到延迟最小的真实服务器。调度器注册SED调度器的定义结构为ip_vs_sed_scheduler,使用函数register_ip_vs_scheduler注册到IPVS的调度器系统中。static struct ip_vs_scheduler ip_vs_sed_scheduler = { .name =...
2019-09-06 20:20:38 677
原创 IPVS调度算法之WRR
WRR(Weighted Round-Robin),即带权重的轮询算法。调度器注册WRR调度器的定义结构为ip_vs_wrr_scheduler,使用函数register_ip_vs_scheduler注册到IPVS的调度器系统中。static struct ip_vs_scheduler ip_vs_wrr_scheduler = { .name = ...
2019-09-05 21:14:36 1594
原创 IPVS调度算法之WLC
WLC(Weighted Least-Connection),即带权重的LC算法,根据权重将新流量分配于活动连接少的真实服务器。调度器注册WLC调度器的定义结构为ip_vs_wlc_scheduler,使用函数register_ip_vs_scheduler注册到IPVS的调度器系统中。static struct ip_vs_scheduler ip_vs_wlc_scheduler ={...
2019-09-05 21:05:44 1541 2
原创 IPVS调度算法之SH
SH(Source Hashing)调度算法,将连接调度到连接数量较少的真实服务器。调度器注册SH调度器的定义结构为ip_vs_sh_scheduler,使用函数register_ip_vs_scheduler注册到IPVS的调度器系统中。static struct ip_vs_scheduler ip_vs_sh_scheduler ={ .name = ...
2019-09-04 20:18:34 1106
原创 IPVS调度算法之DH
DH(Destination Hashing)调度算法,将报文IP头部的目的地址进行哈希计算,之后根据hash值在由真实服务器组成的buckets数组中查找目标服务器。调度器注册DH调度器的定义结构为ip_vs_dh_scheduler,使用函数register_ip_vs_scheduler注册到IPVS的调度器系统中。static struct ip_vs_scheduler ip_vs...
2019-09-04 20:16:21 620
原创 IPVS调度算法之LC
LC(Least-Connection)调度算法,将连接调度到连接数量较少的真实服务器。调度器注册由以下的调度器结构定义ip_vs_lc_scheduler可知,此调度器比较简单,仅实现了schedule指针函数。static struct ip_vs_scheduler ip_vs_lc_scheduler = { .name = "lc", ...
2019-09-02 19:41:39 669
原创 基于MP-BGP的L3 MPLS配置
配置设备华为三层交换机:S5720-32X-EI-AC。拓扑图如下。MPLS 隧道绑定在PE1的VLAN 20接口和PE2的VLAN 40接口上。CE1与CE2之间的流量进入MPLS 通道。 lsr-id 1.1.1.9 lsr-id 2.2.2.9 ...
2019-09-02 11:38:54 2912
dm-launcher-7.20.msi
2024-09-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人