一、ipvsadm命令用法

目标:

准备一台Linux服务器,安装ipvsadm软件包,练习使用ipvsadm命令,实现如下功能:

  • 使用命令添加基于TCP一些的集群服务
  • 在集群中添加若干台后端真实服务器
  • 实现同一客户端访问,调度器分配固定服务器
  • 会使用ipvsadm实现规则的增、删、改
  • 保存ipvsadm规则

方案:

安装ipvsadm软件包,关于ipvsadm的用法可以参考man ipvsadm资料。常用ipvsadm命令语法格式如下表所示。

步骤:

步骤一:使用命令增、删、改LVS集群规则

1)创建LVS虚拟集群服务器

[root@svr5 ~]# ipvsadm -A -t 192.168.0.254 -s wrr -p 30

2)为集群添加若干real server

[root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.1 -m -w 1
    [root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.2 -m -w 2
    [root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.3 -m -w 3
    [root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.4 -m -w 4

3)修改集群服务器设置

[root@svr5 ~]# ipvsadm -E -t 192.168.0.254 -s sh -p 30

4)修改read server

[root@svr5 ~]# ipvsadm –a -t 192.168.0.254 -r 192.168.0.1 -m

5)查看LVS状态

[root@svr5 ~]# ipvsadm –Ln

6)保存所有规则

[root@svr5 ~]# service ipvsadm save

7)清空所有规则

[root@svr5 ~]# ipvsadm –C

二、部署LVS-NAT集群

目标:

使用LVS实现NAT模式的集群调度服务器,为用户提供Web服务:

  • 集群对外公网IP地址为202.114.106.20
  • 调度器内网IP地址为192.168.0.254
  • 真实Web服务器地址分别为192.168.0.1、192.168.0.2、192.168.0.3
  • 使用加权轮询调度算法,真实服务器权重与其IP地址末尾数一致

方案:

使用4台虚拟机,1台作为Director调度器、3台作为Real Server、物理机作为客户端,拓扑结构如下图所示。

步骤:

步骤一:配置网络环境

1)设置Web服务器网络参数

[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.1
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.254
    DNS1=202.106.0.20
    [root@web1 ~]# systemctl restart NetworkManager
    [root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.2
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.254
    DNS1=202.106.0.20
    [root@web2 ~]# systemctl restart NetworkManager
     [root@web3 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.3
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.254
    DNS1=202.106.0.20
    [root@web3 ~]# systemctl restart NetworkManager

2)自定义Web页面

[root@web1 ~]# echo “192.168.0.1” > /var/www/html/index.html
    [root@web2 ~]# echo “192.168.0.2” > /var/www/html/index.html
    [root@web3 ~]# echo “192.168.0.3” > /var/www/html/index.html

3)启动Web服务器软件

[root@web1 ~]# service httpd start
    [root@web2 ~]# service httpd start
    [root@web3 ~]# service httpd start

4)设置LVS调度器网络参数

[root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=202.114.106.20
    DNS1=202.106.0.20
    [root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.254
    NETMASK=255.255.255.0
    DNS1=202.106.0.20
    [root@lvs ~]# systemctl restart NetworkManager
    [root@lvs ~]# sed -i '/ip_forward/s/0/1/'  sysctl.conf  //开启路由转发
    [root@lvs ~]# sysctl -p

步骤二:调度器安装软件并启动服务

1)安装软件

[root@lvs Packages]# rpm –ihv ipvsadm-1.25-10.el6.x86_64.rpm

2)启动服务

[root@lvs Packages]# service ipvsadm start
    [root@lvs Packages]# chkconfig ipvsadm on

步骤三:部署LVS-NAT模式调度器

1)创建集群服务器

[root@lvs ~]# ipvsadm -A -t 202.114.106.20:80 -s wrr

2)添加真实服务器

[root@lvs ~]# ipvsadm -a -t 202.114.106.20:80 -r 192.168.0.1 -w 1
    [root@lvs ~]# ipvsadm -a -t 202.114.106.20:80 -r 192.168.0.2 -w 2
    [root@lvs ~]# ipvsadm -a -t 202.114.106.20:80 -r 192.168.0.3 -w 3

3)查看规则列表,并保存规则

