作者 主題: Multipath & Dead Line Detection 的半套武功秘笈  (閱讀 57165 次)

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

小張張

  • 可愛的小學生
  • *
  • 文章數: 22
    • 檢視個人資料
    • http://www.leadcom.com.tw
以下是我實做的方法及結果。不過,只有半套......  :D

IFI   對內網卡 ( eth0, eth1..., etc )
IPI   對內網卡IP ( 192.168.x.x, etc )
NMI   對內網卡的 netmask ( 255.x.x.x, etc )
IFE1, IFE2   對外網卡 ( eth0, eth1..., etc )
IPE1, IPE2   對外網卡IP
NWE1, NWE2   對外網路位址 ( 192.168.x.0, 172.16.x.0, etc )
NME1, NME2   對外網路位址的mask (/24, /32, ..., etc )
BRD1, BRD2   對外網路的廣播位址
GWE1, GWE2   對外網路的 gateway

1.下載patch檔:http://www.linuxvirtualserver.org/~julian/#routes
   請選擇適合自己 kernel 的版本或將要升級的版本,
   2.2.20-7, 2.2.20-6, 2.2.19-4, 2.4.19-8, 2.4.16-6, 2.4.14-5

2.patch 檔的加入法. 將下載來的patch檔複製到 /usr/src/linux
   cd /usr/src/linux
   patch -p1 < routes-2.4.19-8.diff

3.重編 kernel , 有幾個選項一定要選:
    IP: advanced router, equal cost multi path, 如何編譯 kernel 請參考
    http://www.study-area.org/linux/system/linux_kernel.htm

4.編輯rc.local檔, vi /etc/rc.d/rc.local 加入以下四行, 用來做NAT之用:
    iptables -t nat -F
   iptables -t nat -X
   iptables -t nat -A POSTROUTING -o eth1 -s 192.168.2.0/24 -j MASQUERADE
   iptables -t nat -A POSTROUTING -o eth2 -s 192.168.2.0/24 -j MASQUERADE

5.請自行編輯一個小的 script, 檔名可叫做 route.ini,
   vi /etc/rc.d/route.ini, 以下是內容

    ip link set IFI up
   ip addr add IPI/NMI brd + dev IFI
   ip rule add prio 50 table main
   ip route del default table main

   ip link set IFE1 up
   ip addr flush dev IFE1
   ip addr add IPE1/NME1 brd BRD1 dev IFE1

   ip link set IFE2 up
   ip addr flush dev IFE2
   ip addr add IPE2/NME2 brd BRD2 dev IFE2

   ip rule add prio 201 from NWE1/NME1 table 201
   ip route add default via GWE1 dev IFE1 src IPE1 proto static table 201
   ip route append prohibit default table 201 metric 1 proto static

   ip rule add prio 202 from NWE2/NME2 table 202
   ip route add default via GWE2 dev IFE2 src IPE2 proto static table 202
   ip route append prohibit default table 202 metric 1 proto static

   ip rule add prio 222 table 222
   ip route add default table 222 proto static \
   nexthop via GWE1 dev IFE1 \
   nexthop via GWE2 dev IFE2
   p.s 各位看倌注意, 可別像我一樣笨的照填喔! 舉個例子
    nexthop via GWE1 dev IFE1 ----> nexthop via 61.222.123.254 dev eth1
   變數請自行填入適當的值 :o

6.將 route.ini 附加到 rc.local 中好讓開機時自動執行.
   cd /etc/rc.d
   chmod 700 route.ini
   echo "./route.ini" >> rc.local

好了, 打完收功. 請注意, 這祇有半套而已, 至少我是這麼覺得 :wink:
原本我是在測試如何能達到備援的效果. 就是當其中有一條聯外線路斷線時, 另一條線路依然能提供上網的服務.
http://www.study-area.org/tips/m_routing.htm 這篇文章所提到的方法, 可能是我功力太淺, 我只能做到 Multipath, 無法達到備援的效果. 因此另覓它法, 找到了這幾個網頁:
http://lartc.org/HOWTO//cvs/2.4routing/html/x247.html
http://www.linuxvirtualserver.org/~julian/#routes
http://www.linuxvirtualserver.org/~julian/nano.txt

