Linux下VS/DR+heartbeat+ldirectory 實現高可用負載均衡服務

LinuxVS/DR+heartbeat+ldirectory 實現高可用負載均衡服務

系統環境CentOS 5.4

# uname -r

2.6.18-128.el5

IP分配:

client eth0 10.10.10.10

ldrictory eth1 10.10.10.1

eth0 192.168.77.222

realserver1 eth0 192.168.77.221

realserver2 eth0 192.168.77.225

LVS簡介

開發者:

章文嵩(博士) 個人主頁:http://zh.linuxvirtualserver.org

三種模式

VS/NAT VS/DR VS/TUN

十種算法:

Fixed echeduling(rr wrr dh sh)===========靜態調度方法

1. 輪叫 Round-robin (RR)

調度器通過"輪叫"調度算法將外部請求按順序輪流分配到集羣中的真實服務器上,它均等地對待每一臺服務器,

而不管服務器上實際的連接數和系統負載。

2. 加權輪叫 Weithted round-robin (WRR)

調度器通過"加權輪叫"調度算法根據真實服務器的不同處理能力來調度訪問請求。這樣可以保證處理能力強的服務器處理更

多的訪問流量。調度器可以自動問詢真實服務器的負載情況,並動態地調整其權值

3. 目標地址散列 Destination hashing (DH)

"目標地址散列"調度算法根據請求的目標IP地址,作爲散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器

是可用的且未超載,將請求發送到該服務器,否則返回空。

4. 源地址散列 Source hash (SH)

"源地址散列"調度算法根據請求的源IP地址,作爲散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可

用的且未超載,將請求發送到該服務器,否則返回空。

Dynamic Scheduling (lc wlc sed nq lblc lblcr)======================動態調度方法

其算法是:活動鏈接數x256+非活動鏈接數 將client請求分給數值小的服務器。

1. 最少鏈接 Least-connect (LC)

調度器通過"最少連接"調度算法動態地將網絡請求調度到已建立的鏈接數最少的服務器上。如果集羣系統的真實服務器具有相近

的系統性能,採用"最小連接"調度算法可以較好地均衡負載。

2. 加權最少鏈接 Weighted least-connection (WLC) (Default)

在集羣系統中的服務器性能差異較大的情況下,調度器採用"加權最少鏈接"調度算法優化負載均衡性能,具有較高權值的服務器

將承受較大比例的活動連接負載。調度器可以自動問詢真實服務器的負載情況,並動態地調整其權值。

3. 最短期望連接Shortest Expected delay(SED)

對wlc的改進,在wlc算法的基礎上給權重值加一,主要用來針對某個服務器活動鏈接數值爲0情況

4. 從不排隊Never Quene(NQ)

基於SED算法的改進,不排隊

5. 基於局部性的最少鏈接locality-based least-connection (LBLC)

基於局部的最少連接

6. 帶複製的基於局部性最少鏈接 Locality-Based Least Connectionswith Replication (LBLCR)

三種IP負載均衡技術的優缺點比較:

雜項 VS/NAT VS/TUN VS/DR

服務器操作系統 任意 支持隧道 多數(支持Non-arp )

服務器網絡 私有網絡 局域網/廣域網 局域網

服務器數目(100M網絡) 10-20 100 多(100)

服務器網關 負載均衡器 自己的路由 自己的路由

效率 一般 高 最高

查看ip_vs模塊:

檢測系統是否已經加載lvs模塊,默認在2.6.*以上的版本中已經加載了lvs模塊。

可以用modprobe -l命令查看,如果沒有的話需對內核打補丁,或者升級內核到2.6.18以上

# modprobe -l | grep ip_vs

/lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs.ko

/lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_dh.ko

/lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_ftp.ko

/lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_lblc.ko

/lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_lblcr.ko

/lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_lc.ko

/lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_nq.ko

/lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_rr.ko

/lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_sed.ko

/lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_sh.ko

/lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_wlc.ko

/lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs/ip_vs_wrr.ko

我們額外還需要下載ipvs管理工具ipvsadm

http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.25.tar.gz

安裝ipvsadm

## ln -sv /usr/src/kernels/2.6.18-128.el5-i686/ /usr/src/linux =====一定要做,不然報錯,

詳細請看README

# tar -zxvf ipvsadm-1.25.tar.gz

# make && make install

NAT模式:

架構圖:

clip_image002

directory配置:

[root@node1 ~]# service iptables stop ========================保險期間realserver,ldirectory防火牆均需關閉,

因爲iptables和ipvsadm公用netfilter,會衝突

Flushing firewall rules: [ OK ]

Setting chains to policy ACCEPT: mangle [ OK ]

Unloading iptables modules: [ OK ]

# echo 1 > /proc/sys/net/ipv4/ip_forward

# ipvsadm -C

# ipvsadm -A -t 10.10.10.1:80 -s wrr

# ipvsadm -a -t 10.10.10.1:80 -r 192.168.77.221:80 -w 1 -m

# ipvsadm -a -t 10.10.10.1:80 -r 192.168.77.225:80 -w 3 -m -m表示nat模式一定要加,默認是DR模式

# ipvsadm -L -n

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 10.10.10.1:80 wrr

-> 192.168.77.225:80 Masq 3 0 0

-> 192.168.77.221:80 Masq 1 0 0 Masq 會是route

realserver配置:

1.安裝web服務,保證web正常訪問

2.realserver需將網關指向directory即可

測試:

在client上 http://10.10.10.1 測試

DR模式:

這裏我們將HA和HL放到一塊來做,即:VS/DR+heartbeat高可用負載均衡的實現

架構圖:

clip_image004

開始之前我們需要提到幾個概念和注意的問題:

1.arp隱藏

2.爲什麼網上所有的VS/DR配置文檔中,rip vip dip都是在一個網段中(我暫時沒有找到,那位找到的請一定給我個網址,ths)

++++++++++++++++++++++++++++++++++++++++++++++++++++

1.arp隱藏的原理

在LVS的DR模式下,有一個必須要處理的問題就是real server上的ARP響應問題。其實,這個問題不只是LVS,其他的L4 Switch方案比如Foundry的ServerIron,也需要設置real server上的ARP響應。因爲這是這種方案的結構決定的。

根據LVS官方說明,在LVS 的DR模式下,前端的director接收到用戶請求以後,director根據後端real server的負載情況,動態地選擇一臺real server,不修改也不封裝IP報文,而是將數據幀的MAC地址改爲選出的real server的MAC地址,再將修改後的數據幀在與服務器組的局域網上發送。因爲數據幀的MAC地址是選出的real server,所以被選出來的那臺real server肯定可以收到這個數據幀,從中可以獲得該IP報文。當服務器發現報文的目標地址VIP是在本地的網絡設備上,服務器處理這個報文,然後根據路由表將響應報文直接返回給客戶,客戶認爲得到正常的服務,而不會知道是哪一臺服務器處理的。

VS/DR負載調度器也只處於從客戶到服務器的半連接中,按照半連接的TCP有限狀態機進行狀態遷移。

從上邊的LVS DR工作原理可以看到一個客戶端計算機發送一個ARP廣播到LVS-DR集羣,因爲Director和集羣節點(真實服務器1)都是連接到相同的網絡上的,它們都會接收到ARP廣播“是誰的VIP1?”,這個時候我們希望的是隻有前端的director來對用戶進行響應,其他real server不應該響應用戶直接的ARP包。(參考下邊兩幅引用51cto網站的圖)

因此必須對real server進行一定的處理,使其不響應VIP接口上的ARP請求。在2.6系列的內核中,採用的方式是設置arp_announce和arp_ignore這兩個內核參數。

arp_ignore=1,系統只回答目的IP爲是本地IP的包。也就是對廣播包不做響應。

