LVS 的幾種連接模式

初次搭建LVS時使用只有一張網卡的虛擬機,無論如何配置都不能跳轉到real server 上,總結發現與LVS的連接模式有關系,LVS主要有以下幾種模式:

  1. NAT模式;
    NAT模型:地址轉換類型,主要是做地址轉換,類似于iptables的DNAT類型,它通過多目標地址轉換,來實現負載均衡;
    特點和要求:
  • LVS(Director)上面需要雙網卡:DIP(內網)和VIP(外網)

  • 內網的Real Server主機的IP必須和DIP在同一個網絡中,并且要求其網關都需要指向DIP的地址

  • RIP都是私有IP地址,僅用于各個節點之間的通信

  • Director位于client和Real Server之間,負載處理所有的進站、出站的通信

  • 支持端口映射

  • 通常應用在較大規模的應用場景中,但Director易成為整個架構的瓶頸。
    相關機器信息;
    LB1 eth0:192.168.244.132 (Vip) (公網)
    eth1:192.168.27.128 (Dip) (內網)
    rs1 eth0:192.168.27.130 (Rip) (內網)getway:192.168.27.128
    rs2 eth0:192.168.27.131 (Rip) (內網)getway:192.168.27.128

    Paste_Image.png

    首先使用nginx將兩臺rs機器訪問頁面配置好,使得訪問rs1出現welcome to nginx!I'm rs 1!,訪問rs2出現welcome to nginx!I'm rs 2。

    現在在LB上操作;
    確定本機ip_vs模塊是否加載,也就是是否支持lvs,2.4.2后都支持了;然后安裝ipvsadm 用戶操作命令。

    ipvsadm安裝:

    [root@LB1 ~]# yum install ipvsadm -y
    echo 1 > /proc/sys/net/ipv4/ip_forward
    ipvsadm -A -t  192.168.244.132:80 -s rr
    ipvsadm -a -t 192.168.244.132:80 -r 192.168.27.130-m
    ipvsadm -a -t 192.168.244.132:80 -r 192.168.27.131-m
    

    測試頁面時可以訪問到 兩臺rs的 html頁面交替出現。

  1. DR模式:
    特點和要求
  • 各個集群節點必須和Director在同一個物理網絡中

  • RIP地址不能為私有地址,可以實現便捷的遠程管理和監控

  • Director僅僅負責處理入站請求,響應報文則由Real Server直接發往客戶端

  • 集群節點Real Server 的網關一定不能指向DIP,而是指向外部路由

  • Director不支持端口映射

  • Director能夠支持比NAT多很多的Real Server
    原理:
    DR模型:直接路由模型,每個Real Server上都有兩個IP:VIP和RIP,但是VIP是隱藏的,就是不能提高解析等功能,只是用來做請求回復的源IP的,Director上只需要一個網卡,然后利用別名來配置兩個IP:VIP和DIP
    Director在接受到外部主機的請求的時候轉發給Real Server的時候并不更改目標地址,只是通過arp解析的MAC地址進行封裝然后轉給Real Server,Real Server在接受到信息以后拆除MAC幀封裝,然后直接回復給CIP。

    Paste_Image.png

    LB1: eth0: 192.168.182.133
    vip(eth0:0): 192.168.182.200
    RS1: eth0:192.168.182.130
    lo:0(vip) :192.168.182.200
    RS2: eth0:192.168.182.129
    lo:0(vip) 192.168.182.200

    通信原理:
    每個Real Server上都有兩個IP:VIP和RIP,但是VIP是隱藏的,就是不能提高解析等功能,只是用來做請求回復的源IP的,Director上只需要一個網卡,然后利用別名來配置兩個IP:VIP和DIP

    Director在接受到外部主機的請求的時候轉發給Real Server的時候并不更改目標地址,只是通過arp解析的MAC地址進行封裝然后轉給Real Server,Real Server在接受到信息以后拆除MAC幀封裝,然后直接回復給CIP。

    而此時需要關閉RS上的基于VIP的arp解析,在linux內核2.4以后,內核中都內置了這種功能,通過一些設置可以關閉其arp的功能:

    arp_ignore:定義接收到ARP請求時的響應級別
    0:默認,只用本地配置的有響應地址都給予響應
    1:僅僅在目標IP是本地地址,并且是配置在請求進來的接口上的時候才給予響應(僅在請求的目標地址配置請求到達的接口上的時候,才給予響應)
    arp_announce:定義將自己的地址向外通告時的級別
    0:默認,表示使用配置在任何接口的任何地址向外通告
    1:試圖僅向目標網絡通告與其網絡匹配的地址
    2:僅向與本地接口上地址匹配的網絡進行通告
    Ps:要想讓其功能生效,必須先設置相關設置,然后在配置IP地址等信息
    1、開始在RS1操作:

    [root@rs1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    [root@rs1 ~]# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
    [root@rs1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    [root@rs1 ~]# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
    [root@rs1 ~]# service network restart
    [root@rs1 ~]#ifconfig lo:0 192.168.182.200 netmask 255.255.255.255 broadcast 182.168.182.200
    [root@rs1 ~]# route add -host 192.168.182.200 dev lo:0
    

    上面的就是定義了arp響應的級別;還有就是vip的請求數據,從rs1的本地ip進行了回復;
    2、在RS2上執行上面同樣的操作
    3、在LB上操作:
    配置eth0網卡ip;

    [root@LB1 ~]# ifconfig eth0:0 192.168.182.200/24   #在eth0:0配置vip
    

    驗證RS的web服務,訪問兩天RS服務器均可正確訪問,分別出現I'm 1! 和 I'm 2!

    接下來在DR上設置轉發:

    [root@LB1 ~]# yum install ipvsadm -y
    ipvsadm -A -t  192.168.182.200:80 -s rr
    ipvsadm -a -t 192.168.182.200:80 -r 192.168.27.130 -g
    ipvsadm -a -t 192.168.182.200:80 -r 192.168.27.131 -g
    

    訪問192.168.182.200測試結果,可交替出現兩臺RS的html頁面。

  1. TUN模式;
    其實數據轉發原理和上圖是一樣的,不過這個我個人認為主要是位于不同位置(不同機房);LB是通過隧道進行了信息傳輸,雖然增加了負載,可是因為地理位置不同的優勢,還是可以參考的一種方案;

    優點:負載均衡器只負責將請求包分發給物理服務器,而物理服務器將應答包直接發給用戶。所以,負載均衡器能處理很巨大的請求量,這種方式,一臺負載均衡能為超過100臺的物理服務器服務,負載均衡器不再是系統的瓶頸。使用VS-TUN方式,如果你的負載均衡器擁有100M的全雙工網卡的話,就能使得整個Virtual Server能達到1G的吞吐量。

    不足:但是,這種方式需要所有的服務器支持"IP Tunneling"(IP Encapsulation)協議;

    LB1: eth0: 192.168.182.132
    vip(tunl0): 192.168.182.200
    RS1: eth0:192.168.27.130
    tunl0(vip) :192.168.182.200
    RS2: eth0:192.168.138.131
    tunl0(vip) :192.168.182.200

    LB1操作:

    yum install ipvsadm -y
    ifconfig tunl0 192.168.182.200 broadcast 192.168.182.200 netmask 255.255.255.0 up
    route add -host $VIP dev tunl0
    ipvsadm -A -t 192.168.182.200:80 -s rr
    ipvsadm -a -t 192.168.182.200:80 -r 192.168.27.130 -i
    ipvsadm -a -t 192.168.182.200:80 -r 192.168.138.131 -i
    
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,117評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,860評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,128評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,291評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,025評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,421評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,477評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,642評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,177評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,970評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,157評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,717評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,410評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,821評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,053評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,896評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,157評論 2 375

推薦閱讀更多精彩內容