萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> 橋接器的運作 mini

橋接器的運作 mini

class="23241"> 作者: Christopher Cole, [email protected]
譯者: Mile Yeh [email protected]
v1.10, 13十一月 1997 


--------------------------------------------------------------------------------
這文件描述如何去設定一個乙太網路橋接器.什麽是一個乙太網路橋接器?一個乙太網路橋接器是一個設備它可以控制在一個子網路之內的資料封包去試圖減少網路的大量流量. 一個橋接器是通常安放的在兩組分開的電腦群組之間使電腦自己在內部溝通自已,而不是頻繁和其他的群組的電腦溝通.一個好的例子的是想想一群的麥金塔和一群的 Unix 機器.這些組別的機器兩個群組都傾向於他們自己和自已的機器十分繁忙的溝通, 他們在網路上產生的通訊流量使其他機器試著和另外一個溝通時的造成碰撞.一個橋接器是放的在這些電腦組群之間.橋接器的工作是然後檢查那目的地的數據封包一個一次而且決定要不要傳輸封包到那乙太網區段另一邊.結果是變成一個更快的,更安靜,更少的碰撞的網路. 
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

1. 設定

取得 ``橋接器配置'': 
ftp://shadow.cabi.net/pub/Linux/BRCFG.tgz
取得和閱讀 ``Multiple ethernet'' HOWTO: 
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini/Multiple-Ethernet
使多個乙太網路設備在你的機器運作照著加入這行到你的 /etc/lilo.conf, 和重新執行 lilo: 

append = "ether=0,0,eth1"
        

如果你在你的橋接器上有三張界面卡,使用這些行取代上面: 
append = "ether=0,0,eth1 ether=0,0,eth2"
        

靠加入更多的乙太陳述可以找到更多的界面. 預設上一個傳統的 Linux 核心只偵測一張獨一的乙太網路卡, 和當一個被找到偵測就會停止. 上面所附加的陳述告訴核心在第一個被找到之後繼續偵測去找到更多乙太網路設備. 

另一個方法,可以使用啟動變數來取代: 

linux ether=0,0,eth1
        

或者, 有三個界面,使用: 
linux ether=0,0,eth1 ether=0,0,eth2
        


重新編譯那核心啟動BRIDGING功能. 
一個橋接器應沒有一個的 IP 地址. 它可以有一個,但是一個平常的橋接器不需要一個 IP 地址. 從你的橋接器上移除 IP 地址,到 /etc/sysconfig/network-scripts/ (對於一個 RedHat系統) 和拷貝 ifcfg-lo0到 ifcfg-eth0 & ifcfg-eth1. 在這兩個乙太檔案中,改變那行包含 ``DEVICE=lo'' to ``DEVICE=eth0'' 和 ``DEVICE=eth1''. 別的 Linux distribution 也許和這個不同,自已動手做你想要的! 如果橋接器上有超過兩個界面卡, 確定也使設定符合這些界面. 
重新啟動,執行那包含橋接器功能的核心, 另外也查明確認一個 IP 地址沒有指定到這網路界面卡. 
一次系統是備份, 把乙太網路卡設定在紛亂(promiscuous)的模式, 他們將靠它的界面監看每一個通過的封包: 
ifconfig promisc eth0 ; ifconfig promisc eth1
        

連接到網路區段的全部的界面卡被橋接器分開進入 promiscuous(紛亂) 的模式. 
啟動橋接器使用 brcfg程式: 
brcfg -ena
        

檢驗每一個界面卡有不同的交通流量: 
tcpdump -i eth0      (在一個視窗)
tcpdump -i eth1      (在另一個視窗)
        

執行一個 sniffer (監看器) 或者 tcpdump 在另外的機器上去檢驗橋接器正確地分開區段. 

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

2. 一般的問題


Question
我得到這個訊息 

ioctl(SIOCGIFBR) failed: Package not installed
        

這是什麽意思? 
Answer
你的核心沒有橋接器的能力. 取得到一個 2.0或者更後面的核心, 和重新編譯啟動橋接器功能的選項 BRIDGING. 


Question
機器在一邊不能 ping 到另外一邊! 

Answer

你有使用 ``brcfg -ena' 使橋接器運作'嗎? (brcfg將說 ``bridging is ENABLED'') 
你有把界面放在 promiscuous(紛亂)的模式嗎? (使用 ``ifconfig''命令. 那 ``PROMISC''參數應該是在兩個界面卡上.) 
如果正在用 multiple-media 界面卡, 確定啟動的是正確的是那一端. 你也許需要使用和網路界面卡附的 配置/設定 程式來做設定 . 

Question
我不能從橋接器上 telnet/ftp!為什麽? 

Answer
這是因為沒有 IP 地址指定到任何的橋接器的界面卡.一個橋接器是一個網路的透通部分. 


Question
在設定路由方面我需要做什麽? 

Answer
無! 整個的路由資料是由核心的橋接器的碼所掌握. 靠橋接器看見那乙太網路地址他們是被學習, 在測錯模式下使用 brcfg程式: 

brcfg -deb
        


Question
那橋接器看起來有運作,但是為什麽 ``traceroute'' 沒有顯示那橋接器是路徑的一個部分? 

Answer
由於橋接器當然的功能, ``traceroute''將不顯示橋接器當作路徑的一部分.一個橋接器是網路的一個透通組件. 


Question
IP_FORWARD 是否必要編譯到核心中呢? 

Answer
不.核心中的橋接器的碼照料封包傳送. IP_FORWARD對於一個 gateway(通路閘)它要有 IP 地址指定到它的界面. 


Question
根據那 ``brcfg''程式顯示,為什麽對於埠 1和埠 2 實體的乙太網路地址是相同的? 他們應該是不同的嗎? 

Answer
不.一個橋接器的每一埠是故意地是由橋接器的碼指定那相同的實體的乙太網路地址. 


Question
當在核心中執行的一個 (make config)建造設定,橋接器的選項沒有出現 .它是如何啟動的呢? 

Answer
在核心配置的時候,針對以下的問題回答 'Y' , ``Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [Y/n/?]''. 


Question
太多集線器 (4個或者更多)一個接一個串連在一起 (連續地) 在一個乙太網路上造成時間回應的問題.在一個由集線器所布建的子網中一個橋接器會有什麽結果? 

Answer
一個橋接器重設 3/4/5集線器規則.一個橋接器沒有如同一個集線器所做的處理封包,因此沒有一個 contributor(貢獻者) 到在一個網路上有時間回應問題. 


Question
一個橋接器界面能夠同時連接 10Mb 和 100Mb 兩個乙太網路區段? 這樣的配置會造成高速流量的另一邊慢下來嗎? 

Answer
是,一個橋接器能夠把 10 Mb 的區段和 100Mb 的區段綁在一起只要那網路卡在橋接器的快速網路的那一邊是有 100Mb 能力的 , TCP 將要照料其馀的部分.這時它發生的情形是從一個在 100Mb 網路的主機送封包溝通另一個在 10Mb 網路的主機是只有用 10Mb/s 的速度移動,其馀的 那網路交通在快速乙太網路是不會被拖慢. 


--------------------------------------------------------------------------------
copyright © 萬盛學電腦網 all rights reserved