LVS的NAT模型实战应用

简介: 一、具体来实现LVS二、实现图三、作业

LVS的NAT模型实战应用

 

 

目录:

一、具体来实现LVS

二、实现图

三、作业


一、具体来实现LVS

第一种NAT模型:NAT模型要想实现,去搭建一个网络拓扑。NAT模型通常认为LVS服务器两个网卡,一个连接外网,一个连接内网。

image.png

这边有一个客户端,他请求到VIP,LVS服务器有两个地址一个是VIP另一个是DIP,后端有两个Virtual Server,拓扑结构大体来看需要四个机器,对于LVS服务器来说,配置IP规则时主要是有两条命令,一个是A(定义集群服务,功能是定义到底是基于哪个协议来实现LVS,后面要写上服务器的地址)

 

ipvsadm命令

管理集群服务:增、改、删

增、改:

ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]删除:

ipvsadm -D -t|u|f service-address

service-address:

-t|u|f:

-t:TCP协议的端口,VIP:TCP_PORT

-u:UDP协议的端口,VIP:UDP_PORT

-f:firewall MARK,标记,一个数字

[-s scheduler]:指定集群的调度算法,默认为wlc

后端是web服务做VIPtcp80端口,当你访问时会转到后端的web服务器所以要写上t代表TCP协议

定义完之后,VIP用什么端口号?调度算法是什么?缺后端的virtual service?

所以需要配合另外一个命令——ipvsadm,-a要增加上面的集群服务-tTCP-uUDP后面要跟上服务器的地址(ip地址加端口号),在这个集群服务中告诉当前的集群服务谁是serverr就是server后面跟上它的地址。如果有两个server,这条命令要敲两遍。

ipvsadm工作模式有四种,要用哪种模式要通过[-g|i|m]来区分:

 

管理集群上的RS:增、改、删

增、改:ipvsadm -ale -t|u|f service-address -r server-address [-g|i|m][-w weight]

删:ipvsadm -d -t uf service-address -r server-address

server-address:

rip[:port]如省略port,不作端口映射

选项:

lvs类型:

-g:gatewaydr类型,默认

-i:ipip,tun类型

m: masquerade, nat类型

-w weight:权重

 

 

二、实现图:

image.png

1.这有两台机器,一个6.9拖过去当做客户端,另外三台机器分别充当serviceLVS服务器以及web服务器。

LVS地址改为192.168.30.200

网卡自动获取改为手工指定:

DEVICE=eth1

BOOTROTO=none

IPADDR=172.20.0.200

PREFIX=16

 

2.然后重新启动服务systemctl restart network


3.返回Centos7.4看地址,生效了。这个服务器要启用ip_forward:echo net.ipv4.ip_forward=1> /etc/sysctl.conf

生效:sysctl -p

        sysctl-a |grep ip_f

关闭防火墙:iptables -vnL

                  getenforce

 

4.接下来搭客户端

左边的机器当客户端桥接网卡,改地址:IPADDR=172.20.0.123

PREFIX=16

service network restart

service network restart

ip a

ping172.20.0.200(curl不行,没网站)

把后面两台主机(1727)装两个服务

 

17:

\>

route -n

vieo

添加GETAWAY=192.168.30.200

systemctl restart network

yum install httpd -y

y

改主机名:hostnamectl set-hostname RS1

echo RS1 > /var/www/html/index.html

重新启动:systemctl start httpd

正常情况下两个网站的内容一模一样,为了看到效果必须把网页改成不一样

27:

vieo

添加GETAWAY=192.168.30.200

systemctl restart network

yum install httpd -y

y

改主机名:hostnamectl set-hostname RS2

echo RS2 > /var/www/html/index.html

重新启动:systemctl start httpd

ss -ntl

 

5.LVS服务器中直接去访问后端的两个搭好的web服务器,能看到它们的页面

curl 192.168.30.17

curl 192.168.30.27

缺调度,直接从后端访问是不行的

 

6.定义ipvs规则

在上面装ipvs

192.168.30.200中写

yum install ipvsadm

ipvsadm -A -t 172.20.0.200:80 -s rr

ipvsadm -nL

ipvsadm -Ln

iptables - vnL

ipvsadm -Ln

ipvsadm -a -t 172.20.0.200:80 -r 192.168.30.17 -m要和前面对应

ipvsadm -a -t 172.20.0.200:80 -r 192.168.30.27 -m集群服务可以调动的目标组机

ipvsadm -Ln看成功没

 

7.测试,在172.20.0.123中写

curl 172.20.0.200

curl 172.20.0.200

curl 172.20.0.200允许

在后端192.168.30.17上它看到的日志是谁,也CIP发出的请求

tail -f /var/log/httpd/access_log

 

8.172.20.0.123

ping 172.20.0.200不起作用,发布的是TCP80,只有访问TCP80才转发

 

9.实现了NAT模式

如果中间加个路由器,相当于内部有两个网络

image.png


10.centos6.9中加路由器

自定义一个网卡(VMnet6)centos7.4也一样

地址改为192.168.0.200

加网关GATEWAY=192.168.0.201

vieo

systemctl restart network

ip a

route

中间这个路由器应该有两个网卡

 

11.加路由,加默认网关

route -add default gw 192.168.0.200

vim /etc/sysctl conf把数字0变为1

sysctl -p生效数字

getenforce Enforcing

iptables -vnL

setenforce 0

vi /etc/sysconfig/selinux

SELINUX=enforcing改为disabled

 

12.centos7.4中调度算法

ip a

tcpdum -i eth0 -nn看内网

curl 172.20.0.200

curl 172.20.0.200

curl 172.20.0.200成功

 

13.改端口,在192.168.30.17