有興趣, 各位學長可自行看看.
另外我所說的半套原因何在, 且聽我說個明白.
當我完成時, 檢視routing table, 裡面並沒有Default gateway, 因此可以確定是由rule 來判斷Default gateway為哪一個. 測試其中一條線路斷線, 確實也可以連上Internet ( 由瀏覽器瀏覽網頁得知 ), 斷掉另一條線亦然. 此時靈異事件要發生了, 如果這個網站當時瀏覽時使用的 gateway 是GWE1, 那當IFE1 斷線時, 這個網站就會無法開啟, 反之亦然. 所以說是半套武功秘笈 :wink:
小弟會繼續測試, 或者有功力較高的學長能提出具體的方法, 嘉惠嘉惠大眾嗎 :wink:

kenny

  • 訪客
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #1 於: 2002-05-14 08:59 »
太精彩了﹗﹗ 拍手~~~~

ZMAN

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 6247
  • 性別: 男
    • 檢視個人資料
    • 魔力門部落格
Re: Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #2 於: 2002-05-14 09:43 »
引述: "小張張"
當我完成時, 檢視routing table, 裡面並沒有Default gateway, 因此可以確定是由rule 來判斷Default gateway為哪一個. 測試其中一條線路斷線, 確實也可以連上Internet ( 由瀏覽器瀏覽網頁得知 ), 斷掉另一條線亦然. 此時靈異事件要發生了, 如果這個網站當時瀏覽時使用的 gateway 是GWE1, 那當IFE1 斷線時, 這個網站就會無法開啟, 反之亦然. 所以說是半套武功秘笈

1.請問一下如果按重新整理是否就正常了
   或是關掉瀏覽器重新開啟是否就正常了
2.就算是購買設備也很難達到即時備援
    像是從以前的IEEE802.1D到現在的IEEE802.1W
   最快復原也要2秒多
    所以只要力求能完整轉換,中間的GAP不要太在意
3.OUTBOND LOAD BALANCE有一堆資料介紹
    雖然做法不同我也沒有實作過
    不過從文件的說明理論上應該可行
   是否能夠實驗一下INBOND LOAD BALANCE
    這部分就比較辛苦
4.如果都做到了
    考量一下是否可以設定一些政策
    來改變LOAD BALANCE的方式
    另外像是電子商務網站的SSL連線
    也是一個思考重點
佈線深似海!
網路高如天!

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
Re: Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #3 於: 2002-05-14 12:43 »
引述: "小張張"
當我完成時, 檢視routing table, 裡面並沒有Default gateway, 因此可以確定是由rule 來判斷Default gateway為哪一個. 測試其中一條線路斷線, 確實也可以連上Internet ( 由瀏覽器瀏覽網頁得知 ), 斷掉另一條線亦然.


沒有Default  Gateway是很重要的,
因為路由的選舉是由Daemon去作,
實作上都會頓2~4秒,因為連線會重試,
加個cache是否會有所幫助?

小張張

  • 可愛的小學生
  • *
  • 文章數: 22
    • 檢視個人資料
    • http://www.leadcom.com.tw
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #4 於: 2002-05-14 21:26 »
嗯.....沒錯, 就是 cache 的問題
請修改 gc_interval 這個檔案
vi /proc/sys/net/ipv4/route/gc_interval
內定值是 60, 數值越小 cache 釋放的速度會越快
意思是說:cache 會記錄連線當時的資訊, 如 gateway
如果斷線的當時, cache 紀錄的 gateway 依然是斷掉連線的那一條線路的 gateway,
而且 cache 的 reflush 時間又還那麼長, 那就會產生連線失效的狀況
因此把數值調低素素看吧 :wink:

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #5 於: 2002-05-15 08:26 »
您好,我是用 RH 7.3 的版本, kernel 2.4.18-3 ,好像就已經有包  
IP: advanced router, equal cost multi path 這兩個選項了,請問我如何確定
kernel 中有包這兩個選項,再如果已經包含進來了,是不是就可以不要重編 kernel 了
=========================
http://www.kuolung.net
==========================

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #6 於: 2002-05-15 09:44 »
目前我的測試出來的狀況是如下 :

如果用 RH 7.3 kernel 2.4.18-3 不用重編 kernel 就可以用了

測試其他 ok !

