作者 主題: 請教有使用ipvs架設LVS IP-Tunneling的學長們....  (閱讀 4400 次)

0 會員 與 1 訪客 正在閱讀本文。

湯姆貓

  • 活潑的大學生
  • ***
  • 文章數: 475
    • 檢視個人資料
小弟利用ipvs+mon完成架設LVS IP-Tunneling...
但是遇到了一個怪問題...
就是跑了兩天後.....
在第三天的早上七點半....
Load Balancer對外流量突然測不到了.....
然後底下其中的一台Real Server流量變高....

查看了ipvsadm
[root@lvserver ~]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  210.xxx.227.xxx:http wlc
  -> realserver1.lvs.com:http    Tunnel  1      0          0
  -> realserver2.lvs.com:http            Tunnel  1      0          0
  -> realserver3.lvs.com:http           Tunnel  1      0          0
  -> realserver4.lvs.com:http            Tunnel  1      0          0
發現ActiveConn及InActConn都沒了......

這時用IE開啟210.xxx.227.xxx的網頁,還可以看的到.....
所以應該是全部導到底下的其中一台....沒有再做Load Balance
原本以為是mon沒有監測到掛掉的Real Server而導致的,
接著我把其中一台的Real Server Web停掉..

底下是Load Balancer的message log
Feb 17 17:16:23 lvserver mon[1093]: failure for realserver2 http 1140167783 210.xxx.227.aaa
Feb 17 17:16:23 lvserver mon[1093]: calling alert mail.alert for realserver2/http (/usr/lib/mon/alert.d/mail.alert,logwatch@lvs.com) 210.xxx.227
.aaa
Feb 17 17:16:23 lvserver mon[1093]: calling alert lvs.alert for realserver2/http (/usr/lib/mon/alert.d/lvs.alert,-P tcp -V 210.xxx.227.xxx:80 -R
210.xxx.227.aaa -W 1 -F tun) 210.xxx.227.aaa

這時ipvsadm -L裡這筆210.xxx.227.aaa也被移除,
再把Real Server Web打開

Load Balancer的message log出現
Feb 17 17:16:52 lvserver mon[1093]: calling upalert mail.alert for realserver2/http (/usr/lib/mon/alert.d/mail.alert,logwatch@lvs.com) 210.xxx.2
27.aaa
Feb 17 17:16:52 lvserver mon[1093]: calling upalert lvs.alert for realserver2/http (/usr/lib/mon/alert.d/lvs.alert,-P tcp -V 210.xxx.227.xxx:80 -
R 210.xxx.227.aaa -W 1 -F tun) 210.xxx.227.aaa
再看ipvsadm -L裡這筆210.xxx.227.aaa又被加入了...

所以mon機制是沒有問題的....
不知道有沒有學長遇過這個怪問題..??

湯姆貓

  • 活潑的大學生
  • ***
  • 文章數: 475
    • 檢視個人資料
請教有使用ipvs架設LVS IP-Tunneling的學長們....
« 回覆 #1 於: 2006-02-20 15:46 »
再次做了實驗把Virtual IP由210.xxx.59.xxx改成另一個IP..
整個IP-Tunneling及mon也改成另一個IP...
重新啟動後.....發現LVS又可以Load Balance了...
猜想會不會是Switch的問題.

接著我再把Virtual IP恢復成210.xxx.59.xxx,
重新啟動後.....LVS又無法做Load Balance..

最後我把LVS的Virtual IP整個拿掉...
也就是說把整個LVS架構停掉,包括底下所有Real Server的IP-Tunneling都拿掉...

然後用外面的電腦ping 210.xxx.59.xxx,
居然可以ping的到....
最後用ssh去連.......結果直接連到底下其中那台流量變大的那台.....
這.........是ARP沒處理好嗎??

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5412
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
請教有使用ipvs架設LVS IP-Tunneling的學長們....
« 回覆 #2 於: 2006-02-20 16:01 »
你的 real server 的 ip 可以不經由 virtual server 就直接連到嗎? (就是用 DR mode, 而不是 NAT mode)
如果是的話, 那應該是在 real server 與 virtual server 都要對 arp 的問題另外做處理.

否則, 對方在連線後, 就不會再經由 virtual server 連線了, 而是直接與 real server 連線, 這樣就失去就 load balance 的用意了.

湯姆貓

  • 活潑的大學生
  • ***
  • 文章數: 475
    • 檢視個人資料
請教有使用ipvs架設LVS IP-Tunneling的學長們....
« 回覆 #3 於: 2006-02-20 16:22 »
real server是可以不經由virtual server就直接連到的,是使用IP-Tun mode
real server是使用(系統是Fedora Core 4)
/sbin/ifconfig tunl0 210.xxx.227.xxx -arp netmask 255.255.255.255 broadcast 210.xxx.227.xxx
也就是使用ifconfig -arp來處理arp問題
以下是real server的ifconfig tunl0部份
tunl0     Link encap:IPIP Tunnel  HWaddr
          inet addr:210.xxx.227.xxx  Mask:255.255.255.255
          UP RUNNING NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
上面寫到UP RUNNING NOARP

湯姆貓

  • 活潑的大學生
  • ***
  • 文章數: 475
    • 檢視個人資料
請教有使用ipvs架設LVS IP-Tunneling的學長們....
« 回覆 #4 於: 2006-02-20 16:36 »
引述: "twu2"
你的 real server 的 ip 可以不經由 virtual server 就直接連到嗎? (就是用 DR mode, 而不是 NAT mode)
如果是的話, 那應該是在 real server 與 virtual server 都要對 arp 的問題另外做處理.

否則, 對方在連線後, 就不會再經由 virtual server 連線了, 而是直接與 real server 連線, 這樣就失去就 load balance 的用意了.


real server的arp處理我是用ifconfig -arp去做
virtual server也要處理arp問題嗎??