NAT模式

1.模拟环境:

LVS服务器有两块网卡,连接外网(用户端)和内网(服务器),充当"交警"角色.
优点: 节省ip开销
缺点: LVS服务器负载过高,数据吞吐量降低
三台Linux虚拟机:
LVS服务器(vmnet1 ip: 200.168.10.10 , vmnet2 ip: 192.168.10.1)
WEB服务器1(vmnet2 ip: 192.168.10.2)
WEB服务器2(vmnet2 ip: 192.168.10.3)
本地真实机: 外网用户(vmnet1 ip: 200.168.10.2)

2.准备:

a) 关闭防火墙
# service iptables stop
# vi /etc/selinux/config (设置 SELINUX=disabled)
b) 建立网页文件
# vi /var/www/html/index.html
(两台web服务器的index.html内容要差异化...)
c) 安装 ipvsadm 软件
# yum -y install ipvsadm*

3.配置LVS/WEB服务器:

a) LVS: 开启路由转发功能
# echo 1 > /proc/sys/net/ipv4/ip_forward
b) WEB: 设置网关
# route add default gw 192.168.10.1
(因为它在内网,它的数据得经过LVS服务器到外网去!)
c) 在LVS服务器上,ping内网和外网,看是否能通?

4.设置LVS服务器的转发规则:

#!/bin/bash
#lvs.sh
ipvsadm -At 200.168.10.10:80 -s rr
ipvsadm -at 200.168.10.10:80 -r 192.168.10.2:80 -m
ipvsadm -at 200.168.10.10:80 -r 192.168.10.3:80 -m
ipvsadm
# chmod a+x lvs.sh
./lvs.sh
-s 模式 rr 轮询
-r 真实服务器 -m 模式

5.测试:

外网用户访问 200.168.10.10
(如果操作正确,每刷新一次会显示不同内容,因为web服务器有2台,它们是轮流应答的!!)

TUN模式

1.模拟环境: LVS服务器和WEB服务器都设置为公网IP(有点:web服务器的返回数据不经过LVS服务器,二是直接给外网用户,数据吞吐量较NAT模式增加10倍!)

三台Linux虚拟机:
LVS服务器:(vmnet1 ip: 200.168.10.1)
WEB服务器1:(vmnet1 ip: 200.168.10.2)
WEB服务器2:(vmnet1 ip: 200.168.10.3)
本地真实机: 外网用户(vmnet1)

2.思考一个问题:

三台服务器全部在公网,用户访问时,怎么知道该访问哪一台WEB服务器 ; 即使知道要访问的是LVS服务器,那LVS怎么知道要去找哪一台WEB服务器呢?

3.写两个脚本: lvs.sh在LVS服务器执行,arp.sh在WEB服务器执行

#!/bin/bash
#lvs.sh
ifconfig tunl0 200.168.10.10 netmask 255.255.255.255 up
route add -host 200.168.10.10 dev tunl0
ipvsadm -At 200.168.10.10:80 -s rr
ipvsadm -at 200.168.10.10:80 -r 200.168.10.2:80 -i
ipvsadm -at 200.168.10.10:80 -r 200.168.10.3:80 -i
ipvsadm -L -n
#!/bin/bash
#arp.sh
ifconfig tunl0 200.168.10.10 netmask 255.255.255.255 up
route add -host 200.168.10.10 dev tunl0
echo 1 > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
当交换机问"谁是10.10",作arp忽略
echo 2 > /proc/sys/net/ipv4/conf/tunl0/arp_announce
当LVS问谁是"10.2",作arp宣告
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

4.测试: 用户访问 200.168.10.10

DR模式

1.模拟环境:

a) 在TUN模式上,把tunl0网卡都关闭,改用回环网卡,兼容性更强
b) 网络环境与TUN模式一致

2.写两个脚本:

#!/bin/bash
#lvs.sh
ifconfig eth0:0 200.168.10.10 netmask 255.255.255.255 up
route add -host 200.168.10.10 dev eth0:0
ipvsadm -At 200.168.10.10:80 -s rr
ipvsadm -at 200.168.10.10:80 -r 200.168.10.2:80 -g
ipvsadm -at 200.168.10.10:80 -r 200.168.10.3:80 -g
ipvsadm -L -n
#!/bin/bash
#arp.sh
ifconfig lo:0 200.168.10.10 netmask 255.255.255.255 up
route add -host 200.168.10.10 dev lo:0
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

3.测试: 用户访问 200.168.10.10

;