現在測加第三條 adsl 看效果如何
=========================
http://www.kuolung.net
==========================

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #7 於: 2002-05-15 11:32 »
請問一個問題,我到console 上去看,有看一如下的訊息 :

eth2 : Promiscuous mode enable
eth3 : Promiscuous mode enable

奇怪這是什麼意思 ?

我好像沒有設  eth2 , eth3 為 Promiscuous mode
=========================
http://www.kuolung.net
==========================

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #8 於: 2002-05-15 19:46 »
假如你用ifconfig時,
網卡有出現
UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
其中PROMISC就是了...
你是不是有跑ipsec還是snort?

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #9 於: 2002-05-16 08:14 »
eth3      Link encap:Ethernet  HWaddr 00:50:BA:1E:D3:1F
          inet addr:x.x.x.x  Bcast:x.x.x.x  Mask:255.255.255.248
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10771 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6256 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:4942766 (4.7 Mb)  TX bytes:759227 (741.4 Kb)
          Interrupt:9 Base address:0xa800

從上面看是沒有跑 PROMISC ,所以我才覺得奇怪 ?
至於 ipsec 或 snort 我看 ps ax 列出來的 process 並沒有看到,還是其他方法可以看的 , 請指導一下 , 謝謝
=========================
http://www.kuolung.net
==========================

小張張

  • 可愛的小學生
  • *
  • 文章數: 22
    • 檢視個人資料
    • http://www.leadcom.com.tw
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #10 於: 2002-05-16 21:56 »
Nico Liang 大大: 您所說的 OUTBOND LOAD BALANCE 和 INBOND LOAD BALANCE, 其實我根本不懂, 也不知道那是甚麼,
可不可以煩您提供一個網站, 好讓小弟參考參考. 勞煩您了  :P

kuolung 大大 : 您用的 RH 7.3 的版本及kernel 2.4.18-3我沒用, 所以我也不知道.
那個網站的說明檔我也不是恨能了解, 因為小弟的外語能力真是差..差..差ㄚ :P
另外, 您出現的那段訊息
      eth2 : Promiscuous mode enable
     eth3 : Promiscuous mode enable
小弟沒遇到過, 真是抱歉
不過, 小弟倒是很好奇, 您有成功嗎 ? 有試過拔掉其中一條線嗎 ? 結果呢 ?
雖然小弟之前有提到可以修改 gc_interval 裡的數值, 可是最後測試的結果是---"不成功". 可以交流一下嗎 :wink:

ZMAN

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 6247
  • 性別: 男
    • 檢視個人資料
    • 魔力門部落格
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #11 於: 2002-05-16 22:13 »
引述: "小張張"
Nico Liang 大大: 您所說的 OUTBOND LOAD BALANCE 和 INBOND LOAD BALANCE, 其實我根本不懂, 也不知道那是甚麼,
可不可以煩您提供一個網站, 好讓小弟參考參考. 勞煩您了  :P


假設你有一條ADSL到HINET,一條ADSL到SEEDNET,你有架一個X網站
所有外界要到你的X網站的流量都可以按照政策分佈在這兩條ADSL進來
例如輪流從HINET及SEEDNET進來或按照權重分配進來
如果其中有一條斷線,所有流量會自動從另一條進來
這就叫INBOND LOAD BALANCE
其實較常見的說法應該叫Multi-Homing

看完上面Outbond就很好理解啦
公司所有人對外的流量可以由這兩條ADSL負載平衡

去看F5(公司)/LinkController(產品)
      Radware/LinkProof
      AscenVision/AscenLink
佈線深似海!
網路高如天!

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #12 於: 2002-05-17 16:03 »
-> 不過, 小弟倒是很好奇, 您有成功嗎 ? 有試過拔掉其中一條線嗎 ? 結果呢 ?
-> 雖然小弟之前有提到可以修改 gc_interval 裡的數值, 可是最後測試的結果是--> --"不成功". 可以交流一下嗎

哈 ! 果然是死了,我再測試一下,再仔細看一下上面的 route.ini
的內容,再研究一下
=========================
http://www.kuolung.net
==========================

小張張

  • 可愛的小學生
  • *
  • 文章數: 22
    • 檢視個人資料
    • http://www.leadcom.com.tw
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #13 於: 2002-05-17 19:13 »
哪位好心的大大行行好, 幫忙幫忙翻譯以下這一段:

