Bootstrap

ipvsadm命令用法 部署LVS-NAT集群 部署LVS-DR集群

###################################################

cluster  集群与存储

day 02

一、集群  LVS

 

什么是集群

用网络把一堆服务器连起来,对外提供同样的服务,相同的内容。

集群目的

提高性能,提高负载能力,增加可靠性提高可扩展性,冗余,避免单点故障,提升单机能力,降低成本

任务调度是集群系统中的核心技术。

集群的类型

高性能计算 HPC集群  high  performance  computer    通过以集群开发的并行应用程序,解决负载的科学问题。

负载均衡LB集群     load balance    客户端负载在计算机集群中尽可能平均分摊。

web服务

高可用HA集群     high  avariablity  避免单点故障,当一个系统发生故障时,可以快速迁移。(一主一备) 数据库、调度器

 

LVS概述---负载均衡

linux虚拟机服务器(LVS)是章文嵩在国防科技大学就读博士期间创建的

LVS可以实现高可用的,可伸缩的webmailcachemedia等网络服务

最终目标是利用linux操作系统和lvs集群软件实现一个高可用、高性能、低成本的服务器应用集群

LVS集群组成

前端:负载均衡层 --由一台或多台负载调度器构成

中间:服务器群组层 --由一组实际运行应用服务的服务器组成

底端:数据共享存储层 --提供共享存储空间的存储区域

LVS术语

director  server 调度服务器  --将负载分发到real server的服务器

real server 真实服务器 --真正提供应用服务的服务器

VIP 虚拟IP地址 --公布给用户访问的虚拟IP地址

RIP 真实IP地址 --集群节点上使用的IP地址

DIP 调度器连接节点服务器的IP地址

LVS工作模式:

NAT 模式 -通过网络地址转换实现的虚拟服务器;大并发访问时,调度器的性能成为瓶颈

DR模式 -直接使用路由技术实现虚拟服务器;节点服务器需要配置VIP,注意MAC地址广播

TUN模式-通过隧道方式实现虚拟服务器(不常用)

负载均衡调度算法

 LVS目前实现了10种调度算法,常用调度算法有4

rr 轮询 round robin --将客户端请求平均分发到real server

wrr加权轮询 weighted round robin  --根据real server 权重进行轮询调度

lc 最少连接 least connections --选择连接数最少的服务器

wlc加权最少连接Weighted  Least-Connection --根据real server权重值,选择连接数最少的服务器

sh源地址散列 source hashing  --根据请求的目标,作为散列键(hash key)从静态分配的散列表找出对应的服务器。

dh目标地址散列 destination  hashing

lblc基于局部性的最少链接Locality-Based  Least-Connection

lblcr带复制的基于局部性最少链接  Locality-Based  Least-Connection   with   Replication

sed最短的期望的延迟Shortest Expected Delay

nq最少队列调度Never Queue

 

最少连接:谁的连接少发给谁

加权:看性能

 

 

业务驱动技术

《大型网站技术架构》      阿里 李志慧

《分布式大型网站技术架构》

 

$3000 PHP  LAMP

JSP

IBM小型机:AIX

ORACLE数据库

EMC存储:收购wmware

阿里  IOE运动: IBM  Oracle   EMC

 

mysql--2  memcache --1  web--2  squid/varnish--4    调度器LVS--2(主备)

CDN内容分发网络,让不同地域的用户总是访问离他最近的缓存节点服务器

 

PC服务器:X86架构服务器

AliSql

 

负载均衡调度器:F5LVSHAProxynginx

 

准备三台虚拟机:1台作为 director调度器,2台作为real server真实服务器,物理机作为客户端

real server安装httpd服务,每台服务器的主页内容不同,以便于验证LVS配置

1 director 上安装双网卡,并将其配置为NAT模式;集群使用加权轮询调度算法,真实服务器权重与其IP地址末尾数一致。

2 real server上配置好VIP、调整内核参数,在director上配置负载平衡模式为DR模式。

 

 

二、LVS nat模式

2.1准备

1、准备三台虚拟机

