LVS-NAT的实现:
基础设施:一台调度器Director (要求:ipvsadm、httpd),两台后端真实服务器Real Server(要求:httpd)
过程报文的响应过程:客户端发送一个请求报文于调度服务器上,此时源IP地址和目的IP地址分别为CIP和VIP,调度服务器的VIP网卡接受到报文,传给input链,在链上匹配规则,如果匹配到是对应服务,则通过DIP网卡传送至后端RS提供服务,此时报文源IP地址和目的IP地址分别为CIP和RIP,后端RS接受到报文请求便提供服务。
注意:
1.Director的一个网卡接口用来接收外网的请求,另一个接口也拿过来与RS交流所以同RS处于同一网段
2.后端RS服务器为了防止外网用户直接访问,IP地址应为私有IP地址。
3.因为只能通过VS调度至RS服务器。所以在RS中需要配置跳转至DIP的网关。
4.为使请求报文能够转发给RS,需要开启Director的ip_forward模块。这里提供两种开启方法:
1):临时开启:
echo 1 > /proc/sys/net/ipv4/ip_forward
2):永久开启:
使用vim编辑器将/etc/sysctl.conf中的net.ipv4.ip_forward=0改为net.ipv4.ip_forward=1
5:后端两台RS服务器的监听端口一台监听8080.一台监听80端口
Director上的配置
# ipvsadm -A -t 172.16.72.1:80 -s rr
# ipvsadm -a -t 172.16.72.1:80 -r 192.168.100.8:8080 -m -w 1
# ipvsadm -a -t 172.16.72.1:80 -r 192.168.100.9 -m -w 2
LVS-DR的实现:
基础设施:两台Director,两台+的RS,路由器,交换机
数据报文的响应过程:
1.client向目标vip发送请求,director接收。
2.VS根据负载均衡算法选择一台RS,将此RIP所在的网卡的mac地址作为目标mac地址,发送到
局域网里。
3.RS在局域网中收到这个帧,拆开后发现VIP与本地匹配,处理报文,并重新封装报文,重新发送到局域网
4.如果client与VS处于同一网段,那么client将受到这个报文。否则将通过网络将路由器返回给用户。
注意:
1.在客户端请求报文发出至交换机时,广播的VIP地址VS和RS同时具有,这就会产生争议。从而引入了arp_ignore和arp_announce这两个内核参数。
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
2.当RS回复响应报文时的源IP地址会是RIP这样客户端会认为此报文是虚假信息不予接受,因此为了避免这个问题需要在RS上设置一条特殊的路由,当接受报文时先经过lo接口上的VIP以设置源IP地址为VIP。
转载于:https://blog.51cto.com/12479780/1976084