我有一台 Linux 机器,有一个连接到互联网的实际接口;假设 eth0 192.168.1.108
我需要创建一个虚拟接口,通过 [eth0] 路由流量,但根据某些访问控制列表显示不同的 IP 地址 [10.10.0.1]。
我需要创建一个新的虚拟设备,其 IP 地址为 10.10.0.1,用于访问控制目的。
我创建了一个虚拟设备
ip link add name acl0 type dummy
ip addr add 10.10.0.1
ip link set dev acl0 up
这会创建接口,但实际上并不路由任何流量。
如何创建具有特定 IP 地址的虚拟设备来实际路由流量?
答案1
请编辑您的问题并提供详细信息,为什么您需要第二个 IP,以及您计划如何将其用于访问目的。
一个界面不“路由流量”。内核路由流量。
虚拟接口的唯一好处是作为没有功能的 IP 的占位符,以便应用程序可以绑定到它。很多人都错误地认为它能以某种方式做某事,但事实并非如此。
您可以将多个 IP 地址分配给同一个接口,但是您需要确保所有应用程序绑定到特定的地址,否则您将享受调试随机效果的乐趣。
根据您需要哪种“访问控制”,为不同应用程序分离网络的一个简单方法是使用网络命名空间。将“特殊”应用程序放入网络命名空间中,如果它在网络方面的不同计算机上运行,那么它就会起作用,因此您可以给它不同的设置。
要么使用 amacvlan
让它eth0
使用具有不同 IP 地址的相同接口(或者使用 DHCP 为其提供 IP),或者在新命名空间和主网络命名空间之间创建一个 veth-pair,然后执行正常路由。