From the user's point of view: An established connection using a line
which stops working will be lost. She'll need to establish a new
connection. Until the cache expires, a new connection will work only
if the route isn't yet in the cache, or if the cached route uses a
working line. But if the route is cached and uses the failing line,
the connection will not work.

The time until the cache expires is controlled by the kernel variable
/proc/sys/net/ipv4/route/gc_interval and defaults to 60 seconds. The
bigger this number, the longer it will take until failing routes are
not being used again, but the shorter this time, the smaller the
chances to find a connection in the cache, loosing time to look up the
connection in the routing tables.

感激不盡呦! 叩首叩首再叩首 :lol:

kenny

  • 訪客
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #14 於: 2002-05-18 08:39 »
小弟不才﹐願意一試﹕

引述: "小張張"
哪位好心的大大行行好, 幫忙幫忙翻譯以下這一段:

From the user's point of view: An established connection using a line
which stops working will be lost. She'll need to establish a new
connection. Until the cache expires, a new connection will work only
if the route isn't yet in the cache, or if the cached route uses a
working line. But if the route is cached and uses the failing line,
the connection will not work.

以使用者角度來而言﹐假如一條已經建立好的連線斷掉的話﹐就不能使用了﹐然後必須從新建立另外的連線才行。然而﹐在 cache 失效之前﹐只有當新路由尚未出現於 cache 中的時候﹐新連線才有可能工作。換而言之﹐在 cache 中的路由必須是有效的。但如果一條已經失效連線的路由已經被 cache 起來的話﹐則沒辦法連線了。

引用
The time until the cache expires is controlled by the kernel variable
/proc/sys/net/ipv4/route/gc_interval and defaults to 60 seconds. The
bigger this number, the longer it will take until failing routes are
not being used again, but the shorter this time, the smaller the
chances to find a connection in the cache, loosing time to look up the
connection in the routing tables.

目前來說﹐控制 cache 期限的核心變數是由 /proc/sys/net/ipv4/gc_interval 來設定的﹐其預設值為 60 秒。這個值越大﹐所花時間則越長﹐除非失效的連線又重新可用了﹔其值越小﹐連線受 cache 影響的機會就越少﹐但卻需要花額外的時間從 routing table 中搜尋連線。

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #15 於: 2002-05-18 09:19 »
我在想,如果我用下指令的方式讓其中一條線停掉,如 ifconfig eth0 down
可不可以模擬出斷掉的效果 。這樣我就不用每次去把線拔掉再接回去了
=========================
http://www.kuolung.net
==========================

kenny

  • 訪客
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #16 於: 2002-05-18 09:32 »
這是不同的。

下 ifconfig 的同時﹐還會影響到 route 的設定。是否還影響 cache 我就沒考究了﹐但良好的設計﹐是會同時將 cahe 的 entry 清掉的。

這和線路斷了完全不一樣。

小張張

  • 可愛的小學生
  • *
  • 文章數: 22
    • 檢視個人資料
    • http://www.leadcom.com.tw
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #17 於: 2002-05-18 16:33 »
netman 大大, 實在太感謝您了. 讓我繼續用功吧!

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #18 於: 2002-05-19 10:45 »
-> 下 ifconfig 的同時﹐還會影響到 route 的設定。是否還影響 cache 我就沒考--> 究了﹐但良好的設計﹐是會同時將 cahe 的 entry 清掉的。

-> 這和線路斷了完全不一樣。

如果我們試著寫一個 auto-detect 的 deamon , 如果斷了,再下一個 ifconfig down 的指令,如何
=========================
http://www.kuolung.net
==========================

protech

  • 活潑的大學生
  • ***
  • 文章數: 322
  • 性別: 男
    • 檢視個人資料
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #19 於: 2002-05-19 15:40 »
我們目前的做法是一直去 ping 線路是否正常 ..

如果有一條中斷了 就跳到另一條線路 ...

我們用在網咖中當備援而已

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #20 於: 2002-05-19 22:32 »
引述: "小張張"
netman 大大, 實在太感謝您了. 讓我繼續用功吧!


假如你回LVS網站看,
好像有一個監看線路live的script,
再把文章看完吧...

另外假如,有個像RIP的服務在跑,
一條線斷了,或是滿載中時,
會自己找最佳的路徑再跑...