vh01.tedu.cn 192.168.4.1

2、初始化配置

防火墙、selinuxIP地址、主机名、YUM

3、在vh01上配置数据库

[root@vh01 ~]# yum install -y mariadb-server

[root@vh01 ~]# systemctl start mariadb

[root@vh01 ~]# systemctl enable mariadb.service

[root@vh01 ~]# mysql -uroot

MariaDB [(none)]> grant all on *.* to 'admin'@'192.168.4.2' identified by 'tedu.cn';

MariaDB [(none)]> grant all on *.* to 'admin'@'192.168.4.3' identified by 'tedu.cn';

4、在两台web服务器上安装软件包并启动服务

[root@vh02 ~]# yum install -y httpd php php-mysql

[root@vh02 ~]# systemctl start httpd

[root@vh02 ~]# systemctl enable httpd.service

5、在vh02上安装Discuz

[root@vh02 ~]# unzip Discuz_X3.0_SC_UTF8.zip

[root@vh02 ~]# cp -r upload/  /var/www/html/bbs

[root@vh02 bbs]# firefox http://192.168.4.2/bbs &

改权限,web页面中权限不满足要求的数据复制到/var/www/html/a.txt

[root@vh02 bbs]# vim /var/www/html/a.txt

[root@vh02 bbs]# chmod 777 $(awk '{print $1}' /var/www/html/a.txt)

[root@vh02 bbs]# systemctl restart httpd

[root@vh02 bbs]# firefox http://192.168.4.2/bbs

数据库服务器192.168.4.1;数据库名admin ;密码tedu.cn ;下面admin密码

6、vh02上的bbs目录打包拷贝到vh03,解压缩

[root@vh02 bbs]# firefox http://192.168.4.3/bbs

管理中心、论坛--技术论坛   网络技术  linux系统管理  休闲灌水区  游戏   笑话

 

LVSIP负载均衡技术是通过IPVS模块实现的

IPVS模块已成为linux组成部分

# grep -i 'ipvs' /boot/config-3.10.0-327.el7.x86_64

 

2.2部署LVS调度器

real server: 配置web服务器

director server:安装并启用ipvsadm、创建虚拟服务器、向虚拟服务器中加入节点

1、修改web服务器网关

# LANG=C nmtui  192.1681.4.4

# ifdown eth0; ifup eth0 

# route  -n

[root@vh02 ~]# echo web02 > /var/www/html/index.html

[root@vh03~]# echo web03 > /var/www/html/index.html

2、配置调度器有双网卡地址

eth0:92.1681.4.4/24

eth2: 201.1.1.4/24  

3、调度器打开路由转发功能(rhel7中默认打开,不需要配置)

[root@vh04 ~]# sysctl -a | grep ip_forward   查看

[root@vh04 ~]# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf

[root@vh04 ~]# sysctl -p

 

4、调度器安装lvs

[root@vh04 ~]# yum install -y ipvsadm

5、配置-编写lvs规则

   -A 添加虚拟服务器     -t设置群集地址(VIP)   -s指定负载调度算法

  -a 添加真实服务器    -d删除真实服务器    -r 指定真实服务器的地址

 -m 使用NAT模式;-g-i分别对应DRTUN模式     -w 权重,默认为1

[root@vh04 ~]# man  ipvsadm

创建虚拟服务器,VIP201.1.1.4 ,采用的调度算法是轮询

[root@vh04 ~]# ipvsadm -A -t 201.1.1.4:80 -s rr

向虚拟服务器中加入节点,并指定权重分别为12

[root@vh04 ~]# ipvsadm -a -t 201.1.1.4:80 -r 192.168.4.2 -m -w 2

[root@vh04 ~]# ipvsadm -a -t 201.1.1.4:80 -r 192.168.4.3 -m

6、验证(ctrl+f5刷新缓存连接)

[root@vh04 ~]# ipvsadm -Ln   //查看配置

7、保存配置,重启服务

[root@vh04 bin]# /sbin/ipvsadm-save -n > /etc/sysconfig/ipvsadm

