一個奇怪的問題:如何在本機任意兩個網卡間互丟封包

理論上ethernet是不允許loop這種情形的,所以要互傳資料最少要兩台裝置,
至於為何會有這個需求是來自網通產品生產燒機時,希望不要額外準備一台封包產生器,
而能夠用本機的eth互相送封包來實現網卡測試的功能

經過拜會股溝大師之後,大概找到幾種方法:
1) iptables:使用iptables的的先進路由功能,把封包在本機互丟
http://www.lslnet.com/linux/f/docs1/i01/big5111138.htm
2) patch kernel + iproute2: 這個方法需要修改並重新編譯核心,不過設定上比方法一iptables簡單一點
http://bellet.info/laptop/send-to-self.txt
http://www.ssi.bg/~ja/
3) pktgen:直接使用核心內建的封包產生器,使用方法最簡單,理論效率最高,但缺點是一個CPU僅能有一個thread,當要測試的資料流數多餘CPU數目時,就不適用了
LINK1, SAMPLE1, SAMPLE2

留言

這個網誌中的熱門文章

RTC & CMOS 技術詳解

[自由網路] 如何取得 Google Drive (真實)外連位址 (Direct Link)