lvs-dr 原理與配置

Lvs-dr 原理與配置

目錄

    1、ARP介紹

    2、DR模式數據包請求響應流程

    3、配置過程

   4、總結

1、ARP協議介紹

功能:局域網內,根據IP地址獲取MAC地址。

互聯網上面,每一臺主機都有一個32位的IP地址,但是為了在物理網路上傳輸必須知道對方的MAC地址,因為TCP/IP數據包封裝時,先封裝的是IP,然后是MAC地址,因此在查看數據包中的目的IP前,首先要拆掉第二層MAC地址。

①、一般在局域網獲取MAC地址時,

A  某些節點會發送廣播報文,報文中含有自己的MAC地址,問誰有這個IP地址

B  收到廣播報文的主機都會檢查自己擁有的所有IP地址,如果有的話就告訴那個節點說,“我有這個IP地址”,同時把MAC地址封裝在里面

然后,兩者互相擁有的對方的MAC地址,放在arp緩存里面,這里也可以設置即使自己有arp請求的IP地址,但是不去響應。

②、在linux中的相關arp參數

arp_ignore:定義對目標地址為本地IPARP詢問不同的應答模式

0 – (默認值): 回應任何網絡接口上對任何本地IP地址的arp查詢請求 

1 – 只回答目標IP地址是來訪網絡接口本地地址的ARP查詢請求 

2 –只回答目標IP地址是來訪網絡接口本地地址的ARP查詢請求,且來訪IP必須在該網絡接口的子網段內 

3 – 不回應該網絡界面的arp請求,而只對設置的唯一和連接地址做出回應 

4-7 – 保留未使用 

8 –不回應所有(本地地址)的arp查詢

arp_announce:對網絡接口上,本地IP地址的發出的,ARP回應,作出相應級別的限制確定不同程度的限制,宣布對來自本地源IP地址發出Arp請求的接口 

0 – (默認在任意網絡接口(eth0,eth1lo)上的任何本地地址 

1 –盡量避免不在該網絡接口子網段的本地地址做出arp回應當發起ARP請求的源IP地址是被設置應該經由路由達到此網絡接口的時候很有用.此時會檢查來訪IP是否為所有接口上的子網段內ip之一.如果改來訪IP不屬于各個網絡接口上的子網段內,那么將采用級別2的方式來進行處理

2 – 對查詢目標使用最適當的本地地址.在此模式下將忽略這個IP數據包的源地址并嘗試選擇與能與該地址通信的本地地址.首要是選擇所有的網絡接口的子網中外出訪問子網中包含該目標IP地址的本地地址如果沒有合適的地址被發現,將選擇當前的發送網絡接口或其他的有可能接受到該ARP回應的網絡接口來進行發送


2、DR模式數據包的請求響應流程。

a) 客戶端發送請求到Director,目標地址為VIP。

b) 報文到達網關的時候,網關會問,誰有這個VIP地址,Real serverDirector都配置有VIP地址,但是只有,Director響應。

c) Director收到客戶端的報文之后,把報文中的目標MAC地址,根據算法改為Real server中的某一節點的MAC地址。數據包在轉發過去,這時候源和目標IP地址都沒有改變的。

d) Real server收到數據包之后,先拆開MAC層,發現是自己的MAC,在拆IP層,因為自己配置的也有VIP,所以報文就是自己的了。

e) Real server做出響應,把報文中的源和目標IP地址互換,然后響應給客戶機,不需要經過Director

如果Real server只有一塊網卡,所有的報文都會從網關出入,網關可能會成為單點,建議Real server配置外網IP

3、配置

A、Real server

        echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore        
        echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
        echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
        echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce 

        Ifconfig lo:0 vip_address netmask 255.255.255.255 broadcast vip_address up 只和自己通信。
        #route add -host vip_address dev lo:0   據說這一條可以不配置
        確保有httpd服務,和數據包可以通過,關閉防火墻。

B、Director

①、配置VIP地址

            Ifconfig eh0:0 vip_address/prefix up

②、測試能否和real server 通信

            Ping real_server_address

