Linux的高級路由和流量控制:GRE和其他隧道

來源:互聯網
上載者:User
關鍵字 Linux 流量控制 高級路由

Linux有3種隧道。 它們是: IP-in-IP 隧道、 GRE 隧道和非內核隧道(如PPTP)。

1. 關於隧道的幾點注釋

隧道可以用於實現很多非常不一般而有趣的功能。 但如果你的配置有問題,卻也會發生可怕的錯誤。 除非你確切地知道你在做什麼,否則不要把缺省路由指向一個隧道設備。 而且,隧道會增加協定開銷,因為它需要一個額外的IP包頭。 一般應該是每個包增加20個位元組,所以如果一個網路的MTU是1500位元組的話,使用隧道技術後,實際的IP包長度最長只能有1480位元組了。 這倒不是什麼原則性的問題,但如果你想使用隧道技術構建一個比較大規模的網路的話,最好仔細研究一下關于IP包的分片和彙聚的知識。 哦,還有,挖一個隧道最好的方法當然是同時從兩頭挖。

2. IP-in-IP 隧道

這種隧道在Linux上已經實現很長一段時間了。 需要兩個內核模組:ipip.o 和 new_tunnel.o。

比如說你有3個網路:內部網A和B,中間網C(比如說:Internet)。

A網路的情況:
網路位址 10.0.1.0
子網路遮罩 255.255.255.0
路由器 10.0.1.1
路由器在C網路上的位址是172.16.17.18。

B網路的情況:
網路位址 10.0.2.0
子網路遮罩 255.255.255.0
路由器 1

路由器在C網路上的IP位址是 172.19.20.21。

已知C網路已經連通,我們假定它會將所有的資料包從A傳到B,反之亦然。 而且你可以隨便使用Internet。

這就是你要做的:

首先,確認模組是否載入:

insmod ipip.o
insmod new_tunnel.o

然後,在A網路的路由器上輸入:

ifconfig tunl0 10.0.1.1 pointopoint 172.19.20.21
route add -net 10.0.2.0 netmask 255.255.255.0 dev tunl0

並且在B網路的路由器上輸入:

ifconfig tunl0 10.0.2.1 pointopoint 172.16.17.18
route add -net 10.0.1.0 netmask 255.255.255.0 dev tunl0

如果你想中止隧道,輸入:

ifconfig tunl0 down

簡單之極! 但是你不能通過IP-in-IP隧道轉發廣播或者HTTP://www.aliyun.com/zixun/aggregation/9485.html">IPv6資料包。 你只是連接了兩個一般情況下無法直接通訊的IPv4網路而已。 至於相容性,這部分代碼已經有很長一段歷史了,它的相容性可以上溯到1.3版的內核。 據我所知,Linux的IP-in-IP 隧道不能與其他作業系統或路由器互相通訊。 它很簡單,也很有效。 需要它的時候儘管使用,否則就使用GRE。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.