arp_announce=2,系統忽略IP包的源地址(source address),而根據目標主機(target host),選擇本地地址。

而且凡是能收到對VIP ARP廣播報文的網口,都需要設置。設置的方法是修改/etc/sysctl.conf文件

永久的:

net.ipv4.ip_forward = 1

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

臨時:

echo 1 > /proc/sys/net/ipv4/cconf/lo/arp_ignore

echo 2 > /proc/sys/net/ipv4/cconf/lo/arp_announce

echo 1 > /proc/sys/net/ipv4/cconf/all/arp_ignore

echo 2 > /proc/sys/net/ipv4/cconf/lall/arp_announce

參數的具體含義:

arp_announce : INTEGER

默認爲0

對網絡接口上本地IP地址發出的ARP迴應作出相應級別的限制:

確定不同程度的限制,宣佈對來自本地源IP地址發出Arp請求的接口

0 - (默認) 在任意網絡接口上的任何本地地址

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

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

all/ 和{interface}/ 下兩者同時比較,取較大一個值生效.

提高約束級別有益於從指定的目標接受應答,而降低級別可以給予更多的arp查詢者以反饋信息(關於arp代理這一段我普遍翻譯地不好,去啃一下tcp/ip bible的卷一,然後再翻譯吧)

arp_ignore : INTEGER

默認爲0

定義對目標地址爲本地IP的ARP詢問不同的應答模式

0 - (默認值): 迴應任何網絡接口上對任何本地IP地址的arp查詢請求(比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,那麼即使 eth0收到來自10.1.1.2這樣地址發起的對10.1.1.1 的arp查詢也會迴應--而原本這個請求該是出現在eth1上,也該有eth1迴應的)

1 - 只回答目標IP地址是來訪網絡接口本地地址的ARP查詢請求(比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,那麼即使 eth0收到來自10.1.1.2這樣地址發起的對192.168.0.1的查詢會回答,而對10.1.1.1 的arp查詢不會迴應)

2 -只回答目標IP地址是來訪網絡接口本地地址的ARP查詢請求,且來訪IP必須在該網絡接口的子網段內(比如 eth0=192.168.0.1/24,eth1=10.1.1.1/24,eth1收到來自10.1.1.2這樣地址發起的對192.168.0.1 的查詢不會回答,而對192.168.0.2發起的對192.168.0.1的arp查詢會迴應)

3 - 不迴應該網絡界面的arp請求,而只對設置的唯一和連接地址做出迴應(do not reply for local addresses configured with scope host,only resolutions for global and link addresses are replied 翻譯地似乎不好,這個我的去問問人)

4-7 - 保留未使用

8 -不迴應所有(本地地址)的arp查詢

all/ 和{interface}/ 下兩者同時比較,取較大一個值生效.

2.rip vip dip都是在一個網段中,其實沒有必要,因爲linux內核默認是不轉發源IP是自己的包,我們需要打forward_shared補丁包,

遺憾的是我沒有堅持下來,呵呵,帶日後有時間了再殺他一回。呵呵

參考文章:

http://www.cnblogs.com/ljkeke/archive/2009/02/17/1392693.html

可以在調度器上使用DR方式,真實服務器使用私有地址並在邏輯設備上配置虛擬IP地址,用調度器作網關訪問公網。

但是,linux內核發行版基本上不支持 share_forward和rp_filter選項,它不會轉發源IP是自已的包,所以要打

forward_shared補丁和使用那兩個選項來實現包的轉發。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

directory配置: 兩臺配置基本一樣

安裝heartbeat

http://www.ultramonkey.org/download/heartbeat/2.1.3/heartbeat-2.1.3.tar.gz

http://hg.linux-ha.org/heartbeat-STABLE_3_0/archive/STABLE-3.0.3.tar.bz2 這個貌似很新,但是我一直沒有下載成功過

