ipvsadm 命令详解

yexiaobai

查看内核是否支持 ipvsadm

[test@LVS ~]$ /sbin/modprobe -l|grep ipvs
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_dh.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_ftp.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_lblc.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_lblcr.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_lc.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_nq.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_rr.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_sed.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_sh.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_wlc.ko
/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs_wrr.ko

如果不支持,就安装 ipvsadm

sudo yum -y install ipvsadm

ipvsadm 参数详解:

-C 清除表中所有的记录
-A --add-service在服务器列表中新添加一条新的虚拟服务器记录
-t 表示为tcp服务
-u 表示为udp服务
-s --scheduler 使用的调度算法, rr | wrr | lc | wlc | lblb | lblcr | dh | sh | sed | nq 默认调度算法是 wlc
ipvsadm -a -t 192.168.3.187:80 -r 192.168.200.10:80 -m -w 1
-a --add-server 在服务器表中添加一条新的真实主机记录
-t --tcp-service 说明虚拟服务器提供tcp服务
-u --udp-service 说明虚拟服务器提供udp服务
-r --real-server 真实服务器地址
-m --masquerading 指定LVS工作模式为NAT模式
-w --weight 真实服务器的权值
-g --gatewaying 指定LVS工作模式为直接路由器模式(也是LVS默认的模式)
-i --ipip 指定LVS的工作模式为隧道模式
-p 会话保持时间,定义流量呗转到同一个realserver的会话存留时间

[test@LVS ~]$ sudo /sbin/ipvsadm -l 
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.1.17.10:http wlc
  -> 10.2.4.35:http            Route   100    25095      18542     
  -> 10.2.4.31:http            Route   100    25097      17657     
  -> 10.2.4.30:http            Route   100    25123      18953     
  -> 10.2.4.29:http            Route   100    25091      18727     
  -> 10.2.4.24:http            Route   100    25075      17703     
  -> 10.2.4.23:http            Route   100    25086      17465     
  -> 10.2.4.22:http            Route   100    25124      17628     

InActConn 指非活跃连接数,我们将处于 TCP ESTABLISH 状态以外的连接都称为不活跃连接。例如处于 SYN_RECV 状态的连接,处于 TIME_WAIT 状态的连接等。

[test@LVS ~]$ sudo /sbin/ipvsadm -l --rate 
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS
  -> RemoteAddress:Port
TCP  192.1.17.10:http               2438    16241        0  6385560        0
  -> 10.2.4.35:http                 146      965        0   372714        0
  -> 10.2.4.34:http                 164     1089        0   423347        0
  -> 10.2.4.28:http                 152     1035        0   406658        0
  -> 10.2.4.27:http                 157     1031        0   411744        0
  -> 10.2.4.22:http                 160     1078        0   425447        0
  -> 10.2.4.21:http                 159     1078        0   423759        0

--rate选项是显示速率信息

  • CPS (current connection rate) 每秒连接数
  • InPPS (current in packet rate) 每秒的入包个数
  • OutPPS (current out packet rate) 每秒的出包个数
  • InBPS (current in byte rate) 每秒入流量(字节)
  • OutBPS (current out byte rate) 每秒入流量(字节)
[test@LVS ~]$ sudo /sbin/ipvsadm -l --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP 192.1.17.10:http            326629K    3588M        0   22517G        0
  -> 10.2.4.23:http             584349K    3896M        0    1469G        0
  -> 10.2.4.34:http             597422K    3956M        0    1501G        0
  -> 10.2.4.28:http             631106K    4198M        0    1592G        0
  -> 10.2.4.27:http             578297K    3850M        0    1459G        0
  -> 10.2.4.22:http             580208K    3859M        0    1463G        0
  -> 10.2.4.21:http             685758K  283146K        0    1737G        0

--stats 选项是统计自该条转发规则生效以来的

  • Conns (connections scheduled) 已经转发过的连接数
  • InPkts (incoming packets) 入包个数
  • OutPkts (outgoing packets) 出包个数
  • InBytes (incoming bytes) 入流量(字节)
  • OutBytes (outgoing bytes) 出流量(字节)

修改 LVS 表中的 fin_timeout 使用指令如下

ipvsadm --set 900 60 300

中间的 60 就是 tcp 的 fin_timeout 时间

查看默认的值使用如下命令:

$ sudo /sbin/ipvsadm -Ln --timeout 
Timeout (tcp tcpfin udp): 900 60 300
阅读 16.5k

yexiaoxiaobai
刀锋上的跳舞的 SRE,喜爱 Perl, Python, Go,常被正则婊戏耍,热衷于鼓捣一些小玩具。

就是不告诉你 O(∩_∩)O哈哈~。

4.8k 声望
867 粉丝
0 条评论

就是不告诉你 O(∩_∩)O哈哈~。

4.8k 声望
867 粉丝
文章目录
宣传栏