小張張

  • 可愛的小學生
  • *
  • 文章數: 22
    • 檢視個人資料
    • http://www.leadcom.com.tw
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #21 於: 2002-05-20 03:55 »
duncanlo 大大, 多謝您的提點. 有一點很可惜, 我根本不懂如何寫一個 script :cry:

                    while : ; do
     ping -c 1 GWE1 > /dev/null 2>&1
     ping -c 1 GWE2 > /dev/null 2>&1
     sleep 60
   done
就是這一段, 我不知道要如何加到我的那一個 route.ini 檔裡 :-?
拜託, 哪位好心的大爺要教教我嘛!  :cry:

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #22 於: 2002-05-20 07:54 »
-> 另外假如,有個像RIP的服務在跑,
-> 一條線斷了,或是滿載中時,
-> 會自己找最佳的路徑再跑...

有一個新的重點出現了,以前我在玩 RH 6.2 的時候,總是有一 routed , gated
的 deamon 跑起來,但設了很久,才知道,這兩個 deamon 就是跑有關 rip 的
東東,好像以那時的需求不需用到,就放棄了,現在還是要回過頭來好好的研究一下了
=========================
http://www.kuolung.net
==========================

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #23 於: 2002-05-20 10:00 »
引述: "kuolung"
-> 有一個新的重點出現了,以前我在玩 RH 6.2 的時候,總是有一 routed , gated
的 deamon 跑起來,但設了很久,才知道,這兩個 deamon 就是跑有關 rip 的
東東,好像以那時的需求不需用到,就放棄了,現在還是要回過頭來好好的研究一下了


小弟粉早以前就有提到了,
跑Routed就好了,因為你只要RIP,
假如你不想先指定預設出路,
那就不要設Default Route,
跑Gated還要設一堆PGP4東東...

以前用CLE 0.9試,
斷一條線時,
會頓2~4秒,
假如你還有跑Squid時,
感覺就不太明顯,
因為Squid會比你的Client更早搶到頻寬...(程式寫的好吧!)

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #24 於: 2002-05-20 10:04 »
引述: "小張張"
duncanlo 大大, 多謝您的提點. 有一點很可惜, 我根本不懂如何寫一個 script :cry:

                    while : ; do
     ping -c 1 GWE1 > /dev/null 2>&1
     ping -c 1 GWE2 > /dev/null 2>&1
     sleep 60
   done
就是這一段, 我不知道要如何加到我的那一個 route.ini 檔裡 :-?
拜託, 哪位好心的大爺要教教我嘛!  :cry:


Sorry!這個我也沒試過,
上面及相關網站確實有提到線路容錯的問題,
不過意外發現教HA Router/Gateway的方法,
因為這是LVS的網站吧!

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #25 於: 2002-05-20 11:51 »
引述: "duncanlo"
引述: "kuolung"
-> 有一個新的重點出現了,以前我在玩 RH 6.2 的時候,總是有一 routed , gated
的 deamon 跑起來,但設了很久,才知道,這兩個 deamon 就是跑有關 rip 的
東東,好像以那時的需求不需用到,就放棄了,現在還是要回過頭來好好的研究一下了


小弟粉早以前就有提到了,
跑Routed就好了,因為你只要RIP,
假如你不想先指定預設出路,
那就不要設Default Route,
跑Gated還要設一堆PGP4東東...

以前用CLE 0.9試,
斷一條線時,
會頓2~4秒,
假如你還有跑Squid時,
感覺就不太明顯,
因為Squid會比你的Client更早搶到頻寬...(程式寫的好吧!)


大哥您有沒有適合我們這個題目的設定,我想拿來試試,尤其是配上 multi-path
和 multi-homing 之後,給個範例吧,說實話,那麼多 protocol ,真不知道該用那一個 BGP , EGP, IGRP , RIP
=========================
http://www.kuolung.net
==========================

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #26 於: 2002-05-20 13:18 »
引述: "kuolung"
大哥您有沒有適合我們這個題目的設定,我想拿來試試,尤其是配上 multi-path
和 multi-homing 之後,給個範例吧,說實話,那麼多 protocol ,真不知道該用那一個 BGP , EGP, IGRP , RIP