http://down.51cto.com/download.php?do=attachment&aid=107685&k=c8469a3d5830e56e6cd13060a0ed7816&t=1281434320

我用的是第三個鏈接(解壓縮後是八個包),因爲第一個是源代碼包,中間編譯過程會因爲系統的不同出現不同的需求和錯誤,

很是麻煩。如果鏈接失敗的話,可以給我留言,我郵件給諸位

# ls

heartbeat-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm

heartbeat-devel-2.1.4-9.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm

heartbeat-gui-2.1.4-9.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm

heartbeat-ldirectord-2.1.4-9.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm

# yum localinstall ./*.rpm

# rpm -qa | grep heartbeat

heartbeat-2.1.4-9.el5

heartbeat-devel-2.1.4-9.el5

heartbeat-ldirectord-2.1.4-9.el5

heartbeat-pils-2.1.4-10.el5

heartbeat-gui-2.1.4-9.el5

heartbeat-stonith-2.1.4-10.el5

# pwd

/etc/ha.d ==================主目錄

# ls

apphbd.cf COPYING.LGPL GettingStarted.txt hb_report.html README startstop

authkeys DirectoryMap.txt ha.cf hb_report.txt Requirements.html

AUTHORS faqntips.html HardwareGuide.html heartbeat_api.html Requirements.txt

ChangeLog faqntips.txt HardwareGuide.txt heartbeat_api.txt rsync.html

COPYING GettingStarted.html haresources logd.cf rsync.txt

# cp /usr/share/doc/heartbeat-2.1.4/authkeys ha.cf haresources /etc/ha.d/

# service heartbeat start

#echo -ne "auth1\n1 sha1" >> authkeys

#dd if=/dev/urandom bs=512 count=1 | openssl md5 >> authkeys

1+0 records in

1+0 records out

512 bytes (512 B) copied, 0.000372942 seconds, 1.4 MB/s

我們可以看到裏面新增了兩行

#vim /etc/ha.d/authkeys

auth1

1 sha1 9e43d13a84f2b9ea486516d709e748b5

# vim ha.cf =============開啓如下行,具體含義如下

debugfile /var/log/ha-debug

logfacility local0

keepalive 2

deadtime 30

warntime 10

initdead 120

udpport 694

bcast eth1

auto_failback on

node node1.example.com

node node2.example.com

# vim haresources ===========聲明主節點和虛擬ip地址

node1.example.com 192.168.77.250 httpd

#chmod 600 Authkeys

配置ha.cf

這個配置文件告訴heartbeat 使用的是什麼介質和如何配置它們。ha.cf 包含你將到的所有的選項,內容如下:

serial /dev/ttyS0

使用串口heartbeat - 如果你不使用串口heartbeat, 你必須選擇其它的介質,比如以太網bcast (ethernet) heartbeat。如果你使用其它串口heartbeat,修改/dev/ttyS0 爲其它的串口設備。

watchdog /dev/watchdog

可選項:watchdog功能提供 了一種方法能讓系統在出現故障無法提供"heartbeat"時,仍然具有最小的功能,能在出現故障1分鐘後重啓該機器。這個功能可以幫助服務器在確實停 止心跳後能夠重新恢復心跳。如果你想使用該特性,你必須在內核中裝入"softdog" 內核模塊用來生成實際的設備文件。想要達到這個目的, 首先輸入 "insmod softdog" 加載模塊。然後,輸入"grep misc /proc/devices" 注意顯示的數字 (should be 10).然後, 輸入"cat /proc/misc | grep watchdog" 注意輸出顯示出的數字(should be 130)。現在你可以生成設備文件使用如下命令:"mknod /dev/watchdog c 10 130" 。

bcast eth1

指定使用的廣播heartbeat 的網絡接口eth1(修改爲eth0, eth2, 或你所使用的接口)

keepalive 2

設置心跳間隔時間爲2兩秒。

warntime 10

