在做LVS實驗弃理,部署VS/TU模式時砸紊,遇到一個配置 ifconfig tunl0 $ip_address $netmask up
咪奖。對網卡 tunl0有疑惑辅鲸,在網上找了半天也沒有找到相關的紹介。通過閱讀Linux下的IP隧道相關文章展箱,并做實驗才得到了本文中的結論旨枯。如果您發(fā)我的理解錯了,請在評論區(qū)指正混驰。
IP隧道技術
隧道技術:是路由器把一種網絡層協議封裝到另一個協議中以跨過網絡傳送到另一個路由器的處理過程攀隔。
IP 隧道(IP tunneling)是將一個IP報文封裝在另一個IP報文的技術,這可以使得目標為一個IP地址的數據報文能被封裝和轉發(fā)到另一個IP地址栖榨。IP隧道技術亦稱為IP封裝技術(IP encapsulation)昆汹。
Linux內核模塊對IP隧道的支持
注:此部分內容借鑒于互聯網
Linux系統內核實現的IP隧道技術主要有三種(PPP、PPTP和L2TP等協議或軟件不是基于內核模塊的):ipip治泥、gre筹煮、sit 遮精。這三種隧道技術都需要內核模塊 tunnel4.ko 的支持居夹。
- ipip 需要內核模塊 ipip.ko ,該方式最為簡單本冲!但是你不能通過IP-in-IP隧道轉發(fā)廣播或者IPv6數據包准脂。你只是連接了兩個一般情況下無法直接通訊的IPv4網絡而已。至于兼容性檬洞,這部分代碼已經有很長一段歷史了狸膏,它的兼容性可以上溯到1.3版的內核。據網上查到信息添怔,Linux的IP-in-IP隧道不能與其他操作系統或路由器互相通訊湾戳。它很簡單,也很有效广料。
- GRE 需要內核模塊 ip_gre.ko 砾脑,GRE是最初由CISCO開發(fā)出來的隧道協議,能夠做一些IP-in-IP隧道做不到的事情艾杏。比如韧衣,你可以使用GRE隧道傳輸多播數據包和IPv6數據包。
- sit 他的作用是連接 ipv4 與 ipv6 的網絡 。
由內核模塊虛擬的網卡
Linux中對IP隧道提供支持的三個模塊ipip畅铭、GRE氏淑、sit在內核空間生成了三個虛擬網卡。他們的對應關系如下:
內核模塊 | 虛擬網卡 |
---|---|
ipip | tunl0 |
GRE | gre0 |
sit | sit0 |
在默認情況下這三個網卡是不可見的硕噩,就算你使用ifconfig -a
指令也無法發(fā)現它們假残。但當你需要時,你可以直接使用ifconfig 指令對他們進行配置炉擅。
ifconfig tunl0 $ip_addr $network ……
使用ifconfig 指令配置后守问,同時也激活了對應的虛擬網卡,再使用ifconfig -a就可以看到了坑资。