Sorry!那是在以前公司玩的,
所以我沒有設定檔了,
不過我是一條64k專線+GigaCableModem,
應該像你作一般NAT Router,
只是多跑Routed而已,
但我有多跑通透式Squid...
不過這只能作Multi-Path,
Multi-Home就沒試過...
(反正先可以多人不斷線上網再說吧!)

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #27 於: 2002-05-20 13:47 »
--> (反正先可以多人不斷線上網再說吧!)

您的意思是說,我只要 service routed start 就可以了,
不會吧,這這 ......

好吧,我就給他 service routed start ,
ps ax 也看到 routed 在跑

/var/log/messages 也有如下:
May 20 13:42:53 linux2 routed: routed startup succeeded

再測一下了
=========================
http://www.kuolung.net
==========================

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #28 於: 2002-05-24 23:36 »
各位 ! 各位! 請重新看一下

<< Linux 平台上之 Multipath Routing 應用 >>
http://www.study-area.org/tips/tipsfr1.htm

這篇文章的後段有幾句:
#############################################
 Linux 上得 ECMP implementation 的實作有一個特色, 當你的上游網路介面
  使用 ARP (e.g. 使用傳統 IP-over-Ethernet)時, 如果其中一個網路介面陣
  亡時, Linux kernel 會自動把該介面 "shutdown", 並停止那些需要經過該
  介面的 "nexthops". 但是要附註一提的是, 如果你使用的是 "網路型" ADSL
  服務, 你會取得一個 ADSL 路由器, 你可能會架設一個 NAT 伺服器與 ADSL
  路由器放在同一個 Ethernet Hub 上, 如果這個時候 ADSL 斷線, 但是 Hub
  並未斷線, Linux 會認為該網路卡仍在 on-line 狀態. 除非是該 hub 或是網
  路卡故障, kernel 才會 shutdown 該網路介面.

  因此如果你需要確實的 "failover", 請動手寫一個小 script, 定時用 ping
  或稱 "icmp echo request" 來詢問 ISP 端的閘道器是否正常的運作, 並用
  "ip route replace" 來置換那些確定可通的路由. 這裡就請您自行處理了.
##############################################

雖然很多,但我還是整個節錄下來,而且希望大家看仔細了 :

1、用 ip route add default nexthop via g2 dev d1 nexthop via g2 dev d2 這個指令就是用 ECMP 來實作 multi-path , 所以就不用再 EGP , RIP , BGP ......

2、在 failover 的方面,default 的方法是看 dev 有沒有 down 掉,這個方式如果是直接連 atu-r 的方式是可行的,但是如果是透過 hub , switch hub 再連 atu-r時 , atu-r 死掉,Linux 的 dev 並不會知道,所以必須另外想辦法(我目前的狀況就是這樣 )

3、自己可以寫一小 script 來偵查對外的網路有沒有斷 , 如果斷了,就下
   ip route replace ......
  ip route flush cache
  就可以解決 failover 的問題了

4、我們重新再看看這一篇討論的最前面的第一篇 :
###############################
ip rule add prio 222 table 222
ip route add default table 222 proto static \
nexthop via GWE1 dev IFE1 \
nexthop via GWE2 dev IFE2
##############################
這是最後的重點,根本沒有談到 failover 的部份,只是每一指令加一個
  proto static 的參數,其他幾乎是和那篇 " multi-path" 是一樣的,so 當然不能failover 了

5、所以目前的結論是之前的 protech 兄的做法是最簡單的,而且是最可行的,那 .那. ... protech 兄您可不可以把您的 script 公佈 ,以嘉惠大眾,謝謝啦 ....
=========================
http://www.kuolung.net
==========================

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
Multipath & Dead Line Detection 的半套武功秘笈
« 回覆 #29 於: 2002-05-25 02:41 »
引述: "kuolung"
2、在 failover 的方面,default 的方法是看 dev 有沒有 down 掉,這個方式如果是直接連 atu-r 的方式是可行的,但是如果是透過 hub , switch hub 再連 atu-r時 , atu-r 死掉,Linux 的 dev 並不會知道,所以必須另外想辦法(我目前的狀況就是這樣 )


通常線路故障時,
在Router(或ATU-R)之後的網路都還是OK的,
ON的燈都是Ok的,因為是問題都不是在Local端,
所以你就要更新你的Routing Information往可以走的地方去,
本來就不行以網卡及線路是否Up為準...