作者 主題: 多線對外服務之大哉問 (linux)  (閱讀 219220 次)

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

Anonymous

  • 訪客
多線對外服務之大哉問 (linux)
« 於: 2002-05-03 07:12 »
由於小弟待的公司網路對外服務眾多,頻寬始終供不應求
於是在近日申請了另外一條線(cable)連接原先提供服務之主機
機器上跑的是Redhat 7.2,三張網卡,一張對內,兩張對外(同ISP同Gatway)

原先小弟的想法是利用DNS Round Robin的方式不斷互換提供客戶服務的IP作為分擔負載的方式
不過卻發現兩張對外的網卡同時只能有一張在運作..應該說同一時間只有其中一個IP能動..
照理來說只要路由是通的那麼客戶應該可以從兩個對外的IP中任何一個連線進來
但是卻只有一個是暢通的,另外一個從外面根本連PING都PING不到..像是完全不存在似的
但是奇怪的是如果由該主機內部,自己指定網卡就能連得出去,像是ping -I eth1 a.b.c.d,完全沒有障礙
指定由原先停擺的IP主動連到外面後,外面也能透過該IP進來了,不過時間不長,過一下子該IP又死掉了
依照小弟自己愚蠢的推測是,當該IP主動連出後改變了Route所以外面可以連得進來,後來Routing Table Cache過時,就又恢復成原來的樣子了..不知道這樣解釋是不是合理?

一位朋友告訴小弟在RedHat下對外同時只會存在一個IP..除非路由改變了或是其中一個裝置終止,只有在Mandrake或Debian下有套件可以做到..
但我覺得這不大正確..因為只要該裝置(ethx)定時發送訊息到外面,那麼還是可以正常運作,利用這種笨方式可以讓兩個IP對外都正常的跑..
但是也不能一直這樣跑下去,萬一機器Reset或系統更動就得重弄一遍  :cry:

自從答應老闆幫忙管理機器之後越來越覺得腦細胞不夠用來做邏輯思考..燒光了  :(
希望有經驗的前輩及學長們可以幫忙解除小弟心中的疑惑,感激不盡..

kenny

  • 訪客
多線對外服務之大哉問 (linux)
« 回覆 #1 於: 2002-05-03 12:56 »
不妨再將腦細胞花在如下文章上﹕

http://www.study-area.org/tips/iproute.htm

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
多線對外服務之大哉問 (linux)
« 回覆 #2 於: 2002-05-04 01:55 »
你可能需要...

1.Linux LVS
2.R-Proxy

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
多線對外服務之大哉問 (linux)
« 回覆 #3 於: 2002-05-04 17:32 »
我想您的問題要從兩方面來談:
一是您的 RedHat 主機有兩條對外的 adsl 連線,這是屬於 Multipath 的問題,如下的網址可以解決 :

http://www.study-area.org/linux/linuxfr.htm

二是 Load Balance 的問題,我想您的設定可以解決部份的問題,但是如果要更好的方式,duncanlo 兄說的 LVS 的方式不錯,但是這就不是一台 RedHat 可以解決的,少說也要兩台
=========================
http://www.kuolung.net
==========================

Nico Liang

  • 訪客
多線對外服務之大哉問 (linux)
« 回覆 #4 於: 2002-05-05 05:55 »
1.最棒的解決方案為採購設備
    F5-->Link Controller(預估70萬)
   RADWARE-->LinkProof(預估70萬)
   Ascenvision-->AscenLink(預估10-50萬現有3種型號)
   上述都可作外送流量和內送流量Load Balance & Redundent
   也就是一般常說的WAN TRUNKING和Multi-Homing                  
   ISB Pro800Turbo(約3萬)
   只能作外送流量按比例分配
    而且處理能力不高適合SOHO
2.如果只是要對外流量負載平衡
    當然架LINUX最便宜最快
    但是現在企業需要的是線路斷線時
    網站不能停止服務
    所以Multi-Homing就很重要啦
3.各位選擇第二家ISP時要特別注意
   如果都是從中華電信機房進線
   那麼有95%的機會你的2條線路會同時斷線
   通常我會建議我的客戶第一條線路選HINET
   第二條選擇新的固網業者(重點是有沒有自有機房與線路)
  如果沒有得選CABLE MODEM是一個備援的好方案
   因為它是走有線電視系統(同軸)
4.這個網站非常好
    以後有機會會常來看看

有任何網路設備的問題或是找網路解決方案
歡迎寫信給我
nicoliang@giga.net.tw

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
多線對外服務之大哉問 (linux)
« 回覆 #5 於: 2002-05-05 12:47 »
F5-->Link Controller(預估70萬)
RADWARE-->LinkProof(預估70萬)
Ascenvision-->AscenLink(預估10-50萬現有3種型號)

1、哇! 我瘋了,估算一下,這些加起來大約要 200 萬,我不知道這樣的設備可以接幾條 wan , 不過以我們用 adsl 的例子,我個人覺得,用 Linux 足已。

2、以現在 Linux 的技術,Multi-Homing 可以做得到

3、這也是我比較注意的,不過在我們桃園的楊梅地區,目前還沒有第第二家固網可用,我只好用中華的 ADSL 線但用兩家 isp (我用的另一家 ISP 就是和信,不過最近可能會換成 seednet , 因為出國的部份實在太慢了 )

4、這裡當然非常好,我幾乎天天在這個網,有空多多討論討論

kuolung@ms.kuolung.net
=========================
http://www.kuolung.net
==========================

Anonymous

  • 訪客
Re: 多線對外服務之大哉問 (linux)
« 回覆 #6 於: 2002-05-05 23:00 »
引述: "Anonymous"
一位朋友告訴小弟在RedHat下對外同時只會存在一個IP..除非路由改變了或是其中一個裝置終止,只有在Mandrake或Debian下有套件可以做到..
但我覺得這不大正確..因為只要該裝置(ethx)定時發送訊息到外面,那麼還是可以正常運作,利用這種笨方式可以讓兩個IP對外都正常的跑..
但是也不能一直這樣跑下去,萬一機器Reset或系統更動就得重弄一遍  :cry:

不知道你是否是指RIP的Routed,
這樣你就不用於Linux內指定Default Route的值,
而Routed的RIP會自動幫你選最快的線路,
斷了一條,自動會把連線轉到另一條,
不過會頓幾秒,假如上面再跑個Proxy那更好,
我曾在64k專線+GigaCableModem上試過,
不過連線都倒向較快的CableModem...

ZMAN

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 6247
  • 性別: 男
    • 檢視個人資料
    • 魔力門部落格
多線對外服務之大哉問 (linux)
« 回覆 #7 於: 2002-05-05 23:44 »
不是每個設備都要買
而是自己根據需求選擇一樣買
這些設備有的可以支援很多條WAN
有的包含防火牆,DHCP,NAT,頻寬管理,CACHE等等
可以上個別的原廠網站去了解功能

目前我只找到LINUX關於對外的負載平衡如何做
MULTI-HOMING我不知道那兒有資料

網路規劃沒有最好的解決方案
只有最適當的解決方案
各位可以根據預算需求及技術能力選擇之
網路規劃對我而言是一門藝術
佈線深似海!
網路高如天!

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
多線對外服務之大哉問 (linux)
« 回覆 #8 於: 2002-05-06 08:37 »
對 ! 說得沒錯,就是要依實際的狀況來定最適當的解決方案,

Nico Liang兄,謝謝您的指導,想請教您,您有關

"目前我只找到LINUX關於對外的負載平衡如何做 "

的資料是否可以分享一下,看是不是有更好的方法
=========================
http://www.kuolung.net
==========================

ZMAN

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 6247
  • 性別: 男
    • 檢視個人資料
    • 魔力門部落格
多線對外服務之大哉問 (linux)
« 回覆 #9 於: 2002-05-06 09:54 »
There are the information you need in this site.

If you need the other information,
You must understand BGP in the first.
F5 & Radware solution use BGP to do the same thing.
Ascenvision use multipath & special DNS.

Sorry,now I don't have Chinese system to reply.
佈線深似海!
網路高如天!

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
多線對外服務之大哉問 (linux)
« 回覆 #10 於: 2002-05-06 14:46 »
謝謝您,我到 LDP 去找,都沒有 BGP 的相關資料,只有一篇

"Linux Advanced Routing & Traffic Control HOWTO"

網址 : http://www.tldp.org/HOWTO/Adv-Routing-HOWTO.html

有提到 BGP , 但只有一個連結到 Cisco 相關文章,可否請您做一個簡單的說明

因我看 Cisco 的文章,好像都要 isp 配合才可以使用 BGP
=========================
http://www.kuolung.net
==========================

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
多線對外服務之大哉問 (linux)
« 回覆 #11 於: 2002-05-06 15:29 »
你的網路需要到用PGP嗎?
只有一Group一Group那種的環境比較適用,
像校園網路的環境,
假如F5的價位太高,
你可以到資訊家族去找一下,
有一些支援2wan以上的防火牆設備,
國外已有很多類似的產品推出,
Linux上的套件應很快就有了...

ZMAN

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 6247
  • 性別: 男
    • 檢視個人資料
    • 魔力門部落格
多線對外服務之大哉問 (linux)
« 回覆 #12 於: 2002-05-07 13:06 »
現在市場上對超過2條WAN的整合需求非常非常非常非常非常大
要做對外負載平衡不難要做對內負載平衡不容易

只要短時間內有人可以開發出一套產品
1.In-Bond Load Balance
2.Out-Bond Load Balance
3.Bandwidth Management
4.DHCP,NAT,PROXY,Firewall一堆雜七雜八功能
然後有一個簡單漂亮的人機介面,好安裝好設定
然後價位不能太高
保證一定可以賺大錢

ASCENVISON(國內亞盛科技)
是由一堆待過微軟英特爾等大公司多年的博士創立
它們就是做了一個一個BOX包含上述功能叫做ASCENLINK
他們打算靠這個產品上市上櫃

如果各位覺得這些技術沒什麼了不起
我願意高薪請你來開發這個產品
但是要快時機一過就賺不到錢啦
佈線深似海!
網路高如天!

kenny

  • 訪客
多線對外服務之大哉問 (linux)
« 回覆 #13 於: 2002-05-07 13:20 »
在 Linux 基礎上開發嗎﹖應該可以吧~~
搞不好﹐連 Cluster 和 HA 也做進去都還可以。

不過﹐我個人目前沒這樣的環境來實作﹐
在前公司的最後一個 project 本來就打算做這個的﹐
不過離職了當然就不謀其政了。

當時在做 research 的時候﹐發現許多方案都在 Linux 上具備了﹐
只是需要加以整合而已。

不過﹐我覺得在 inbond 的 load balance 上面﹐似乎離開了 ISP 端的配合﹐還是非常有限的。還是﹐我的理解有錯誤呢﹖還是根本可以透過其他技巧(如 round-robin DNS 查詢之類)來達成呢﹖

很想聽聽 Nico兄 的意見~~

Anonymous

  • 訪客
多線對外服務之大哉問 (linux)
« 回覆 #14 於: 2002-05-07 13:34 »
目前我只知道F5和RADWARE是用BGP解決
上一代的F5是用兩個產品兜在一起解決
ASCENVISION是利用DNS解決
所以客戶端一定要架 LOCAL PRIMARY DNS

我對這領域不太熟
只是看到這有一大塊市場
想要讓自己是業有大突破
這是一個好機會

ZMAN

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 6247
  • 性別: 男
    • 檢視個人資料
    • 魔力門部落格
多線對外服務之大哉問 (linux)
« 回覆 #15 於: 2002-05-07 13:36 »
奇怪
怎麼會變GUEST離線了
佈線深似海!
網路高如天!

kenny

  • 訪客
多線對外服務之大哉問 (linux)
« 回覆 #16 於: 2002-05-07 13:43 »
難怪這位 Guest 如此厲害~~  ^_^

對了﹐關於 inbound 部份﹐不知道 Nico 兄有看過 LVS 的設計嗎﹕

http://www.linuxvirtualserver.org/

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
多線對外服務之大哉問 (linux)
« 回覆 #17 於: 2002-05-07 14:13 »
到Redhat找Parahan來試試吧!
不過那比較適合在容錯的環境,
有一套EdgeServer也是作這樣的功能,
不過那個要$$$$$...

ZMAN

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 6247
  • 性別: 男
    • 檢視個人資料
    • 魔力門部落格
多線對外服務之大哉問 (linux)
« 回覆 #18 於: 2002-05-07 14:19 »
就我個人初淺的了解

LVS應該是在作所謂的伺服器負載平衡及伺服器叢集

伺服器負載平衡用白話一點來舉例
假設KIMO網站每天有超過100萬人上去瀏覽
這時候1台伺服器會負荷不了這個LOADING
於是就想到用多台伺服器來服務
但是需要一個設備提供機制來決定由哪一台伺服器服務
例如使用輪詢,加權輪詢,最快回應時間,最少連線數等等因子來決定
這時候VIP在這個設備再由他根據設定交給哪一台伺服器處理
這樣子一方面使用者會覺得反應很快一方面比較不會遇到什麼404的問題
我在2年前負責DATA CENTER領域時
當時有很多知名產品像ALTEON,Arrow point,ipvote..(很多忘了名字或怎麼拼)
現在幾乎都被NORTEL,CISCO等大廠買走了
像CABLETRON也就是現在的ENTERASYS的交換器也支援這個功能
隨著DATA CENTER的沒落這些設備也漸漸賣不出去

伺服器叢集簡單的說就是有2台A,B伺服器
經由HEART-BEAT偵測彼此是否活著
當A伺服器掛掉時,B伺服器會自動接手A的服務

以上所說只是簡單舉例
其中當然有很深的學問在裡面


我不知道LVS是否和INBOND的負載平衡有任何關係
我想要的功能是
假設你有一條ADSL到HINET,一條ADSL到SEEDNET,有一個X網站
所有要到你的X網站的流量都可以按照政策分佈在這兩條ADSL進來
如果其中有一條斷線,所有流量會自動從另一條進來
我之前提的F5,RADWARE,ASCENVISION都做得到
我不知道用LINUX該如何做
但是我確定一定可以做
因為ASCENVISION的核心就是LINUX
佈線深似海!
網路高如天!

kenny

  • 訪客
多線對外服務之大哉問 (linux)
« 回覆 #19 於: 2002-05-07 14:34 »
看來 nico兄 的研究遠在小弟之上﹐看來 LVS 的設計確實不能做不同線路(尤其是不同 ISP )的 inbound balance 。我只是從文件上看到它可以將 traffice (application) 給導到別的 site 去。但前提是﹐如果用來做 despatch 的主機的線路斷了的話﹐那就沒什麼作用了。

我對 BGP 協定毫無了解﹐不知道 nico兄 有時間(我說有時間的前提下)和大家說明一下嗎﹖如果太複雜﹐那就讓我們去找 search engin 好了~~

ZMAN

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 6247
  • 性別: 男
    • 檢視個人資料
    • 魔力門部落格
多線對外服務之大哉問 (linux)
« 回覆 #20 於: 2002-05-07 14:59 »
哈哈,你太看的起我了
其實我也不懂BGP
我映像中在天瓏書局看過一本專講BGP的原文書

至於你提到的導引流量到別的SITE
應該是市面上所謂的Multi-Site Load Balancer
舉例來說
INTEL是全球性的公司
如果全世界每一個人要看INTEL網站
都打www.intel.com到美國總部去
那美國網站到底要多少伺服器及多大頻寬才能服務全世界的人
於是大約3年前INTEL使用了Multi-Site Load Balancer
把全世界來的流量按照政策分散到全世界各地的INTEL網站
這樣子可以分配流量
又可以避免美國WEB SERVER掛掉就掛站了
但是各位卻一點也不曉得這回事
只覺得INTEL網站又快又從來不當掉真是厲害

八卦補充
INTEL用了這種設備後覺得傑克這真是太神奇了
於是就把這家公司買下來(IPIVOT)
將這家公司的系列產品改為INTEL NETSTRUCTURE系列
當時的7110是SSL加速器
            7140/7170是SERVER LOAD BALANCER
         7190是MULTI-SITE LOAD BALANCER
可惜現在INTEL已經將這些設備停產退出江湖了

想了很久...
佈線深似海!
網路高如天!

kenny

  • 訪客
多線對外服務之大哉問 (linux)
« 回覆 #21 於: 2002-05-07 23:01 »
今天下午剛好有機會碰到一位網路前輩﹐於是順便請教對方 BGP 的問題。對方說這要申請 SA number ﹐並且也必須和 ISP 端配合才行。通常﹐這會牽涉到不同 ISP 之間的流量計算以及基本服務費等問題。似乎 inboad load balance 不是單一設備就能解決的呢~~

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
多線對外服務之大哉問 (linux)
« 回覆 #22 於: 2002-05-07 23:19 »
所以我說那一Group一Group的PGP,
一般都是在校園網路實用較多,
每個學院或每一棟是一個Group,
Group和Group之間還可以作Routing,
達到保留頻寬及路徑最佳化...

看一下你Linux內的Gated,
它可以支援RIP, BGP, EGP, HELLO, OSPF等協定!
通常都是自己有一堆Cisco Router才有這樣玩...

LVS可以依順序,權重等方式分散Loading,
不過多是適用於同一個網段內容錯用...

除了Hardware的設備外,
那個Edge Server可以作到
inbound負載平衡及路徑最佳化,
你可以把網站放在世界各地,
它會把你轉到最佳的主機,
而且同時也有容錯功能,
就像你用Yahoo或IBM的網站,
都是連到最近最快的站,
它也有Linux版的,可惜都要$$$.....

Anonymous

  • 訪客
多線對外服務之大哉問 (linux)
« 回覆 #23 於: 2002-05-08 10:02 »
1.如果我每隔一段時間PING這兩條ADSL看是不是還活著
   只要其中一條PING不通就通知DNS只回應活著那一條的IP
  這樣是不是就做到容錯備援

2.如果DNS按照政策回應IP是不是就做到負載平衡

,我熟悉的領域在硬體設備
不知道這樣LINUX是不是可以WORK

另外YAHOO之所以在全世界都那麼快
是因為它善用了Reverse CACHE及CDN

ZMAN

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 6247
  • 性別: 男
    • 檢視個人資料
    • 魔力門部落格
多線對外服務之大哉問 (linux)
« 回覆 #24 於: 2002-05-08 10:05 »
奇怪又變GUSET了
在家裏上線會一進站就登錄好了
在公司上線卻要輸入帳號密碼
可是我不曾設定要自動登錄啊
佈線深似海!
網路高如天!

kenny

  • 訪客
多線對外服務之大哉問 (linux)
« 回覆 #25 於: 2002-05-08 11:08 »
引述: "Anonymous"
1.如果我每隔一段時間PING這兩條ADSL看是不是還活著
   只要其中一條PING不通就通知DNS只回應活著那一條的IP
  這樣是不是就做到容錯備援

2.如果DNS按照政策回應IP是不是就做到負載平衡

,我熟悉的領域在硬體設備
不知道這樣LINUX是不是可以WORK

另外YAHOO之所以在全世界都那麼快
是因為它善用了Reverse CACHE及CDN


1 和 2 都應該可以﹐但覺得那是 DNS 的功勞而已~~
對了﹐不知道 CDN 是什麼呢﹖

p.s. 至於不能輸入‘自動登錄’﹐或許先做個‘登出’﹖

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
多線對外服務之大哉問 (linux)
« 回覆 #26 於: 2002-05-08 11:12 »
引述: "Anonymous"
1.如果我每隔一段時間PING這兩條ADSL看是不是還活著
   只要其中一條PING不通就通知DNS只回應活著那一條的IP
  這樣是不是就做到容錯備援

2.如果DNS按照政策回應IP是不是就做到負載平衡


DNS可以指定要或不要輪詢,
你可以設計一個heardbeat程式去作到上面說的事,
不過更新後,Internet上其他DNS的Cache還要一陣子才更新,
所以誤觸地雷的情況還是會有,
除非大家都只用你那台DNS...

假如是用轉址的那種作法,
非DNS Record的作法就可行,
LVS是這樣作,
Edge是這樣作,
HyperFlow HyperSwitch也是這樣作(這家倒了,不用去找這產品),
不過負責轉址那台掛了,
大家跟著一起掛,
因此主機要HA,負載平衡器也要HA,
所以Intel網路產品規劃圖拿出來,
什麼最好都是要一對以上....

HA和Multi-Link有些地方是沒辦法match的!

kenny

  • 訪客
多線對外服務之大哉問 (linux)
« 回覆 #27 於: 2002-05-08 11:22 »
等等...

相信我們現在已經集中在 inbound load balance 了吧。
正如前面所提﹕
1) 用 DNS 是一種
2) 用 despatcher 是一種
3) 用硬體設備+ISP 配合是一種

