LVS nat dr

======================参考地址 ======================
https://www.cnblogs.com/MacoLee/p/5856858.html
===========================lvs nat=================

3.png

4.png

======================LVS DR=======================================

1.png

TIM截图20180614085654.png
TIM截图20180614085513.png

=========dr 模式 二层负载均衡(改了mac)=============

注意:1.添加网卡(负载均衡端52机)
           2.谁的路由条目在上就是dip 另一个就是vip(route -n)
3台机器
192.168.44.52 负载均衡器 虚拟VIP 192.168.44.66 DIP 52
192.168.44.50  web1   lo为192.168.44.66/32
192.168.44.51  web2   lo为192.168.44.66/32


1.====在两个web安装web服务
yum -y install nginx -y
====修改主机内容
vim /usr/share/nginx/html/index.html
web1
vim /usr/share/nginx/html/index.html
web2
启动服务
systemctl start nginx

2.====给两台web服务器的lo网卡设置子网掩码为32为的vip
ifconfig lo:0 192.168.44.66/32 或者永久
[root@web1 network-scripts]# cat ifcfg-lo:0
DEVICE=lo:0  
IPADDR=192.168.44.66
NETMASK=255.255.255.255 
BROADCAST=192.168.44.66
ONBOOT=yes 
NAME=loopback  

3.====子网掩码最好 的32位发送过去 设置内核参数
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

4.让两台web服务器不收到广播 忽悠arp响应
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
5.注意:谁的路由条目在上就是dip 另一个就是vip(route -n)

6.设置lvs路由条目 ipvsadm -Ln(查条目)位置192.168.44.52
yum install -y ipvsadm  (lvs 用户态管理工具)
[root@52 network-scripts]# cat ifcfg-ens37
TYPE="Ethernet"
BOOTPROTO="static"
NAME="ens37"
DEVICE="ens37"
ONBOOT="yes"
IPADDR=192.168.44.66
GATEWAY=192.168.44.2
DNS1=8.8.8.8
NETMASK=255.255.255.255
[root@]ipvsadm -A -t 192.168.44.vip:80 -s rr
[root@]ipvsadm -a -t 192.168.44.vip:80 -r 192.168.44.50:80 -g
[root@]ipvsadm -a -t 192.168.44.vip:80 -r 192.168.44.51:80 -g
[root@]ip addr add dev ens33 192.168.44.66/32
-A 添加virtual server
-t 指定使用tcp协议
-s 指定策略为rr
-r 真实的服务器[Real-Server:port]
-g 直接路由
7.查看方式两种
1.命令行:elinks --dump http://192.168.44.66/index.html
2.浏览器地址 192.168.44.66/index.html
抓包软件
tcpdump -i ens33 icmp -v -nn
tcpdump -i ens33 tcp and port 80 -v -nn
8.让配置永久生效
ipvsadm-save > /etc/sysconfig/ipvsadm-config
ipvsadm -S 
MIP是静态一对一的双向地址映射。 
VIP是地址+端口的映射,将不同地址的不同端口,映射到规定地址的规定端口。
DIP分2种一种是PAT,另一种就是用地址池中的地址映射。和CISCO的NAT相同。

tcpdump -i ens33 icmp -v -nn

===============要解决三个问题:=========================

要解决三个问题:
1 .两个http服务器除了有自己的rip以外还要拥有vip
    因为:数据包需从realServer返回 ,realServer返回的数据需要源IP为VIP 
    解决:添加 lo接口(本地环路接口) ,lo:1   vip/32. 

2 .当GW向下广播vip的时候 要分发器的vip响应 而两个http的vip不要响应
    因为:realServer的vip有了,接着就是同一个网段中拥有两个vip, 客户端在网关发送arp广播需找vip时需要让realServer不接受响应.  
    解决:
        echo 1 >/proc/sys/net/ipv4/conf/eth0/arp_ignore 
        arp_ignore 设置为1,意味着当别人的arp请求过来的时候,如果接收的设备没有这个ip,就不做出响应(这个ip在lo上,lo不是接收设备的进口)
        echo 2 >/proc/sys/net/ipv4/conf/eth0/arp_announce   
        使用最好的ip来回应,什么是最好的ip?同一个网段内子网掩码最长的
        
3 .当分发器向下找两个http服务器时,必须从dip发包
    因为:Director 发送数据包给realServer , 要走dip的网卡,否则ip流向就是vip-->vip 发送不成功. 
    解决:调整vip和dip网卡在路由表中的顺序,dip在上,vip在下即可解决。 
    
    假如:192.168.1.1 是vip ,网卡eth0
             192.168.1.2 是dip,网卡eth1
            在添加这两个ip的时候,路由表会出现如下条目:
            192.168.1.0  0.0.0.0  255.255.255.0  u   0    0   0   eth0
            192.168.1.0  0.0.0.0  255.255.255.0  u   0    0   0   eth1
            这样的路由顺序会由eth0也就是vip发包,是不行的
            解决:直接删除eth0所在的网络
            ip route del 192.168.1.0/24 dev eth0
            
