Lvs(二):三种Director类型及配置方式

Lvs(二):三种Director类型及配置方式

  上一篇博文简单介绍了lvs的基础知识,本文介绍一下lvs的三种Director类型的特性和配置方式

lvs-nat:masquerading

工作模型:

输入图片说明

工作流程:

1、客户端向Director请求服务,请求报文源地址为CIP,目标地址为VIP;

2、Director接收到请求报文,Director会认为Client请求的是一个后端集群服务,根据提前定义好的算法挑选出一个RS,Director对请求报文做DNAT,将目标DIP转换为RS的RIP,然后发往后端;

3、RS接收到请求进行相应,响应报文源地址为RIP,目标地址为CIP;

4、Director接收到响应报文,对响报文做SNAT,将源地址RIP转换为DIP,发送给Client

nat类型的特性:

1、RS应使用私有地址;RS的网关必须指向DIP;

2、请求和响应都要经过Director;高负载场景中,Director易成为性能瓶颈;

3、支持端口映射;

4、RS可以使用任意OS;

配置流程:

Real Server:

网络配置:

[root@node2 ~]# ifconfig eth0 192.168.0.2/24 up
[root@node2 ~]# route add default gw 192.168.0.1

[root@node3 ~]# ifconfig eth0 192.168.0.3/24 up
[root@node3 ~]# route add default gw 192.168.0.1

提供网页文件:

[root@node2 ~]# echo "node1.chencer.org" > /var/www/html/index.html
[root@node3 ~]# echo "node2.chencer.org" > /var/www/html/index.html

Director:

网络设置:

[root@node1 ~]# ifconfig eth0 172.16.0.1/16 up
[root@node1 ~]# ifconfig eth1 192.168.0.1/24 up
[root@node1 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

配置集群服务,并添加后端节点:

[root@node1 ~]# ipvsadm -A -t 172.16.0.1:80 -s rr

[root@node1 ~]# ipvsadm -a -t 172.16.0.1:80 -r 192.168.0.2 -m 
[root@node1 ~]# ipvsadm -a -t 172.16.0.1:80 -r 192.168.0.3 –m

客户端访问VIP并刷新:

输入图片说明输入图片说明

Lvs-dr:gatewaying (direct routing)

工作模型:

输入图片说明

工作流程:

1、客户端向Director请求服务,请求报文源地址为CIP,目标地址为VIP;

2、Director接收到请求报文,Director会认为Client请求的是一个后端集群服务,然后对后端RS发起arp请求,根据提前定义好的算法选择一个RS,将目标mac需改为RS的mac发往后端;

3、RS接收到请求,请求报文源地址为CIP,目标地址为VIP,而VIP是自己的,于是进行响应;

4、RS响应请求,响应报文源地址为VIP,目标地址为CIP,响应请求不会经过Director,直接经过互联网发往Client;

dr类型的特性:

1、保证前端路由将目标地址为VIP的报文统统发往Directory,而不能是RS;

  解决方案:

  1)、静态地址绑定:在前端路由器上操作;

    问题:未必有路由操作权限;

  2)、aprtables;

  3)、修改RS上内核参数,将RS上的VIP配置在lo接口的别名上,并限制其不能响应对VIP地址解析请求;

2、RS可以使用私有地址;但也可以使用公网地址,此时可通过互联网通过RIP对其直接访问;

3、RS跟Directory必须在同一物理网络中;

4、请求报文经由Director,但响应报文必须不能经过Director;

5、不支持端口映射;

6、RS可以是大多数常见的OS;

7、RS的网关绝不允许指向DIP;

内核参数:

arp_ignore:如何响应接收ARP地址请求;
    0:默认,只有arp 广播请求,马上响应,并且响应所有本机网卡的mac地址
    1:表示仅在请求的地址配置在请求报文的接口进行响应;
arp_announce:如何通告本地地址;
    0:默认,只要主机接入网络,则自动通告所有为网卡mac地址
    1:尽力不通告非直接连入网络的网卡mac地址
    2:表示仅通过网络直连的接口的地址;

RS配置方法:

所有网卡:

arp_ignore 1
arp_announce 2

RIP,eth0:

arp_ignore 1
arp_annource 2

配置流程:

Real Server:

网络和内核配置:

[root@node2 ~]# ifconfig eth0 172.16.0.4/16 up
[root@node2 ~]# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
[root@node2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@node2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@node2 ~]# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
[root@node2 ~]# ifconfig lo:0 172.16.0.2 netmask 255.255.255.255 broadcast 172.16.0.2 up
[root@node2 ~]# route add -host 172.16.0.2 dev lo:0

[root@node3 ~]# ifconfig eth0 172.16.0.5/16 up
[root@node3 ~]# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
[root@node3 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@node3 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@node3 ~]# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
[root@node3 ~]# ifconfig lo:0 172.16.0.2 netmask 255.255.255.255 broadcast 172.16.0.2 up
[root@node3 ~]# route add -host 172.16.0.2 dev lo:0

提供网页文件:

[root@node2 ~]# echo "node1.chencer.org" > /var/www/html/index.html
[root@node3 ~]# echo "node2.chencer.org" > /var/www/html/index.html

Director:

网络设置:

[root@node1 ~]# ifconfig eth0 172.16.0.3/16 up
[root@node1 ~]# ifconfig eth0:0 172.16.0.2 netmask 255.255.255.255 broadcast 172.16.0.2 up
[root@node1 ~]# route add -host 172.16.0.2 dev eth0:0

配置集群服务,并添加后端节点:

[root@node1 ~]# ipvsadm -A -t 172.16.0.2:80 -s rr

[root@node1 ~]# ipvsadm -a -t 172.16.0.2:80 -r 172.16.0.4 -g
[root@node1 ~]# ipvsadm -a -t 172.16.0.2:80 -r 172.16.0.5 -g

客户端访问VIP并刷新:

输入图片说明输入图片说明

Lvs-tun:ipip encapsulation (tunneling)

工作模型:

输入图片说明

工作流程:tun模型,通常作为异地容灾策略;

tun类型的特性:

1、RIP、VIP、DIP全部是公网地址;

2、RS的网关不会也不可能指向DIP;

3、请求报文经由Director,但响应报文必须不能经过Director;

4、不支持端口映射;

5、RS的OS必须支持隧道功能;

转载于:https://my.oschina.net/masachencer/blog/636318

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值