在日誌中發出最後心跳"late heartbeat" 前的警告時間設定。

deadtime 30

在30秒後明確該節點的死亡。

initdead 120

在一些配置中,節點重啓後需要花一些時間啓動網絡。這個時間與"deadtime"不同,要單獨對待。 至少是標準死亡時間的兩倍。

hopfudge 1

可選項: 用於環狀拓撲結構,在集羣中總共跳躍節點的數量。

baud 19200

串口波特率的設定(bps).

udpport 694

bcast和ucast通訊使用的端口號694 。這是缺省值,官方IANA 使用標準端口號。

nice_failback on

可選項:對那些熟悉Tru64 Unix, 心跳活動就像是"favored member"模式。主節點獲取所有資源直到它宕機,同時備份節點啓用。一旦主節點重新開始工作, 它將從備份節點重新獲取所有資源。這個選項用來防止主節點失效後重新又獲得集羣資源。

node linuxha1.linux-ha.org

強制選項:通過`uname -n`命令顯示出的集羣中的機器名。

node linuxha2.linux-ha.org

強制選項:通過`uname -n`命令顯示出的集羣中的機器名。

respawnuseridcmd

可選項:列出可以被spawned 和監控的命令。例如:To spawn ccm 後臺進程,可以增加如下內容:

respawn hacluster /usr/lib/heartbeat/ccm

通知heartbeat 重新以可信任userid身份運行(在我們的例子中是hacluster) 同時監視該進程的"健康"狀況,如果進程死掉,重啓它。例如ipfail, 內容如下:

respawn hacluster /usr/lib/heartbeat/ipfail

NOTE: 如果進程以退出代碼100死掉, 這個進程將不會respawned。

pingping1.linux-ha.orgping2.linux-ha.org ....

可選項:指定ping 的節點。 這些節點不是集羣中的節點。它們用來檢測網絡的連接性,以便運行一些像ipfail的模塊。

2.6.5.2. 配置 haresources

一旦你配置好了ha.cf文件,下面就需要設置haresources文件,這個文件指定集羣所提供的服務以及誰是缺省的主節點。注意,該配置文件在所有節點應該是相同的。

在我們的例子中,我們的HA集羣提供的是負載均衡服務(LVS)和服務監控服務(Ldirectord)。這裏集羣的IP(虛擬)地址是必須配置的,不要在haresources文件以外的地方配置該IP地址。所以我們應該添加如下一行:

linuxha1 IPaddr::192.168.7.110/24/192.168.7.255 ipvsadm ldirectord::www ldirectord::mail

::前的表示服務腳本名稱(IPaddr),你可以在目錄/etc/ha.d/resource.d下找到一個腳本名叫 Ipaddr,後面的表示輸入的參數。

Heartbeat 會在下面的路徑搜索同名的啓動腳本:

/etc/ha.d/resource.d

/etc/rc.d/init.d

這裏的服務腳本的使用是符合Init標準語法,所以你可以在這裏通過Heartbeat方便地運行、停止/etc/rc.d/init.d下標準的服務後臺進程。

2.6.5.3. 配置 Authkeys

配置加密認證算法,有三種算法:CRC, md5,sha1。你會問我們應該用哪種呢?

如果你的heartbeat 運行在一個安全的網絡,例如CAT5交叉線,你可以用CRC,從資源開銷上來說,這是最節省開銷的。如果網絡是不可靠的,而且你也不是一個網絡安全癡狂者 或者你十分關心CPU資源的最小開銷,就用md5,最後如果你關心的是安全而不是CPU資源的開銷,那麼建議你使用sha1,你將會得到最佳的安全度,很難被***所破解。

格式如下:auth <number><number> <authmethod> [<authkey>]

例: /etc/ha.d/authkeys

使用sha1

auth 1

1 sha1 key-for-sha1-any-text-you-want

使用md5

auth 1

1 sha1 key-for-md5-any-text-you-want

使用CRC

auth 2