[root@lvs ~]# ipvsadm –Ln
    [root@lvs ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm

步骤四:客户端测试

客户端使用curl命令反复连接http://202.114.106.20,查看访问的页面是否会轮询到不同的后端真实服务器。

三、部署LVS-DR集群

目标:

使用LVS实现DR模式的集群调度服务器,为用户提供Web服务:

  • 路由器对外公网IP地址为202.114.106.20
  • 路由器内网IP地址为192.168.0.254
  • 路由是需要设置SNAT及DNAT功能
  • LVS调度器真实IP地址为192.168.0.10
  • LVS调度器VIP地址设置为192.168.0.253
  • 真实Web服务器地址分别为192.168.0.1、192.168.0.2
  • 使用加权轮询调度算法,真实服务器权重与其IP地址末尾数一致

方案:

使用4台虚拟机,1台作为Linux路由器、1台作为Director调度器、2台作为Real Server、物理机作为客户端,拓扑结构如下图所示。

步骤:

步骤一:配置网络环境

1)设置Web服务器网络参数

[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.1
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.254
    DNS1=202.106.0.20
    [root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
    DEVICE=lo:0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.253
    NETMASK=255.255.255.255
    [root@web1 ~]# vim /etc/sysctl.conf
    .. ..
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.lo.arp_announce = 2
    net.ipv4.conf.all.arp_announce = 2
    [root@web1 ~]# sysctl -p
    [root@web1 ~]# systemctl restart NetworkManager
    [root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.2
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.254
    DNS1=202.106.0.20
    [root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
    DEVICE=lo:0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.253
    NETMASK=255.255.255.255
    [root@web2 ~]# vim /etc/sysctl.conf
    .. ..
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.lo.arp_announce = 2
    net.ipv4.conf.all.arp_announce = 2
    [root@web2 ~]# sysctl -p
    [root@web2 ~]# systemctl restart NetworkManager

2)自定义Web页面

[root@web1 ~]# echo “192.168.0.1” > /var/www/html/index.html
    [root@web2 ~]# echo “192.168.0.2” > /var/www/html/index.html

3)启动Web服务器软件

[root@web1 ~]# systemctl start httpd; systemctl enable httpd
    [root@web2 ~]# systemctl start httpd; systemctl enable httpd

4)设置LVS调度器网络参数

[root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.10
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.254
    DNS1=202.106.0.20
    [root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0:0
    DEVICE=eth0:0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.253
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.254
    DNS1=202.106.0.20
    [root@lvs ~]# systemctl restart NetworkManager

5)设置Linux路由器网络参数

[root@router ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=202.114.106.20
    DNS1=202.106.0.20
    [root@router ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.254
    NETMASK=255.255.255.0
    DNS1=202.106.0.20
    [root@router ~]# systemctl restart NetworkManager

6)设置Linux路由器的SNAT、DNAT功能

[root@router ~]# sed -i '/ip_forward/s/0/1/'  sysctl.conf  //开启路由转发
    [root@router ~]# sysctl -p
    [root@router ~]# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -p tcp –j SNAT --to-source 202.114.106.20
    [root@router ~]# iptables -t nat -A PREROUTING -d 202.114.106.20 -p tcp --dport 80 –j DNAT --to-destination 192.168.0.253:80
    [root@router ~]# service iptables save

步骤二:调度器安装软件并启动服务

1)安装软件

[root@lvs Packages]# rpm –ihv ipvsadm-1.25-10.el6.x86_64.rpm

2)启动服务

[root@lvs Packages]# systemctl start ipvsadm
    [root@lvs Packages]# systemctl enable ipvsadm

步骤三:部署LVS-DR模式调度器

1)创建集群服务器

[root@lvs ~]# ipvsadm -A -t 192.168.0.253:80 -s wrr

2)添加真实服务器

[root@lvs ~]# ipvsadm -a -t 192.168.0.253:80 -r 192.168.0.1 -g -w 1
    [root@lvs ~]# ipvsadm -a -t 192.168.0.253:80 -r 192.168.0.2 -g -w 2

3)查看规则列表,并保存规则

