Vpn

了解 tun0 地址

  • February 24, 2021

我已經進行了一些搜尋,並且或多或少地了解了tun0界面的作用。我從各種來源得到以下資訊,

作業系統通過 tun/tap 設備發送的數據包被傳遞到使用者空間程序,該程序將自身附加到設備上。使用者空間程序也可以將數據包傳遞到 tun/tap 設備。在這種情況下,tun/tap 設備將這些數據包傳遞(或“注入”)到作業系統網路堆棧,從而模擬它們從外部源接收。tun/tap 介面是純軟體介面,這意味著它們只存在於核心中,並且與正常網路介面不同,它們沒有物理硬體組件(因此沒有連接到它們的物理線)。

您可以將 tun/tap 介面視為正常網路介面,當核心決定“線上”發送數據時,它會將數據發送到連接到該介面的某個使用者空間程序。

現在,如果我比較 and 的輸出eth0tun0我會看到類似這樣的內容。


ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:14:22:50:78:71  
         inet addr:172.16.210.32  Bcast:172.16.255.255  Mask:255.255.0.0
...
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
<snipped>

ifconfig tun0
tun0      Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
         inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1

現在,如果我們嘗試比較兩者,我們會發現這些差異,

  1. eth0確實有一個MAC地址,可以理解的tun0是沒有。
  2. eth0在廣播模式下tun0工作,在點對點模式下工作。

我有以下幾點我不明白。

  1. P-t-P:10.8.0.2在這種情況下,地址的作用是什麼?
  2. 為什麼子網遮罩tun0設置為255.255.255.255?

硬體網路連結可以是點對點或點對多點。ppp連結是點對點,乙太網是點對多點。tun 可以充當任何一個,在您的情況下,它充當點對點連結。一個點對多點介面有四個與之相關聯的地址,具體來說是 ip 地址(介面的地址)、網路地址、廣播地址和網路遮罩。點對點連結有兩個與之關聯的地址,特別是 ip 地址(近端地址)和點對點對等地址(遠端地址)。由於點對點連結僅適用於兩個地址,因此廣播、網路地址和網路遮罩沒有有用的數據或標誌值。

最後一點 tun 介面可以有 mac 地址,它們只是沒有預設的 mac 地址。

引用自:https://unix.stackexchange.com/questions/199261