Tengo una máquina Linux con una interfaz real que se conecta a Internet; digamos eth0 192.168.1.108
Necesito crear una interfaz virtual que enrute el tráfico a través de [eth0] pero muestre una dirección IP diferente [10.10.0.1] basada en algunas listas de control de acceso.
Necesito crear un nuevo dispositivo virtual que tendrá una dirección IP 10.10.0.1 para fines de control de acceso.
He creado un dispositivo ficticio
ip link add name acl0 type dummy
ip addr add 10.10.0.1
ip link set dev acl0 up
Eso crea la interfaz pero en realidad no dirige ningún tráfico.
¿Cómo puedo crear un dispositivo virtual con una dirección IP específica que realmente enrute el tráfico?
Respuesta1
Edite su pregunta y proporcione detalles de por qué necesita una segunda IP y cómo planea usarla para fines de acceso.
Uninterfazno "enruta el tráfico". El kernel enruta el tráfico.
Lo único para lo que sirve una interfaz ficticia es como marcador de posición para una IP sin funcionalidad, para que las aplicaciones puedan vincularse a ella. Mucha gente ha cometido el error de suponer que de alguna manera hace algo, pero no es así.
Puede asignar varias direcciones IP a la misma interfaz, pero luego debe asegurarse de que todas sus aplicacionesunira una dirección específica, o te divertirás depurando los efectos aleatorios.
Dependiendo del tipo de "control de acceso" que necesite, una forma sencilla de separar las redes para diferentes aplicaciones es utilizar unespacio de nombres de red. Coloque la aplicación "especial" dentro del espacio de nombres de la red, luego actuará si se está ejecutando en una máquina diferente en lo que respecta a la red, por lo que puede darle diferentes configuraciones.
Use a macvlan
en su dispositivo eth0
para que use la misma interfaz con una dirección IP diferente (o tal vez use DHCP para darle una IP), o cree un par veth entre el nuevo espacio de nombres y el espacio de nombres de la red principal, y luego realice el enrutamiento normal. .