ipvsadm 命令

目录

 

1、概要

2、描述

3、命令

4、参数

5、例子1:简单的虚拟服务


1、概要

ipvsadm  -A|E -t|u|f service-address [-s scheduler]
         [-p [timeout]] [-M netmask] [-b sched-flags]

ipvsadm  -D -t|u|f service-address
ipvsadm  -C
ipvsadm  -R
ipvsadm  -S [-n]
ipvsadm  -a|e -t|u|f service-address -r server-address
         [-g|i|m] [-w weight] [-x upper] [-y lower]
ipvsadm  -d -t|u|f service-address -r server-address
ipvsadm  -L|l [options]
ipvsadm  -Z [-t|u|f service-address]
ipvsadm  --set tcp tcpfin udp
ipvsadm  --start-daemon state [--mcast-interface interface]
         [--syncid syncid]
ipvsadm  --stop-daemon state
ipvsadm  -h

2、描述

ipvsadm 用于在Linux内核中设置、维护或检查虚拟服务器表。Linux虚拟服务器可以用于基于两个或多个节点的集群构建可伸缩的网络服务。集群的活动节点重定向对将实际执行服务的服务器主机集合的服务请求。支持的功能包括两种协议(TCP和UDP)、三种包转发方法(NAT, tunneling, and direct routing)和八种负载平衡算法(加权循环,最小连接,加权最小连接,基于位置的最小连接,基于位置的与复制、目标哈希和源哈希的最小连接)。

该命令有两种基本的执行格式:

ipvsadm  COMMAND [protocol]  service-address
         [scheduling-method] [persistence options]

ipvsadm  command [protocol] service-address
         server-address [packet-forwarding-method]
         [weight options]

第一种格式操作虚拟服务和将服务请求分配给真实服务器的算法。可选的,可以指定持久服务粒度的持久超时和网络掩码。第二种格式操作与现有虚拟服务关联的真实服务器。在指定实际服务器时,包转发方法和实服务器相对于虚拟服务的其他实服务器的权重可以指定,否则指定将使用默认值。

3、命令

ipvsadm 识别下面描述的命令。大写命令维护虚拟服务。小写命令维护与虚拟服务相关联的真实服务器。

  • -A, --add-service :  添加虚拟服务。服务地址由一个三元组唯一定义:IP地址、端口号和协议。或者,虚拟服务可以由防火墙标记定  义。
  • -E, --edit-service :    编辑一个虚拟服务

  • -D, --delete-service:  删除一个虚拟服务,以及任何相关的实际服务器.

  • -C, --clear :   清除虚拟服务器表

  • -R, --restore : 从stdin恢复Linux虚拟服务器规则。从stdin中读取的每一行将被视为到的命令行选项
    ipvsadm的单独调用。从stdin读取的行可以选择以“ipvsadm”开头。这个选项对
    在构造广泛的路由表时,避免执行大量命令或ipvsadm命令。

  • -S, --save : 将Linux虚拟服务器规则以可被 -R|--restore  读取的格式转储到stdout。

  • -a, --add-server : 将实际服务器添加到虚拟服务.

  • -e, --edit-server : 在虚拟服务中编辑真实的服务器。

  • -d, --delete-server : 从虚拟机服务器中移除一个真实服务器

  •  -L, -l, --list :如果没有指定参数,则列出虚拟服务器表。如果选择了service-address,只列出此服务。如果选择-c选项,然后显示连接表。确切的输出受到其他参数的影响.

  •  -Z, --zero : 将服务或所有服务中的包、字节和速率计数器归零。

  •  --set tcp tcpfin udp :更改用于IPVS连接的超时值。这个命令总是使用3个参数,分别表示TCP会话的超时值(以秒为单位)、接收到FIN包后的TCP会话和UDP包。超时值0表示保留相应条目的当前超时值。

  • --start-daemon state :启动连接同步守护进程。该状态指示守护进程作为主进程或备份启动。
    连接同步守护进程在Linux内核中实现。在主负载均衡器上运行的主守护进程定期广播连接的更改,而在备份负载均衡器上运行的备份守护进程接收多播消息并创建相应的连接。然后,如果主负载均衡器失败,备份负载均衡器将接管,并且它具有几乎所有连接的状态,以便几乎所有已建立的连接都可以继续访问服务.     同步守护进程当前只支持IPV4连接.

  • --stop-daemon :停止连接同步守护进程.

  •  -h, --help : 显示命令语法的描述.

