在 Linux 中創建和橋接虛擬網路介面
我有一個工具可以重放來自 .pcap 文件的流量,另一個工具可以解釋該流量。出於測試目的,我需要從一個介面播放流量並讓它進入另一個介面。顯然我可以簡單地在我的兩個 NIC 之間連接一根交叉電纜,但肯定有更好的方法可以在 Linux 中做到這一點嗎?我嘗試過使用環回介面(從 lo 播放流量,從 lo 解釋流量),但它沒有用。
有沒有辦法可以創建虛擬介面,然後橋接兩個虛擬介面?理想情況下,我將能夠播放“virt-eth1”的流量並讓我的其他工具監聽“virt-eth2”。當流量被發送到 virt-eth1 時,它應該被橋接並進入 virt-eth2。從那裡發生的事情沒有任何後果。
我認為您需要在這裡使用的是 TUN/TAP 介面。安裝 tunctl(CentOS 的軟體包),然後你就可以開始創建虛擬網路介面了:
tunctl -t tap0 ifconfig tap0 up
更多資訊在這裡:http ://backreference.org/2010/03/26/tuntap-interface-tutorial/
Tun/tap 介面是 Linux(也可能是其他類似 UNIX 的作業系統)提供的一種功能,可以進行使用者空間網路,也就是說,允許使用者空間程序查看原始網路流量(在乙太網或 IP 級別)並做任何他們想做的事情喜歡它。本文件試圖解釋 tun/tap 介面在 Linux 下是如何工作的,並附有一些範常式式碼來展示它們的用法。
我記得,當使用環回介面時,它不能與 PCAP 庫一起正常工作,因為它實際上不是一個“真實”介面(或者肯定不會被系統視為真實介面)。如果您在其上執行 ifconfig,它甚至沒有 MAC 地址。但是,TUN/TAP 介面可以,並且出於您想要做的目的,它可能只是您正在尋找的解決方案(不需要創建額外的虛擬機等)。
我還懷疑您只需一鍵式界面即可完成任務(無需在 2 之間進行橋接)。只需讓您的第一個程序綁定到虛擬介面並寫入流量,然後讓第二個程序綁定到它,讀取流量。