我想在同一个虚拟接口上实现多个 VPN 协议隧道。我的 VPN 隧道是在 UDP 连接之上实现的,因此基本上我可以使用此连接根据数据包的源 IP 地址(代表数据包请求的 VPN 协议)将数据包发送到不同的位置。
我打算使用最高优先级规则配置路由表,这些规则将由我在接口中配置的 IP 之一发起的到“默认”地址的连接路由到虚拟接口。例如,以下是netstat
命令的可能输出。
default 10.21.11.56 UGScg utun2 (for protocol 1)
default 10.21.11.57 UGScg utun2 (for protocol 2)
在 RX 端:我捕获到达虚拟接口的所有数据包,根据它们的目的地用正确的 vpn 协议头包装它们,然后通过物理接口通过 UDP 连接发送它们
在 TX 端:我从 UDP 连接读取数据包,并根据它们的目的地,决定使用哪个数据包 VPN 协议从其最上层标头解封装数据包。
我的问题是是否可以为单个虚拟接口设置多个 IP。目前我知道使用以下 ifconfig 命令设置单个 IP:
/sbin/ifconfig utun2 10.21.11.56 10.21.11.56 netmask 255.255.255.255 up
创建此接口
utun2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1400
inet 10.21.11.56 --> 10.21.11.56 netmask 0xffffffff
如果我再次尝试 ifconfig 来设置额外的 IP 地址,它会直接覆盖之前的 IP 地址。
谢谢 !