¿Es posible poner una IP real en un dispositivo loopback?

9

¿Es posible poner una IP real (no en el rango 127.xxx) en un dispositivo loopback?

Peter Smit
fuente
Sí, por supuesto.
Ipor Sircer
3
... un peligro es, por supuesto, que se olvide esta IP está ahí y entonces han de rascarse la cabeza los problemas de red como los paquetes no ir a la dirección IP pública que se espera ...
thrig

Respuestas:

5

Nada prohíbe hacerlo.

# ifconfig lo: 1 10.0.0.1/8 
# ifconfig lo: 1
lo: 1 Enlace de enlace: Local Loopback  
          inet addr: 10.0.0.1 Máscara: 255.0.0.0
          UP LOOPBACK MTU EN EJECUCIÓN: 65536 Métrica: 1
# ping -c 1 10.0.0.1    
PING 10.0.0.1 (10.0.0.1) 56 (84) bytes de datos.
64 bytes de 10.0.0.1: icmp_seq = 1 ttl = 64 tiempo = 0.025 ms

--- 10.0.0.1 estadísticas de ping ---
1 paquetes transmitidos, 1 recibido, 0% de pérdida de paquetes, tiempo 0 ms
rtt min / avg / max / mdev = 0.025 / 0.025 / 0.025 / 0.000 ms

Actualizar:

Para que esta dirección persista después de un reinicio en Ubuntu 16.04, puede modificar su /etc/network/interfacesarchivo con estos ethtoolcomandos:

auto lo lo:1

iface lo inet loopback

iface lo:1 inet static
  address 10.0.0.1
  network 10.0.0.0
  netmask 255.0.0.0
jlliagre
fuente
¿Esto persiste después de un reinicio?
Peter Smit
1
No. Es mejor indicar el sistema operativo / distribución precisa que está utilizando para obtener una respuesta confiable, y posiblemente hacer una nueva pregunta o verificar si aún no se ha respondido.
jlliagre
Ubuntu 16.04 LTS
Peter Smit
Respuesta actualizada
jlliagre
5

Como alternativa al uso lo:0, también puede usar dummyinterfaces en Linux como en:

ifconfig dummy0 10.0.0.1/32
ifconfig dummy1 10.1.1.1/24

Además de otras respuestas:

  • No recomiendo cambiar la dirección de interfaz de bucle de retorno habitual / oficial, ya que mucha funcionalidad depende de ello;
  • sin embargo, puede tener / crear varias interfaces loopback / dummy - lo: 0 a lo: 255 o interfaces dummyX;
  • debe tenerse en cuenta que lo: 0 a lo: 255 son alias, mientras que dummyX son interfaces completas;
  • Además, una de las tácticas habituales en Linux para crear IP virtuales a través de BGP u OSPF es asignarlas a interfaces de bucle invertido / ficticio Y hacerles rutas a través de enrutamiento;
  • de nuevo, algunos demonios tienen problemas para anunciar direcciones en alias (por ejemplo, quagga), por lo que se recomiendan interfaces dummyX en esos casos;
  • Destacaría que sin el enrutamiento en la infraestructura, tales direcciones solo se conocen / pueden utilizarse en el servidor en cuestión;
  • asignar una dirección pública / privada a una interfaz de bucle invertido, sin el enrutamiento adecuado, puede ser una medida de bajo costo de computación para poner en una lista negra las comunicaciones temporalmente con una dirección / red IP.

Para obtener más detalles, consulte, por ejemplo, un tutorial de configuración BIND anycast hecho con Quagga / BIRD.

pistas de enrutamiento aquí: OSPF: Migración de Quagga a BIRD

PS Linux por defecto solo crea dummy0 y dummy1 y tiene que recibir instrucciones para crear una mayor cantidad de interfaces ficticias.

Rui F Ribeiro
fuente
1
Absolutamente voy a usar esto con enrutamiento (estático). ¿Hay alguna diferencia real entre las interfaces ficticias y de bucle invertido?
Peter Smit
@PeterSmit asigna vips al loopback para tratar con alias de una interfaz, mientras que los ficticios son interfaces completas por derecho propio. hubo problemas al usar alias de interfaz con quagga ... y no recomiendo cambiar lo. También sucede a menudo que puede / tiene que asociar reglas fw con una interfaz real y no un alias.
Rui F Ribeiro
3

En el núcleo Linux actual con la iputilidad es bastante simple:

ip addr add 10.0.1.8 dev lo

Esto puede ser útil cuando tiene un servicio que enlaza un puerto en una interfaz y desea ejecutar un programa diferente en el mismo puerto y red. Lo uso para habilitar ambos bindy dnsmasqcoexistir en el mismo servidor.

Si está utilizando /etc/network/interfacespara configurar sus interfaces, actualice la lostanza para incluir:

up ip addr add 10.0.1.8 dev lo
BillThor
fuente
Gracias. ¿Esto persistirá reinicia?
Peter Smit
1
@PeterSmit Poco probable.
Kusalananda
1

Sí, pero eso no significa que sea una buena idea. Si usa una IP a la que su sistema accederá alguna vez, cualquier dato que intente enviar allí será redirigido al sistema local, lo que puede causar todo tipo de problemas de red extraños. Esto significa en particular que no puede usar de manera segura nada fuera de los siguientes rangos:

127.0.0.0/8
192.0.2.0/24
198.51.100.0/24
203.0.113.0/24
240.0.0.0/4

Con la posible excepción de cualquiera de los siguientes dependiendo de cómo estén configuradas sus otras interfaces de red:

10.0.0.0/8
192.168.0.0/16
172.16.0.0/12
169.254.0.0/16

Este es un caso donde se aplica RFC 1925 , sección 2, ítem 3.

Austin Hemmelgarn
fuente
En realidad, hay más rangos. En mi caso, estaría en el rango 100.64.0.0/10 (Carrier Grade NAT)
Peter Smit el
1
Puede haber más, pero la mayoría de ellos no se usan ampliamente en los sistemas cliente (creo que el rango CGN probablemente se ajusta a eso), o tienen usos mal definidos que muchas personas pueden no entender (como 198.18.0.0/15, utilizado para evaluación comparativa), y quería evitar decir algo que podría no ser razonablemente seguro, de hecho era seguro.
Austin Hemmelgarn