Openvpn

tun介面上IP地址的用途?

  • April 25, 2015

--ifconfig為點對點隧道介面配置本地和對等 IP 地址的選項是OpenVPN的強製配置選項。但是,本地和對等 IP 地址的用途是什麼?我能想到的唯一目的是可以使用這些 IP 地址將流量路由到隧道。例如ip route add 10.10.3.0/24 via 192.168.1.2 dev tun0192.168.1.2對等 IP 地址在哪裡。但是,對於點對點鏈路,應該能夠將流量直接路由到介面上,例如ip route add 10.10.3.0/24 dev tun0.

從歷史上看,在 IPv4 中,未編號的介面是不可能的。配置點對點介面的唯一可能方法是使用本地地址和遠端地址。通過所討論的點對點介面路由其他 IP 地址的唯一方法是使用介面的遠端地址作為網關安裝路由(route命令或核心中沒有選項可以通過介面指定目標姓名)。在那些日子裡,您會看到大量寶貴的 IP 地址被用作 SLIP 連接上的介面地址。

即使是現在,IPv4 介面至少需要在其上配置某種地址,如果只是用作源自該介面的 ICMP 錯誤的源地址(這就是traceroute檢測路由器上哪個介面被遍歷的方式)。

但是您現在可以做的(並且在歷史上不能做的)是使界面無編號。這意味著給它與系統上其他介面相同的 IP 地址。通常一個穩定的永遠線上的介面(例如一個環回介面或路由器的“主”介面)作為 IP 地址的施主。至於遠端 IP 地址,您根本不必提供(但請參閱下一段)。如果沒有指定遠端 IP 地址,您可以使用ip route ... dev <interface>而不是ip route ... via <address>如您所知,將流量引導到介面。總而言之,這可以大大節省 IP 地址。(順便說一句,有趣的是,雖然在 UNIX 中,未編號的介面隱含在本地 IP 地址不唯一這一事實中,但在 Cisco 的 IOS 等其他作業系統上,它非常明確:命令是ip unnumbered <donor-interface-name>.

儘管如此,在 OpenVPN 中,指定遠端 IP 地址似乎不是可選的。但是,您可以做的是指定一個有點隨意的遠端地址。例如,如果隧道的另一端是另一台路由器,您可以使用遠端路由器的環回或“主”IP 地址(基本上反映了遠端端的未編號配置),從而不消耗隧道的 IP 地址。如果你願意讓路由表看起來有點難看,你實際上可以為 ifconfig 遠端地址使用一個完全偽造的 IP 地址;一切都會正常工作,虛假地址甚至永遠不會出現在任何地方(即使在跟踪路由中)。

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