③、配置ipvs規則

            Ipvsadm -A -t vip_address [-s schedualr -p persistence]            
            Ipvsadm -a -t vip_address -r real_server_address -g [-w #] 
            Ipvsadm -a -t vip_address -r real_server_address -g [-w #]

3.2 配置實例

    Director: DIP 192.168.198.160        
        VIP:192.168.198.161
        Real server:
        Node2:192.168.198.140 
        Node3:192.168.198.150

Real server: 

(]]MY%%S$0`{8]SVO)SF`RW.png

 node3和node2配置是一樣的。

Director

    PK%}HCYHSX1SM$O@RT)XZLR.png

看一下效果

 GYYKM)I%HK8}NIUW8K1(1CM.png

0@]Q28L$EX5M_I$ZCAVJ3PM.png

4、總結:

    1、只是使用了簡單的調度算法,使用其他的可以在配置director 的時候加上-s 調度算法

    2、使用-p選項可以持久連接

    3、這個后臺,我怎么編輯,前臺看起來間隙都是很大啊。

    最后就是提升一下做事的效率了,寫篇博客花了不少時間。

參考

http://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html    arp參數的含義。

http://wolfchen.blog.51cto.com/2211749/1122841            lvs dr配置詳解

原創文章,作者:艾賀,如若轉載,請注明出處:http://www.www58058.com/8153

(2)
艾賀艾賀
上一篇 2015-09-14
下一篇 2015-09-19

相關推薦

  • 你會用Python寫洗腦神曲嗎?

    Python實戰班-學員學習成果展示 同樣是周末,有些人是閑聊著度過,有些人是學習充電度過。 人與人最大的區別,是下班后的時間??茨阍趺慈ダ?。 周末時,馬哥Python實戰班的學員正在認真上課,他們中的不少人,月薪在10k以上,甚至月薪20k以上。 但他們沒有虛度周末時光。 #最浪費時間的就是:思而不學+猶豫不決。# 馬哥Python實戰班二期的小伙伴們才…

    Linux干貨 2016-07-05
  • 網絡班第27期第一周作業

    1、         描述計算機的組成及其功能 CPU:主要由控制器和運算器組成,其他還有寄存器和緩存等。 控制器:其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工作及內存與外設的訪問等。 運算器:功能是對數據進行各種算術運算和邏…

    2017-07-29
  • Linux中的man命令使用方法

      Linux中的man命令就是manual的縮寫,此命令是用來查看系統中自帶的各種參考手冊,幫助用戶更好的了解并使用命令。   man命令的使用格式為: man COMMAND,即man后面跟上需要查詢的命令,進到手冊后有如下快捷按鈕幫助用戶更好的操作手冊。     1.按鍵-j &nb…

    Linux干貨 2016-10-20
  • N25 第二周作業

    一.Linux上常用的文件管理類命令及用法示例     1.cp復制命令,具體有兩個,一為單源復制,一種為多源復制。      常用選項         -i :交互式復制,覆蓋之前提醒用戶確認。       …

    Linux干貨 2016-12-12
  • shell腳本編程基礎之二(if、case、for、while、until、continue、break語句使用)

    在shell腳本編程中,我們可以根據命令的狀態結果,判斷要不要執行下一步,但是有時候要判斷的問題不止一個,甚至對問題本身都要做判斷;同時問題的結果有時也不止一個,這時要借助簡單的邏輯與和邏輯或,就顯得很無力;要完成復雜的任務,需要借助一定的流程控制:順序執行、選擇執行、循環執行、同時在腳本執行過程中,有用戶交互輸入的需; if語句 case語句 for語句 …

    Linux干貨 2016-08-21
  • Linux LVM介紹及管理

    什么是LVM? LVM是邏輯盤卷管理(LogicalVolumeManager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是建立在硬盤和分區之上的一個邏輯層,用來提高磁盤分區管理的靈活性。系統管理員可以通過LVM輕松的管理磁盤分區,如:將若干個磁盤分區或物理磁盤連接為一個整塊的卷組 (volumegroup),形成一個存儲池。管理員可以…

    Linux干貨 2016-08-30
欧美性久久久久