[root@lvs ~]# ipvsadm –Ln
    [root@lvs ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm

步骤四:客户端测试

客户端使用curl命令反复连接http://202.114.106.20,查看访问的页面是否会轮询到不同的后端真实服务器。

Cluster基础(二):ipvsadm命令用法、部署LVS-NAT集群、部署LVS-DR集群的更多相关文章

  1. LVS集群的ipvsadm命令用法

    准备一台Linux服务器,安装ipvsadm软件包,练习使用ipvsadm命令,实现如下功能: - 使用命令添加基于TCP一些的集群服务 - 在集群中添加若干台后端真实服务器 - 实现同一客户端访问, ...

  2. ipvsadm命令用法

    ipvsadm命令选项 -A                         添加虚拟服务器 -E                         修改虚拟服务器 -D                 ...

  3. Linux基础(二)之命令

    01-基础命令 1. 创建一个目录 mkdir /data 创建多级目录 mkdir -p /oldboy/data 2. 查看目录里面的内容 ls /data 3. 查看目录里面的详细信息 ls - ...

  4. 二十六. 集群及LVS简介 LVS-NAT集群 LVS-DR集群

    方案:安装ipvsadm软件包,关于ipvsadm的用法可以参考man ipvsadm资料. 常用ipvsadm命令语法格式如表-1及表-2所示. 1.ipvsadm命令用法(proxy) 1.1 创 ...

  5. 负载均衡集群介绍、LVS介绍、LVS调度算法、LVS NAT模式搭建

    7月4日任务 18.6 负载均衡集群介绍18.7 LVS介绍18.8 LVS调度算法18.9/18.10 LVS NAT模式搭建 扩展lvs 三种模式详解 http://www.it165.net/a ...

  6. Vmware虚拟机配置LVS/NAT模式遇到的坑。

    这两天在研究LVS的负载均衡,先从最简单的LVS/NAT模式开始入手. 最后配置完之后能够相互之间Ping通,并且能够直接访问real服务器提供的web服务,而且防火墙也已经关闭了. 但是通过访问LV ...

  7. LVS集群ipvsadm命令和调度算法(6)

    一.ipvsadm命令参考 为了更好的让大家理解这份命令手册,将手册里面用到的几个术语先简单的介绍一下: 术语解释: 1.virtual-service-address:是指虚拟服务器的ip地址2.r ...

  8. Linux Cluster 基础之LVS调度算法与集群类型

    Linux Cluster 基础之LVS调度算法与集群类型 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.LB Cluster 1>.什么是LB LB 集群是 load ...

  9. lvs基本概念、调度方法、ipvsadm命令及nat模型示例

    LVS类型: NAT:-->(DNAT) DR TUN FULLNAT LVS的常见名词解释 CIP<-->VIP--DIP<-->RIP Direct Routing: ...

随机推荐

  1. 快速入门分布式消息队列之 RabbitMQ(1)

    目录 目录 前言 简介 安装 RabbitMQ 基本对象概念 Message 消息 Producer 生产者 Consumer 消费者 Queue 队列 Exchange 交换机 Binding 绑定 ...

  2. 阶段1 语言基础+高级_1-2 -面向对象和封装_16this关键字的作用

    this主要是在重名的情况下 ,起到区分的效果 新建demo04的包,里面新建类Person 通过this.进行区分 this关键字可以解决重名 分不开的问题 这里的person调用的sayHello ...

  3. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第4节 ArrayList集合_15-ArrayList集合存储基本数据

    泛型必须是引用类型,不能是基本类型 里面的泛型用int就会报错 集合里面保存的都是地址值.基本类型的数据没有地址值,所以你想要往里面存int是不可以的 基本类型可以往ArrayList里面放,但是必须 ...

  4. 阶段1 语言基础+高级_1-3-Java语言高级_03-常用API第二部分_第3节 Calendar类_1_Calendar类介绍_获取对象的方式

    Calendar.getInstance()返回的就是Calendar的子类对象.GregorianCalendar 说明Calendar类重写了toSting的方法 时区亚洲的上海

  5. Python 爬取淘宝商品数据挖掘分析实战

    Python 爬取淘宝商品数据挖掘分析实战 项目内容 本案例选择>> 商品类目:沙发: 数量:共100页  4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 爬取淘宝商品 ...

  6. 通过命令直接修改jar包中的静态文件

    1.先将要修改的jar包备份 copy xxx.jar xxx.jar_bak 2.建立一个新的目录便于后面的打包 mkdir jar_tmp 3.将包放到刚刚创建的目录里解压 mv xxx.jar ...

  7. 20191103 《Spring5高级编程》笔记-第4章

    第4章 详述Spring配置和Spring Boot 4.2 管理bean生命周期 通常,有两个生命周期事件与bean特别相关:post-initialization和pre-destruction. ...

  8. 基于Java的大整数运算的实现(加法,减法,乘法)学习笔记

    大整数,顾名思义就是特别大的整数. 一台64位的机器最大能表示的数字是2的64次方减一: 18446744073709551615 java语言中所能表示的整数(int)最小为-2147483648 ...

  9. Log4Net 之将自定义属性记录到文件中 (三)

    原文:Log4Net 之将自定义属性记录到文件中 (三) 即解决了将自定义属性记录到数据库之后.一个新的想法冒了出来,自定义属性同样也能记录到文件中吗?答案是肯定的,因为Log4Net既然已经考虑到了 ...

  10. .NET平台 C# ASP.NET

    .NET 平台 根据微软的定义: .NET is a“ revolutionary new platform, built on open Internet protocols and standar ...