2 crc

設置調度算法:

# ipvsadm -C

# ipvsadm -A -t 192.168.77.250:80 -s wrr

# ipvsadm -a -t 192.168.77.250:80 -r 192.168.77.221:80 -w 1 -g

# ipvsadm -a -t 192.168.77.250:80 -r 192.168.77.225:80 -w 3 -g

# ipvsadm -L -n

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-&gt; RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 192.168.77.250:80 wrr

-&gt; 192.168.77.225:80 Route 3 0 0

-&gt; 192.168.77.221:80 Route 1 0 0

這裏需要注意的是:

1.一定確保每個ldirectoty的hosts文件中都有其他directory的名稱解析,(或者建DNS服務一也可,強烈的不建議哈)

不然ldirectory會找不到其他的ldriectory調度器

2.Nat模式需要開啓ip_forward=1路由功能,而在DR模式中是不需要開啓IP_forward功能的,除非是因爲有特別要求

# hostname

node1.example.com 另外一臺爲node2.example.com

# cat /etc/hosts ====================兩臺directory hosts文件中需聲明,並作相應配置

192.168.0.1 node1.example.com node1

192.168.77.222 node1.example.com node1

192.168.0.2 node2.example.com node2

192.168.77.220 node2.example.com node2

realserver配置:

#service httpd stop ============證實web服務是由heartbeat控制的,而非realserver自身了

# echo 1 &gt; /proc/sys/net/ipv4/cconf/lo/arp_ignore

# echo 2 &gt; /proc/sys/net/ipv4/cconf/lo/arp_announce

# echo 1 &gt; /proc/sys/net/ipv4/cconf/all/arp_ignore

# echo 2 &gt; /proc/sys/net/ipv4/cconf/lall/arp_announce

# ifconfig lo:0 192.168.77.250 broadcast 192.168.77.250 netmask 255.255.255.255 up

# route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.77.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 0 0 0 eth0

0.0.0.0 192.168.77.222 0.0.0.0 UG 0 0 0 eth0

# route add -host 192.168.77.250 dev lo:0

# route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.77.250 0.0.0.0 255.255.255.255 UH 0 0 0 lo

192.168.77.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 0 0 0 eth0

0.0.0.0 192.168.77.222 0.0.0.0 UG 0 0 0 eth0

測試:

1.在client測試 http://192.168.77.250 會輪顯兩臺realserver的web內容(建議將兩臺web的內容設置不一樣,以便於區別)

2.關掉master directory,網頁依然可以正常訪問,在輔助directory上執行

#ipvsadm -L -n

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-&gt; RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 192.168.77.250:80 wrr

-&gt; 192.168.77.225:80 Route 3 0 0

-&gt; 192.168.77.221:80 Route 1 0 0

# ifconfig

eth0 Link encap:Ethernet HWaddr 00:0C:29:FF:42:84

inet addr:192.168.77.220 Bcast:192.168.77.255 Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:feff:4284/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:140116 errors:0 dropped:0 overruns:0 frame:0

TX packets:23633 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:18547910 (17.6 MiB) TX bytes:2062186 (1.9 MiB)

Interrupt:67 Base address:0x2000

eth0:0 Link encap:Ethernet HWaddr 00:0C:29:FF:42:84

inet addr:192.168.77.250 Bcast:192.168.77.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

Interrupt:67 Base address:0x2000

eth1 Link encap:Ethernet HWaddr 00:0C:29:FF:42:8E

inet addr:192.168.7.220 Bcast:192.168.7.255 Mask:255.255.255.0

UP BROADCAST MULTICAST MTU:1500 Metric:1

RX packets:70991 errors:0 dropped:0 overruns:0 frame:0

TX packets:10549 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:10854575 (10.3 MiB) TX bytes:2693378 (2.5 MiB)

Interrupt:75 Base address:0x2080

我們會發現虛擬IP地址192.168.77.250:80會自動添加過來

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章