LVS常見的類型實現方式

前言

 由于lvs的基礎知識已經在第一篇lvs中講解了,所以在這里只做實驗,包括lvs-nat,lvs-dr,以及基于Freiwall標記和實現會話綁定實驗。

一、lvs-nat:也是MASQERADING,簡稱為m(masquerading) 

  實驗圖:  2015-06-21_122212.png

  地址規劃:

    VIP: 172.16.2.13/24

    DIP: 192.168.10.203/24

    RIP1:192.168.10.120/24

    RIP2:192.168.10.103/24

    CIP: 172.16.2.176/24

  

 實驗步驟:

 (1)在Director上配置ntp服務,RS同步Director時間;

[root@Director ~]# date
Sun Jun 21 12:46:46 CST 2015

[root@RS1 ~]# date
Sun Jun 21 12:46:50 CST 2015

[root@RS2 ~]# date
Sun Jun 21 12:46:53 CST 2015

 (2)開啟Director的轉發功能,清空iptables的filter,nat規則

[root@Director ~]# vim /etc/sysctl.conf 
    net.ipv4.ip_forward = 1  \\修改為1

[root@Director ~]# sysctl -p \\重新讀取systcl.conf配置文件

[root@Director ~]# iptables -F;iptables -F -t nat \\清除防火墻規則

 (3)將RS的網關指向Director的DIP