vi /etc/httpd/conf/httpd.conf

改成8080

systemctl restart httpd

 

14.改服务器调度的地址

ipvsadm -e -t 172.20.0.200:80 -r 192.168.30.17:8080 -m直接改不行,要先删除

ipvsadm -d -t 172.20.0.200:80 -r 192.168.30.17:80

ipvsadm -a -t 172.20.0.200:80 -r 192.168.30.17:8080 -m

 

15.加权重,改调度算法

ipvsadm -E -t 172.20.0.200:80 -s wrr

ipvsadm -d -t 172.20.0.200:80 -r 192.168.30.17:8080删除

ipvsadm -a -t 172.20.0.200:80 -r 192.168.30.17:8080 -m -w 3重加权重,没定义默认是一,来测试一下,当访问时是3:1

 

16.原地址哈希:

源地址哈希算法:只要客户端是同一个ip地址,永远访问的是同一个servers.只要是同一个ip客户端永远往一个固定的server来调度。现在往一个方向调度,就要换成sh算法,

ipvsadm -E -t 172.20.0.200.80 -s sh

ipvsadm -Ln

 

17.目标地址哈希:

将发往同一个目标地址的请求始终转发至第一次挑中的RS,典型使用场景是正向代理缓存场景中的负载均衡,如宽带运营商

只要访问的目标地址是固定的,永远往固定上去调度,要想实现功能,先模拟,创建十个页面,从test1test10

cd /var/www/html

ls

for i in {1..10};do echo test$i on RS1 >test$i.html ;done

ls生成十个文件

cat test1.html

 

在另一台主机上同上,把RS1改为RS2

去访问这些主机,把命令sh改为dh

ipvsadm -E -t 172.20.0.200.80 -s dh

调度时:curl 172.20.0.200/test1.htmlRS1,全是RS1

不同的目标地址调度到不同的主机上

先把权重比例删除,不要权重,比例为1:1再调度还是RS1,有可能是记住了

 

重启ipvsadm .service

systemctl restart ipvsadm .service

ipvsadm -Ln

再重启reboot,让它丢了再缓存,重启后所有的规则全丢了

重启完毕后,通了重加

ipvsadm -Ln

ipvsadm -A -t 172.20.0.200:80 - s dh

ipvsadm -a -t 172.20.0.200:80 - r 192.168.30.17:8080 -m

ipvsadm -a -t 172.20.0.200:80 - r 192.168.30.27:80 -m

ipvsadm -Ln

再调度

curl 172.20.0.200/test1.html一旦调度到1上永远是1

 

 

三、作业:

实验:实现NAT模式的LVS

image.png

主要是需要在LVS上加路由器,指向web,中间的路由器指向172.20.0.123

 

步骤:

1.LVS

ip_forward=1

route add default gw 192.168.0.201

ipvsadm -A -t 172.20.0.200:80 -s wrr

ipvsadm -a -t 172.20.0.200:80 -r 192.168.17:8080 -m

ipvsadm -a -t 172.20.0.200:80 -r 192.168.27:80 -m


2.router

ip_forward=1

route add de gw 192.168.0.200

相关文章
|
4月前
|
负载均衡 应用服务中间件 Linux
企业实战(13)LVS负载均衡NAT(网络地址转换)模式实战详解(一)
企业实战(13)LVS负载均衡NAT(网络地址转换)模式实战详解(一)
|
4月前
|
存储 负载均衡 网络协议
企业实战(13)LVS负载均衡DR(直接路由)模式实战详解(二)
企业实战(13)LVS负载均衡DR(直接路由)模式实战详解(二)
|
5月前
|
存储 负载均衡 应用服务中间件
LVS负载均衡群集——NAT模式实操
LVS负载均衡群集——NAT模式实操
107 0
|
安全 网络协议 网络安全
思科防火墙应用NAT
思科防火墙应用NAT
100 0
思科防火墙应用NAT
|
存储 负载均衡 并行计算
LVS负载均衡群集——NAT模式实例
LVS负载均衡群集——NAT模式实例
190 0
LVS负载均衡群集——NAT模式实例
|
弹性计算 容灾 网络安全
VPC+NAT 网络实现多应用共享公网带宽|学习笔记
快速学习 VPC+NAT 网络实现多应用共享公网带宽
157 0
VPC+NAT 网络实现多应用共享公网带宽|学习笔记
|
负载均衡 调度
LVS负载均衡群集——NAT模式实操(下)
一、群集概述 1.1 群集的含义 Cluster,集群、群集 由多台主机构成,但对外只表现为一一个整体,只提供一-个访问入口(域名或IP地址), 相当于一台大型计算机。
157 0
|
存储 负载均衡 算法
LVS负载均衡群集——NAT模式实操(上)
一、群集概述 1.1 群集的含义 Cluster,集群、群集 由多台主机构成,但对外只表现为一一个整体,只提供一-个访问入口(域名或IP地址), 相当于一台大型计算机。
136 0
|
存储 负载均衡 算法
LVS负载均衡群集及LVS-NAT部署(热爱漫无边际,生活自有分寸)(二)
LVS负载均衡群集及LVS-NAT部署(热爱漫无边际,生活自有分寸)(二)
84 0
LVS负载均衡群集及LVS-NAT部署(热爱漫无边际,生活自有分寸)(二)
|
存储 负载均衡 网络协议
LVS负载均衡群集及LVS-NAT部署(热爱漫无边际,生活自有分寸)(一)
LVS负载均衡群集及LVS-NAT部署(热爱漫无边际,生活自有分寸)(一)
189 0
LVS负载均衡群集及LVS-NAT部署(热爱漫无边际,生活自有分寸)(一)