我們應該分開不同的 solution 來討論會比較好些。
我相信 1 和 2 都應該容易解決的﹐至於 duncanlo兄 擔心的 cache 問題﹐要解決的話可以將 TTL 降為 0 ﹐透過 DNS Policy 來 update 應該不難。
但如果是第三種方法﹐小弟就沒什麼好建議了﹐因為實在是沒去了解過。所以很想聽聽大家的建議。

ZMAN

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 6247
  • 性別: 男
    • 檢視個人資料
    • 魔力門部落格
多線對外服務之大哉問 (linux)
« 回覆 #28 於: 2002-05-08 12:11 »
就我知道的硬體設備都不需要ISP配合
否則誰要買啊

不過倒是有ISP在賣INBOND LOAD BALANCE的服務
每個月好像多付幾百元月租即可

如果大家覺得用LINUX可以解決這些需求
有沒有人要做一台APPLIANCE原型機出來
好好大賣真的市場很大耶
想一想只要ADSL拉到的地方都有需求耶
網咖,學校,企業,政府機關...數不完的客戶
再賣到大陸去大陸ADSL正在興起
快快快有沒人要大幹一場


CDN簡單地說就是在作Content Delivery
(想一想如何讓公司在全世界的多台WEB SERVER內容自動化同步)
在Inktomi,cache flow,F5,Cisco應該都有相關的文件可以看
佈線深似海!
網路高如天!

kenny

  • 訪客
多線對外服務之大哉問 (linux)
« 回覆 #29 於: 2002-05-08 12:32 »
抱歉﹐我對硬體方面不了解。

不過我實在想不同如何能不透過 ISP 的配合達成。

比方說﹐我現在有兩條線 A 接到 hinet﹐B 接到 seednet 。

假如 A 這條線斷了﹐我如何將 A 原本的 traffic 導到 B 那邊去呢﹖
我想﹐如果離開了 ISP ﹐真不知道如何做的﹖
可以請 Nico兄 說明一下嗎﹖