[root@RS1 ~]# route add default gw 192.168.10.203
[root@RS1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.10.0     0.0.0.0         255.255.255.0      U   0   0     0 eth0
169.254.0.0     0.0.0.0         255.255.0.0        U   1002  0     0 eth0
0.0.0.0       192.168.10.203      0.0.0.0         UG   0   0     0 eth0
[root@RS2 ~]# route add default gw 192.168.10.203
[root@RS2 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.10.0    0.0.0.0         255.255.255.0       U   0    0      0 eth0
169.254.0.0     0.0.0.0         255.255.0.0        U   1002  0      0 eth0
0.0.0.0      192.168.10.203      0.0.0.0          UG   0   0      0 eth0

 (4)在Director上創建集群服務

[root@Director ~]# ipvsadm -A -t 172.16.2.13:80 -s rr
[root@Director ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.2.13:80 rr

 (5)在Director創建的集群服務添加RS

[root@Director ~]# ipvsadm -a -t 172.16.2.13:80 -r 192.168.10.120:80 -m -w 1
[root@Director ~]# ipvsadm -a -t 172.16.2.13:80 -r 192.168.10.103:80 -m -w 1
[root@Director ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.2.13:80 rr
  -> 192.168.10.103:80            Masq    1      0          0         
  -> 192.168.10.120:80            Masq    1      0          0

 (6)在RS中添加默認網頁

[root@RS1 ~]# echo "<h1>RS1</h1>" > /var/www/html/index.html 
[root@RS2 ~]# echo "<h1>RS2</h1>" > /var/www/html/index.html

 (7)啟動httpd服務

[root@RS1 ~]# service httpd start
Starting httpd:                                            [  OK  ]

[root@RS2 ~]# service httpd start
Starting httpd:                                            [  OK  ]

 (7)打開瀏覽器,輸入地址:http://172.16.2.13 刷新網頁,查看測試結果

 3.png  2.png

 (8)到此lvs-nat類型已經搭建完成,可以自己更改調度方法,查看狀態

二、lvs-dr類型:也稱direct routing,簡稱為g(gatewaying)

 實驗圖:

1.png

 地址規劃:

   VIP: 172.16.2.100

   DIP: 172.16.2.13

   RIP1:172.16.2.12

   RIP2:172.16.2.14

 配置步驟

 (1)同步時間,以Director為時間服務器,RS以Director為時間服務器,同步時間

[root@Director ~]# date 
Sun Jun 21 13:24:02 CST 2015

[root@RS1 htdocs]# date
Sun Jun 21 13:24:06 CST 2015

[root@RS2 html]# date
Sun Jun 21 13:24:08 CST 2015

 (2)修改RS的內核參數,禁止響應路由器查詢VIP的arp請求

[root@RS1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
[root@RS1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce 
[root@RS1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore 
[root@RS1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@RS2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
[root@RS2 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce 
[root@RS2 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore 
[root@RS2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

 (3)修改Director的防火墻規則,開啟轉發功能

[root@Director ~]# iptables -F;iptables -F -t nat
[root@Director ~]# vim /etc/sysctl.conf 
    net.ipv4.ip_forward = 1  
[root@Director ~]# sysctl -p

 (4)在Director、RS服務器上配置VIP地址

[root@Director ~]# ifconfig eth1:0 172.16.2.100 broadcast 172.16.2.100 netmask 255.255.255.255
[root@Director ~]# ifconfig 
eth1      Link encap:Ethernet  HWaddr 00:0C:29:5A:4F:52  
          inet addr:172.16.2.13  Bcast:172.16.2.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe5a:4f52/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:34718 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12253 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:14209969 (13.5 MiB)  TX bytes:1351338 (1.2 MiB)

eth1:0    Link encap:Ethernet  HWaddr 00:0C:29:5A:4F:52  
          inet addr:172.16.2.100  Bcast:172.16.2.100  Mask:255.255.255.255
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:80 errors:0 dropped:0 overruns:0 frame:0
          TX packets:80 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:7266 (7.0 KiB)  TX bytes:7266 (7.0 KiB)
[root@RS1 ~]# ifconfig lo:0 172.16.2.100 broadcast 172.16.2.100 netmask 255.255.255.255
[root@RS1 ~]# ifconfig
eth1      Link encap:Ethernet  HWaddr 00:0C:29:0E:C4:33  
          inet addr:172.16.2.12  Bcast:172.16.2.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe0e:c433/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9328 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3795 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:8278339 (7.8 MiB)  TX bytes:337391 (329.4 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:59 errors:0 dropped:0 overruns:0 frame:0
          TX packets:59 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:5699 (5.5 KiB)  TX bytes:5699 (5.5 KiB)

lo:0      Link encap:Local Loopback  
          inet addr:172.16.2.100  Mask:255.255.255.255
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
[root@RS2 ~]# ifconfig lo:0 172.16.2.100 broadcast 172.16.2.100 netmask 255.255.255.255
[root@RS2 ~]# ifconfig 
eth1      Link encap:Ethernet  HWaddr 00:0C:29:F8:D4:92  
          inet addr:172.16.2.14  Bcast:172.16.2.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fef8:d492/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:161326 errors:0 dropped:0 overruns:0 frame:0
          TX packets:132169 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:25610678 (24.4 MiB)  TX bytes:16331857 (15.5 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1935 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1935 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:197004 (192.3 KiB)  TX bytes:197004 (192.3 KiB)

lo:0      Link encap:Local Loopback  
          inet addr:172.16.2.100  Mask:255.255.255.255
          UP LOOPBACK RUNNING  MTU:65536  Metric:1

 (5)在Director、RS上添加去往172.16.2.100的主機路由(目的是RS構建響應報文的時候以VIP為源IP封裝數據包)

[root@Director ~]# route add -host 172.16.2.100 dev eth1:0
[root@Director ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.2.100    0.0.0.0         255.255.255.255       UH   0   0      0 eth1
172.16.2.0     0.0.0.0         255.255.255.0        U    0   0      0 eth1
0.0.0.0      172.16.2.1          0.0.0.0         UG   0   0      0 eth1
[root@RS1 ~]# route  add -host 172.16.2.100 dev lo:0
[root@RS1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.2.100    0.0.0.0         255.255.255.255      UH   0   0      0 lo
172.16.2.0     0.0.0.0         255.255.255.0       U    0   0      0 eth1
0.0.0.0      172.16.2.1        0.0.0.0          UG   0   0      0 eth1
[root@RS2 ~]# route add  -host 172.16.2.100 dev lo:0
[root@RS2 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.2.100    0.0.0.0         255.255.255.255      UH   0   0     0   lo
172.16.2.0     0.0.0.0         255.255.255.0        U    0   0     0  eth1
0.0.0.0       172.16.2.1       0.0.0.0           UG   0   0     0  eth1

 (6)在Director上創建服務集群

[root@Director ~]# ipvsadm -A -t 172.16.2.100:80 -s rr
[root@Director ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.2.100:80 rr

 (7)在Director創建的集群中添加RS

[root@Director ~]# ipvsadm -a -t 172.16.2.100:80 -r 172.16.2.12:80 -g -w 1
[root@Director ~]# ipvsadm -a -t 172.16.2.100:80 -r 172.16.2.14:80 -g -w 1
[root@Director ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.2.100:80 rr
  -> 172.16.2.12:80               Route   1      0          0         
  -> 172.16.2.14:80               Route   1      0          0

 (8)在RS上添加默認網頁

[root@RS1 ~]# echo "<h1>RS1</h1>" > /var/www/html/index.html 
[root@RS2 ~]# echo "<h1>RS2</h1>" > /var/www/html/index.html

 (9)啟動httpd服務

[root@RS1 ~]# service httpd start
Starting httpd:                                            [  OK  ]

[root@RS2 ~]# service httpd start
Starting httpd:                                            [  OK  ]

 (10)打開瀏覽器,輸入地址:http://172.16.2.100,刷新頁面查看變化

4.png 5.png 

 (11)到此lvs-dr類型搭建完成,可以更改調度算法查看頁面變化。

原創文章,作者:馬行空,如若轉載,請注明出處:http://www.www58058.com/5500

(0)
馬行空馬行空
上一篇 2015-06-26 16:39
下一篇 2015-06-30 13:11

相關推薦

  • CentOS6啟動流程

    CentOS 6 啟動流程 | root密碼重置 | 添加系統服務 一、CentOS 6 啟動流程:     1)POST加電自檢         Power-On-Self-Test,主板在接通電源后,系統首先由BIOS程序來對對CPU、…

    Linux干貨 2016-09-08
  • 邏輯卷的創建、維護和遷移

    邏輯卷管理器(LVM)介紹: 1、允許對卷進行方便操作的抽象層,包括重新設定文件系統的大小 2、允許在多個物理設備間重新組織文件系統 (1)將設備指定為物理卷 (2)用一個或者多個物理卷來創建一個卷組 (3)物理卷是用固定大小的物理區域(Physical Extent,PE)來 定義的 (4)在物理卷上創建的邏輯卷 是由物理區域(PE)組成 (5)可以在邏輯…

    Linux干貨 2017-12-10
  • 第二十一周作業

    1、回顧并詳細總結MySQL的存儲引擎、索引; 常用存儲引擎的對比: 特點 MyISAM InnoDB MEMORY MERGE NDB 存儲限制 有 64TB 有 沒有 有 事務安全 支持 鎖機制 表鎖 行鎖 表鎖 表鎖 行鎖 B樹索引 支持 支持 支持 支持 支持 哈希索引 支持 全文索引 支持 集群索引 支持 數據緩存 支持 支持 支持 索引緩存 支持…

    2017-07-29
  • 從Linux小白到大牛——與狼共舞的日子13

    馬哥教育網絡班21期+第13周課程練習 1、建立samba共享,共享目錄為/data,要求:(描述完整的過程) 1)共享名為shared,工作組為magedu; 2)添加組develop,添加用戶gentoo,centos和ubuntu,其中gentoo和centos以develop為附加組,ubuntu不屬于develop組;密碼均為用戶名; 3)添加sa…

    Linux干貨 2017-01-03
  • Linux 基礎(三)——用戶管理&正則表達式

    1、  列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 who | cut -d " " -f1 | uniq 2、  取出最后登錄到當前系統的用戶的相關信息。 last -1 | cut -d " " -f1 | head -1 | id 3、  …

    Linux干貨 2016-11-08
  • 第二十周作業

    1、用Keepalived實現nginx與lvs的高可用集群; lvs+keepalived: 1)后端兩臺rs上安裝web服務并創建探測頁面 ~]# yum install nginx -y ~]# systemctl start nginx.service ~]# vim /usr/share/nginx/html/index.html <h1&g…

    2017-07-03

評論列表(2條)

  • 黑白子
    黑白子 2015-12-08 21:30

    你好,怎么做dr模型時,輪詢不起作用?。?/p>

    • 馬行空
      馬行空 2015-12-25 10:32

      @黑白子把瀏覽器緩存清理一下,在訪問的時候查看訪問日志,看看日志里有沒有訪問記錄。

欧美性久久久久