lvs之NAT模式及TUN模式

Lvs

LVS服务器可以让客户端将LVS服务器作为一个连接的单点,仅仅通过连接LVS服务器便可以得到后端一整个服务器集群的处理与存储能力,这样能够大大提高系统的扩展性与可用性,同时也能够提供服务的安全性,单一入侵一台服务器并不会破坏其他与该服务器隔离的服务。

LVS的模式

LVS可以支持如下三种模式:

LVS/NAT:

通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。

LVS/TUN:

采用NAT技术时,由于请求和响应报文都必须经过调度器地址重写,当客户请求越来越多时,调度器的处理能力将成为瓶颈。为了解决这个问题,调度器把请求报 文通过IP隧道转发至真实服务器,而真实服务器将响应直接返回给客户,所以调度器只处理请求报文。由于一般网络服务应答比请求报文大许多,采用 VS/TUN技术后,集群系统的最大吞吐量可以提高10倍。

LVS/DR:

VS/DR通过改写请求报文的MAC地址,将请求发送到真实服务器,而真实服务器将响应直接返回给客户。同VS/TUN技术一样,VS/DR技术可极大地 提高集群系统的伸缩性。这种方法没有IP隧道的开销,对集群中的真实服务器也没有必须支持IP隧道协议的要求,但是要求调度器与真实服务器都有一块网卡连 在同一物理网段上。

DR在上篇博文中已经详细描述过搭建过程了,这篇我们呢,详细描述NAT以及TUN 的搭建过程

NAT:

1.客户端将访问vip报文发送给LVS服务器;

2.LVS服务器将请求报文的目的地址修改为后端真实服务器(DNAT),发送给后端真实服务器;

3.后端服务器在处理完之后要将响应的报文返回给客户端,但是却不在同一网段;

4.LVS根据自己的追踪技术将后端真实服务响应客户端的报文原地址改为自己的ip地址(SNAT),发送给客户端。

要求: 1.LVS服务器需要有不同的网段。

2.真实服务器的网关必须设置为LVS的ip地址。

优点: 1.安全 2.可以实现不同网段的数据请求。

缺点: 因为在 VS/NAT 中请求和响应报文都需要通过负载调度器,伸缩能力有限, 当服务器结点数目升到 20 时,调度器本身 有可能成为系统的新瓶颈。
 

如下图所示,这是LVS-NAT模式下的系统结构图:

lvs之NAT模式及TUN模式_第1张图片

具体搭建过程:

搭建环境:

调度器:server1:双网卡eth1:172.25.11.1 添加的网卡eth2:172.25.254.100

realserver1:172.25.11.2

realserver2:172.25.11.3

 

在server1

首先配置yum源:

lvs之NAT模式及TUN模式_第2张图片

yum repolist:

lvs之NAT模式及TUN模式_第3张图片

安装软件:

yum install -y ipvsadm  安装ipvsadm

/etc/init.d/ipvsadm start     启动服务

再添加一块网卡:

设置IP为:172.25.254.100

ipvsadm -A -t 172.25.254.100:80 -s rr

ipvsadm -a -t 172.25.254.100:80 -r 172.25.11.2:80 -m

ipvsadm -a -t 172.25.254.100:80 -r 172.25.11.3:80 -m

ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  172.25.254.100:80 rr

  -> 172.25.11.2:80               Masq    1      0          0         

  -> 172.25.11.3:80               Masq    1      0          0    

 

打开路由器: vim /etc/sysctl.conf

sysctl –p

lvs之NAT模式及TUN模式_第4张图片

server2中:

yum install httpd -y

/etc/init.d/httpd start

 cat index.html 

www.westos.org server2

设置网关指向vs

cat /etc/sysconfig/network-scripts/ifcfg-eth0 

DEVICE=eth1

ONBOOT="yes"

BOOTPROTO="static"

IPADDR=172.25.11.2

PREFIX=24

GATEWAY=172.25.11.1

如果网关设置成功

ping 172.25.254.100会成功

在server3上:

yum install httpd -y

/etc/init.d/httpd start

cd /var/www/html/

cat index.html 

www.bbs.org server3

/etc/init.d/httpd restart

设置网关:

 cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth1

ONBOOT="yes"

BOOTPROTO="static"

IPADDR=172.25.11.3

PREFIX=24

GATEWAY=172.25.11.1

如果网关设置成功

ping 172.25.254.100会成功

 

 

测试:真机

curl 172.25.254.100出现轮询即可

lvs之NAT模式及TUN模式_第5张图片

TUN

LVS/TUN的工作流程图如下所示,它和NAT模式不同的是,它在LB和RS之间的传输不用改写IP地址。而是把客户请求包封装在一个IP tunnel里面,然后发送给RS节点服务器,节点服务器接收到之后解开IP tunnel后,进行响应处理。并且直接把包通过自己的外网地址发送给客户不用经过LB服务器。

1.客户端将访问vip报文发送给LVS服务器;

2.LVS服务器将请求报文重新封装,发送给后端真实服务器;

3.后端真实服务器将请求报文解封,在确认自身有vip之后进行请求处理;

4.后端真实服务器在处理完数据请求后,直接响应客户端。

要求: 1.lvs和后端真实服务器上都要有vip。

2.不会成为瓶颈。

3.请求的报文不能太大。

优点: 1.快速 2.不安全,不能抵抗DOS攻击
 

系统结构图:

lvs之NAT模式及TUN模式_第6张图片

在server1上:

添加tunl0隧道模式

modprobe ipip   打开隧道

ip link set up tunl0  启动tunl0

ip addr add 172.25.11.100/24 dev tunl0  给tunl0添加vip

ip addr  查看是否加上 tunl0

 

添加规则:

yum install ipvsadm -y

ipvsadm -A -t 172.25.11.100:80 -s rr

ipvsadm -a -t 172.25.11.100:80 -r 172.25.11.2:80 -i    -i就是采用tun模式

ipvsadm -a -t 172.25.11.100:80 -r 172.25.11.3:80 -i

 

ipvsadm -ln

lvs之NAT模式及TUN模式_第7张图片

vim /etc/sysctl.conf

打开内部路由:

net.ipv4.ip_forward = 1

禁用rp_filter内核:

net.ipv4.conf.default.rp_filter = 0

 

sysctl -p 刷新

 

 

在server2上:

modprobe ipip   打开隧道

ip link set up tunl0  启动tunl0

ip addr add 172.25.11.100/24 dev tunl0  给tunl0添加vip

ip addr  查看是否加上 tunl0

yum install arptables_jf -y

arptables -A IN -d 172.25.11.100 -j DROP   #将访问100的数据包丢弃 

arptables -A OUT -s 172.25.11.100 -j mangle --mangle-ip-s 172.25.11.2 #从100进来的数据从172.25.1.2出去

 arptables -L

/etc/init.d/arptables_jf save

/etc/init.d/arptables_jf start

sysctl -w net.ipv4.conf.tunl0.rp_filter=0

vim /etc/sysctl.conf

打开内部路由:

net.ipv4.ip_forward = 1

禁用rp_filter内核:

net.ipv4.conf.default.rp_filter = 0

sysctl -p 

 

在server3上同server2操作:

 

在真机中访问:

curl 172.25.11.100 结果轮询即可

lvs之NAT模式及TUN模式_第8张图片

你可能感兴趣的:(lvs之NAT模式及TUN模式)