[root@vh04 bin]# systemctl status ipvsadm  -l 

[root@vh04 bin]# systemctl restart ipvsadm.service

9、修改调度算法为lc

[root@vh04 bin]# ipvsadm -E -t 201.1.1.4:80 -s lc

 

10使用ab进行大并发测试,每次发送10个请求,一共发送100

[root@room9pc16 ~]# ab -n 100 -c 10 http://201.1.1.4/

[root@room9pc16 ~]# firefox http://201.1.1.4

[root@room9pc16 ~]# firefox http://201.1.1.4/bbs &

 

使用脚本监视web服务器运行状况,并自动添加删除故障服务器

脚本的运行方式--交互/非交互; set noai , set nu , 9.12s/^/ /

# vim ~/.vimrc

set ai

set tabstop=4

set expandtab

 每隔1秒运行一次ipvsadm -Ln

 

#!/bin/bash

RIP1=192.168.4.2

RIP2=192.168.4.3

VIP=201.1.1.4:80

 

while :

do

    for ip in $RIP1 $RIP2

    do

        curl http://$ip &> /dev/null

        retval=$?

        ip_in_lvs=$(ipvsadm -Ln | grep $ip)

 

        if [ $retval -ne 0 -a -n "$ip_in_lvs" ]; then

            ipvsadm -d -t $VIP -r $ip

        elif [ $retval -eq 0 -a -z "$ip_in_lvs" ]; then

            ipvsadm -a -t $VIP -r $ip -m

        fi

    done

    sleep 5

done

 

[root@vh04 bin]# watch -n 1 ipvsadm -Ln

[root@vh04 bin]# jobs

[1]+  运行中               bash monitor_web.sh &

[root@vh04 bin]# kill %1

 

 

三、LVS DR模式

 

ARP广播的问题

当客户端发起访问VIP对应的域名的请求时,根据网络通行原理会产生ARP广播

因为负载均衡器和真实的服务器在同一网络并且VIP设置在集群中的每个节点上

此时集群内的真实服务器会尝试回答来自客户端的ARP广播,这就会产生问题,大家都说我是VIP

arp_ignore 定义回复ARP广播的方式  0默认值   回应所有的本地地址ARP广播,本地地址可以配置在任意网络接口;1 只回应配置在入站网卡接口上的任意IP地址的ARP广播

arp_announce 0默认  使用配置在任意网卡接口上的本地IP地址; 2 对查询目标使用最适当的本地地址。在此模式下将忽略这个IP数据包的源地址并尝试选择能与该地址通信的本地地址。

 

real server:配置web服务器 、配置辅助IP地址、调整内核参数

director server:安装并启用ipvsadm、配置辅助IP地址、创建虚拟服务器、向虚拟服务器中加入节点

 

1、清理vh04的配置,清除201.1.1.4ip地址,清除LVS规则

如果后台脚本还在运行,先杀掉后台进程

 

[root@vh04 bin]# jobs

[1]+  运行中               bash monitor_web.sh &

[root@vh04 bin]# kill %1

 

web服务器eth0网关

# LANG=C nmtui  192.1681.4.4

# ifdown eth0; ifup eth0 

# route  -n

[root@vh02 ~]# echo web02 > /var/www/html/index.html

[root@vh03~]# echo web03 > /var/www/html/index.html

 

清除IP地址

[root@vh04 bin]# vim /etc/sysconfig/network-scripts/ifcfg-eth2

[root@vh04 bin]# ifdown eth2

清除规则

[root@vh04 bin]# ipvsadm -D -t 201.1.1.4:80

[root@vh04 bin]# systemctl restart ipvsadm.service

[root@vh04 bin]# ipvsadm -Ln

2、在调度器上配置vip  公布给用户访问的虚拟IP地址

[root@vh04 ~]# cd /etc/sysconfig/network-scripts/

[root@vh04 network-scripts]# cp ifcfg-eth0 ifcfg-eth0:0

[root@vh04 bin]# cp /etc/sysconfig/network-scripts/ifcfg-eth0{,:0}

