Linux的高級路由和流量控制:構建橋接器以及用ARP代理構建偽橋接器

來源:互聯網
上載者:User
關鍵字 Linux 流量控制 ARP代理 高級路由 構建橋接器 偽橋接器

橋接器是一種安裝在網路中,不需要任何後續配置的設備。 網路交換器基本上就是一個多口橋接器。 也就是說橋接器就是一個兩口的交換器。 而Linux能支援多個介面的橋接器,成為一個真正的交換器。

橋接器經常被用於改進那些HTTP://www.aliyun.com/zixun/aggregation/7317.html">工作狀態不佳但是又不能改造的網路。 因為橋接器是一個2層設備(IP下面的那一層),路由器和伺服器意識不到它的存在。 也就意味著你可以完全透明地阻擋或者修改資料包,甚至流量整形。

另一件好事是,假如一個橋接器崩潰了,可以使用一個HUB甚至一根交叉線來代替它。

壞消息是,如果它沒有在工程文檔中明確備案,橋接器就會導致混亂。 它不會在traceroute中出現,但是卻導致資料包從A點到B點過程中消失或者變樣(「網上鬧鬼! 」)。 你應該也想知道一個「不想改變任何事」的組織是否在做應該做的事情。

Linux 2.4/2.5橋接器的文檔在這個網頁裡.

1. 橋接與iptables的關係

截止到Linux 2.4.20,橋接和iptables在不借助其他條件的時候無法互相看到。 如果你把資料包從eth0橋接到eth1,它不會通過iptables。 這意味著你無法進行包過濾、NAT、mangle等等操作。 從Linux 2.5.45開始,這個問題已被解決。

你也可能聽說過另一個叫做「ebtables」計畫,它可以實現MACNAT和「brouting」等等瘋狂的功能。 這確實令人振奮!

2. 橋接與流量整形

做個廣告:沒問題!

只是要明確哪塊網卡在哪一邊,否則你可能會在內部網卡上配置外網流量整形,那當然不能工作。 必要的話使用嗅探器確認。

3. 用ARP代理實現偽橋接器

如果你只是想實現一個偽橋接器,請直接閱讀「實現」一節,但是看看它是如何工作的不是壞事。

偽橋接器的工作有些特別。 缺省情況下,橋接器不加改變地把資料幀從一個埠發送到另一個埠。 它只是看看資料幀的硬體位址來決定這個幀應該送到哪裡去。 也就是說,只要資料幀有合適的硬體位址,你可以讓Linux轉發它並不認識的資料幀。

而偽橋接器的工作有些區別,它看上去更像是一個隱形的路由器,而不是一個橋接器。 但類似于橋接器的是,對網路的設計沒有太大影響。

因為它不是一個橋接器,就具有了一個優勢:資料幀(包)會通過內核,所以你可以進行過濾、修改、重定向或者重路由。

一個真的橋接器也可以實現上述技巧,但那需要特定的代碼,象乙太幀分流器或者上面提到的那個補丁。

偽橋接器的另一個好處是它不會轉發它不認識的資料包,這樣可以防止一些cruft充斥網路,從而淨化你的網路環境。 如果你確實需要這些cruft(比如SAP包或者NETBEUI),就應該使用真橋接器。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.