我正在嘗試將資料包發送到從電腦的用戶空間偵聽 eth0 的應用程序,就好像它們來自遠端電腦一樣。
我似乎找不到好的文件來說明 TUN/TAP 設備與網路堆疊其餘部分互動的確切方式?如果封包綁定到遠端主機,是否會轉送到 eth0?預設情況下,發送到本機的資料包是否會轉送到使用者空間應用程式?封包在與 Netfilter 堆疊相關的核心中出現在什麼階段?
該行為似乎沒有很好的記錄(http://openvpn.net/archive/openvpn-users/2005-05/msg00224.html,https://www.kernel.org/doc/Documentation/networking/tuntap.txt))。
答案1
tun tap 設備對於核心來說是一樣的,因為它無法區分資料是來自連接到乙太網路介面的線路還是來自用戶層應用程式。當資料被寫入時,它被轉發到用戶態應用程式而不是實體介面設備,例如。乙太網路0
封包轉送到的介面將像往常一樣基於路由表,您可以使用ip route
或查看該路由表netstat -r
。這也適用於發送到本機的資料包。
此外,TUN/TAP 介面也可以用作路由表中出現的路由的介面。