[root@vh04 bin]# vim /etc/sysconfig/network-scripts/ifcfg-eth0:0

修改以下三行

NAME=eth0:0

DEVICE=eth0:0

IPADDR=192.168.4.100

[root@vh04 bin]# ifup eth0:0

3、在web服务器上配置vip

[root@vh02 ~]# cp /etc/sysconfig/network-scripts/ifcfg-lo{,:0}

[root@vh02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0

DEVICE=lo:0

IPADDR=192.168.4.100

NETMASK=255.255.255.255         //只有自己

NETWORK=192.168.4.100

BROADCAST=192.168.4.100   //广播

ONBOOT=yes

NAME=lo:0

[root@vh02 ~]# ifup lo:0   //忽略提示

[root@vh02 ~]# scp /etc/sysconfig/network-scripts/ifcfg-lo:0 192.168.4.3:/etc/sysconfig/network-scripts/

[root@vh03 ~]# ifup lo:0

4、在两台web服务器上修改内核参数

[root@vh02 ~]# sysctl -a | grep arp_ig

[root@vh02 ~]# echo 'net.ipv4.conf.all.arp_ignore = 1' >> /etc/sysctl.conf

[root@vh02 ~]# echo 'net.ipv4.conf.lo.arp_ignore = 1' >> /etc/sysctl.conf

[root@vh02 ~]# sysctl -a | grep arp_an

[root@vh02 ~]# echo "net.ipv4.conf.all.arp_announce = 2" >> /etc/sysctl.conf

[root@vh02 ~]# echo "net.ipv4.conf.lo.arp_announce = 2" >> /etc/sysctl.conf

[root@vh02 ~]# sysctl -p

5、配置LVS规则,不写或者使用-g选项,都表示DR模式

[root@vh04 bin]# ipvsadm -A -t 192.168.4.100:80 -s lc

[root@vh04 bin]# ipvsadm -a -t 192.168.4.100:80 -r 192.168.4.2 -g

[root@vh04 bin]# ipvsadm -a -t 192.168.4.100:80 -r 192.168.4.3 -g

[root@vh04 bin]# ipvsadm -Ln

[root@room9pc16 ~]# firefox http://192.168.4.100

[root@room9pc16 ~]# firefox http://192.168.4.100/bbs &

 

 

 

设置Linux路由器的SNATDNAT功能

 

    [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

 

 

 

Top 

NSD CLUSTER DAY02

ipvsadm命令用法 

部署LVS-NAT集群 

部署LVS-DR集群 

1 ipvsadm命令用法

1.1 问题

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

使用命令添加基于TCP一些的集群服务

在集群中添加若干台后端真实服务器

实现同一客户端访问,调度器分配固定服务器

会使用ipvsadm实现规则的增、删、改

保存ipvsadm规则

1.2 方案

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

表-1 ipvsadm语法格式

 

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:使用命令增、删、改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

2 部署LVS-NAT集群

2.1 问题

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

集群对外公网IP地址为202.114.106.20

调度器内网IP地址为192.168.0.254

真实Web服务器地址分别为192.168.0.1192.168.0.2192.168.0.3

使用加权轮询调度算法,真实服务器权重与其IP地址末尾数一致

2.2 方案

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

 

-1

2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:配置网络环境

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,查看访问的页面是否会轮询到不同的后端真实服务器。

3 部署LVS-DR集群

3.1 问题

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

路由器对外公网IP地址为202.114.106.20

路由器内网IP地址为192.168.0.254

路由是需要设置SNATDNAT功能

LVS调度器真实IP地址为192.168.0.10

LVS调度器VIP地址设置为192.168.0.253

真实Web服务器地址分别为192.168.0.1192.168.0.2

使用加权轮询调度算法,真实服务器权重与其IP地址末尾数一致

3.2 方案

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

 

-2

3.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:配置网络环境

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,查看访问的页面是否会轮询到不同的后端真实服务器。

 

转载于:https://www.cnblogs.com/fuzhongfaya/p/8953217.html

;