==========================================
    注:LO接口本身的作用:
    假如包是由一个本地进程为另一个本地进程产生的,  它们将通过外出链的'lo'接口,然后返回进入链的'lo'接口. 

===========清零连接数==============

[root@192.168.44.46 ~] elinks --dump http:// 192.168.44.66/index.html
[root@nginx1 ~]# ipvsadm -L -n --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  192.168.44.66:80                   34      948        0   260065        0
  -> 192.168.44.50:80                   17      568        0   166188        0
  -> 192.168.44.51:80                   17      380        0    93877        0
[root@nginx1 ~]# ipvsadm -Z
[root@nginx1 ~]# ipvsadm -L -n --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  192.168.44.66:80                    0        0        0        0        0
  -> 192.168.44.50:80                    0        0        0        0        0
  -> 192.168.44.51:80                    0        0        0        0        0

=========================keepalived+lvs==============================


TIM截图20180615100756.png

keepalived是什么
keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,
用来防止单点故障。

keepalived工作原理
keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,
即虚拟路由冗余协议。

虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由

器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供
服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当
backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个
backup当master。这样的话就可以保证路由器的高可用了。

keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,
负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常
见的各种检查方式。vrrp模块是来实现VRRP协议的。

VRRP协议(了解一下)
===================在两台负载均衡器上52|53==============================

环境:先在两台负载均衡器上(52|53上)各添加一块网卡ens37 不用给它们配置静态IP
1.在两个web安装web服务
yum -y install nginx -y
====修改主机内容
vim /usr/share/nginx/html/index.html
web1
vim /usr/share/nginx/html/index.html
web2
启动服务
systemctl start nginx

2.====给两台web服务器的lo网卡设置子网掩码为32为的vip
ifconfig lo:0 192.168.44.66/32 或者永久
[root@web1 network-scripts]# cat ifcfg-lo:0
DEVICE=lo:0  
IPADDR=192.168.44.66
NETMASK=255.255.255.255 
BROADCAST=192.168.44.66
ONBOOT=yes 
NAME=loopback  
3.====子网掩码最好 的32位发送过去 设置内核参数
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
4.让两台web服务器不收到广播 忽悠arp响应
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
5.注意:谁的路由条目在上就是dip 另一个就是vip(route -n)
5.2 yum -y install ipvsadm(两台负载均衡上装ipvsadm 52|53)
      ipvsadm -C 清除内核虚拟服务器表中的所有记录。 
      ipvsadm -L 显示内核虚拟服务器表 
重点:vip是飘的 服务器里的记录交给下面的keepalived自动配置,也不用配置ens37那个文件
6.[root@]# yum install -y keepalived  (两台负载均衡器上装kepalived)
[root@]# cd /etc/keepalived/
[root@]# vim keepalived.conf
! Configuration File for keepalived
global_defs {                       
   notification_email {
       root@localhost
       }
   notification_email_from keepalived@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id Director1
   }
   
vrrp_instance VI_1 {                
   state MASTER           另一台填state BACKUP             
   interface ens33     //随便本机网卡        
   virtual_router_id 51            
   priority 150        //另一台填 priority 100         
   advert_int 1          //检查间隔,单位秒    
   authentication {
       auth_type PASS
       auth_pass 1111
       }
   virtual_ipaddress {
       192.168.44.66/32 dev ens37
       }
   }
   
virtual_server 192.168.44.66 80 {       //LVS 配置
   delay_loop 3                  //服务论询的时间间隔
   lb_algo rr       //LVS 调度算法
   lb_kind DR         // LVS 集群模式
   protocol TCP                            
   real_server 192.168.44.50 80 {
       weight 1
       TCP_CHECK {
           connect_timeout 3
           }
       }
   real_server 192.168.44.51 80 {
       weight 1
       TCP_CHECK {
           connect_timeout 3
           }
       }
}
7.[root@ 192.168.44.52]# scp keepalived.conf 192.168.44.53:/etc/keepalived/
拷贝后,修改配置文件
   state BACKUP
   priority 100
   
8.两个Director上启动服务:
rhel6:
   # service keepalived start
rhel7:
   # systemctl start keepalived
9.测试:
1)观察lvs路由条目 ipvsadm -L
2)观察vip地址在哪台机器上 
3)客户端浏览器访问vip
4)关闭master上的keepalived服务,再次访问vip
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容