4、参数

    上面的命令接受或要求零或多个以下参数。

  • -t, --tcp-service service-address : 使用TCP服务。service-address的形式是 host[:port]。Host可以是普通IP地址或主机名之一。
    Port可以是普通的端口号,也可以是端口的服务名称。该端口可能被省略,这种情况下,端口的值为0。只有当服务是 -p|--persistent 选项时,端口0才有效,在这种情况下,它是一个通配符端口,即连接将被接受到任何端口。
  •  -u, --udp-service service-address  :参考-t 
  •  -f, --fwmark-service integer : 使用大于零的整数值防火墙标志来表示虚拟服务,而不是地址、端口和协议(UDP或TCP)。带有防火墙标记的包的标记是使用-m|--mark 选项到iptables.它可以用来建立一个与相同的实际服务器相关联的虚拟服务,覆盖多个IP地址,端口和协议三联体。如果使用IPv6地址,必须使用-6选项。使用防火墙标记虚拟服务提供了一种将不同的IP地址和端口分组在一起的方便方法和协议成为一个单一的虚拟服务。这对于简化大量的配置非常有用需要虚拟服务,并跨多个虚拟服务对持久性进行分组。
  • -s, --scheduler scheduling-method : 调度方法算法分配TCP连接和UDP数据报到真正的服务器。调度算法被实现为内核模块。其中10个是Linux虚拟服务器自带的:

        rr - Round Robin: 在可用的实际服务器之间平均分配作业.

        wrr - Weighted Round Robin: 按实际服务器的权重比例将作业分配给实际服务器。权重较高的服务器首先接收新任务,并且比权重较低的服务器获得更多的任务。具有相同权重的服务器将获得相同的新作业分配。

        lc - Least-Connection:  将更多的作业分配给活动作业较少的实际服务器。

        wlc - Weighted Least-Connection: 相对于实际服务器的权重(Ci/Wi),将更多的作业分配给任务较少的服务器。这是默认设置。

  •  -r, --real-server server-address 关联的服务请求可能被分配到的实际服务器。server-address是实际服务器的主机地址,可以加上端口。主机可以是普通的IP地址,也可以是主机名。端口可以是普通的端口号,也可以是端口的服务名称。在伪装方法的情况下,主机地址通常是一个RFC 1918私有IP地址,并且端口可以与相关服务的端口不同。在隧道和直接路由方法中,端口必须等于服务地址的端口。对于正常的服务,如果没有指定端口,将使用服务地址中指定的端口。对于fwmark服务,可以省略端口,在这种情况下,实际服务器上的目的端口将是发送给虚拟服务的请求的目的端口。  

      [包转发方法]

        -g, --gatewaying  : 使用网关(direct routing)。这是默认设置。

         -i, --ipip :     使用ipip封装(tunneling).

         -m, --masquerading : 使用伪装(网络访问转换,或NAT)

          注意:无论指定的包转发机制如何,在本地节点上有接口的地址的实际服务器将使用本地转发方法,然后将服务器的包传递到本地节            点上的上层。这不能由ipvsadm指定,而是由内核在添加或修改实际服务器时设置。

  •   -w, --weight weight : 权值是一个整数,指定服务器相对于池中其他服务器的容量。权值的有效值是0到65535。默认值是1。静态服务器的权值指定为0。对于Linux虚拟服务器分发的所有调度算法来说,静态服务器将不接收新作业,但仍然为现有作业服务。如果服务器过载或需要退出服务进行维护,那么设置静态服务器可能很有用。
  •  -c, --connection :连接输出。带有此选项的list命令将列出当前IPVS连接。
  •  -n, --numeric : 数字输出。IP地址和端口号将以数字格式打印,而不是分别作为主机名和服务(这是缺省情况)。
  • --exact : 扩大数字。显示数据包和字节计数器的确切值,而不是只显示K(1000的倍数)M (1000K的倍数)或G (1000M的倍数)的整数。此选项仅与-L命令相关。
  • -6, --ipv6 :与-f一起使用表示fwmark规则使用IPv6地址。
  • -o, --ops :  一小包调度。与只处理UDP数据包的UDP虚拟服务或fwmark虚拟服务一起使用。创建所有连接时,它们只调度一个包。

 

5、例子1:简单的虚拟服务

下面的命令配置一个Linux控制器,将传入的请求分配到207.175.44.110上的端口80,同时分配到5个实际服务器上的端口80。本例中使用的转发方法是NAT,每一个真实的服务器都由Linux控制器伪装.

ipvsadm -A -t 207.175.44.110:80 -s rr
ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.1:80 -m
ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.2:80 -m
ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.3:80 -m
ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.4:80 -m
ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.5:80 -m

或者,这可以在一个ipvsadm命令中实现。

 echo "
       -A -t 207.175.44.110:80 -s rr
       -a -t 207.175.44.110:80 -r 192.168.10.1:80 -m
       -a -t 207.175.44.110:80 -r 192.168.10.2:80 -m
       -a -t 207.175.44.110:80 -r 192.168.10.3:80 -m
       -a -t 207.175.44.110:80 -r 192.168.10.4:80 -m
       -a -t 207.175.44.110:80 -r 192.168.10.5:80 -m
       " | ipvsadm -R

在本例中,由于masquerading用作转发机制,所以实际服务器的默认路由必须设置为linux director,需要将其配置为转发和伪装数据包。这可以通过以下命令实现:

  echo "1" > /proc/sys/net/ipv4/ip_forward

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值