具有多个 IP 的单个网络接口

具有多个 IP 的单个网络接口

我想在同一个虚拟接口上实现多个 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 地址。

谢谢 !

相关内容