lvs虚拟服务器的更多相关文章

  1. [Linux] LVS虚拟服务器四层负载均衡

    随着互联网的爆炸性增长及其在我们生活中日益重要的作用,互联网上的流量急剧增加,并且每年以超过100%的速度增长.服务器上的工作负载正在迅速增加,因此服务器很容易在短时间内过载,尤其是对于流行的网站.为 ...

  2. Linux虚拟服务器--LVS

    LVS 百科名片 LVS是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立,可以实现LINUX平台下的简单负载均衡.LVS是Linux Virtual Server的缩写,意思是L ...

  3. LVS (Linux虚拟服务器)模型及算法

    LVS(Linux Virtual Server)Linux虚拟服务器 LVS集群采用IP负载均衡技术和基于内容请求分发技术. 用户请求发给负载均衡调度器,由负载均衡调度器根据设定的调度算法将请求发给 ...

  4. LVS (Linux虚拟服务器)-不同的负载均衡方法

    随着Internet用户的增长,基于Web的公司处理的通信量急剧增加.有各种解决方案来应对这种不断增长的流量. 一种解决方案是垂直扩展服务器(即:简单地向服务器添加更多的CPU和内存资源.)当然在一定 ...

  5. Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台 Seesaw

    负载均衡系统 Seesaw Seesaw是由我们网络可靠性工程师用 Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台,就像所有好的项目一样,这个项目也是为了解决实际问题而产生的. Seesa ...

  6. macOS apache配置及开启虚拟服务器的开启,apache开启重写模式

    今天把自己的mac系统升到最新版,但是,apache却不能用了,因为mac上的apache是系统自带的,因为是mac目前的最新系统,所以出现了好多问题,整理了一下午也没有啥进展,最后还是把原来的在云盘 ...

  7. Nginx的虚拟服务器域名配置

    虚拟服务器名(server name)是通过指令server_name来指定的.在< Nginx是如何处理Request的?>一节中,我们讲到nginx分两步来匹配过来的Request请求 ...

  8. C# 构建S7服务器 西门子的虚拟服务器 测试通讯 HslCommunication应用

    本文将使用一个gitHub开源的组件技术来实现S7服务器的功能,使用的是基于以太网的TCP/IP实现,不需要额外的组件 github地址:https://github.com/dathlin/HslC ...

  9. vps 虚拟服务器 教程 ( Virtual Private Server 虚拟专用服务器 )

    VPS是虚拟服务器的意思.他是通过软件在独立服务器上划分出来的一部分资源.从而虚拟出一个服务器.他拥有独立的IP.独立的操作系统.以及用户名和密码.在功能和使用方法上与服务器一模一样.用户也可以根据自 ...

随机推荐

  1. Linux系统日常运维-修改IP地址

    分享下高手写的很好的文章 IP地址.子网掩码.网络号.主机号.网络地址.主机地址 step 0: check the iptables.selinux service iptables iptable ...

  2. Network | 协议栈

    因特网协议栈Internet protocol stack: 应用层Application layer.运输层Transport layer.网络层Network layer.链路层Data link ...

  3. mybatis反向工程

    首先创建一个test类: 在main方法里写上如下代码: List <String> warnings = new ArrayList <String>(); boolean ...

  4. the Red Sun

    题面 Description 给定一张 N 个点的图, 点的标号为 1 到 n . 我们进行 M 次连边, 每次连边可以描述为 a b c d w : for i = a to b do for j ...

  5. ios开发 - 获取从http上下载文件的大小

    - (void)connectionNSURLConnection *)connection didReceiveResponseNSURLResponse *)response{ NSHTTPURL ...

  6. MFC中 报错:error : bitmap file Res\tankBattle.ico is not in 3.00 format

    今天换了一个ico图标,本来源图像是bmp的,让我改了后缀名成ico. 然后编译就报错了:error : bitmap file Res\tankBattle.ico is not in 3.00 f ...

  7. 12.【nuxt起步】-接口请求重构

    用store把api数据交互部分重构出来,让前端更轻一点 新建 /store/gettter.js /store/actions.js /server/config/index.js Index.js ...

  8. suid sgid sbit chattr lsattr find

    suid 一般用于二进制可执行文件不可用于shell脚本和目录,suid代表当用户执行此二进制文件时,暂时具有此文件所有者的权限 chmod 4xxx binfile sgid 一般用于目录,sgid ...

  9. (转)来自互联网巨头的46个用户体验面试问题(谷歌,亚马逊,facebook及微软)

    原文出处: uxdesign - Eleonora Zucconi   译文出处:UXRen - 邓俊杰 如果你是个正在找工作的用户体验研究员,或是一个招聘经理正急需一些启发性问题来测试你的候选人,这 ...

  10. 4种使用webpack提升vue应用的方式

    本文参考自:https://mp.weixin.qq.com/s?src=11&timestamp=1526886111&ver=889&signature=u9SixhvlJ ...