É possível colocar um IP real em um dispositivo de loopback?

6

É possível colocar um IP real (não no intervalo 127.x.x.x) em um dispositivo de loopback?

    
por Peter Smit 28.11.2017 / 13:30

4 respostas

3

Nada proíbe isso.

# ifconfig lo:1 10.0.0.1/8
# ifconfig lo:1
lo:1      Link encap:Local Loopback  
          inet addr:10.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
# ping -c 1 10.0.0.1    
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.025 ms

--- 10.0.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.025/0.025/0.025/0.000 ms

Atualização:

Para este endereço persistir após uma reinicialização no Ubuntu 16.04, você pode modificar seu arquivo /etc/network/interfaces com estes comandos ethtool :

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
    
por 28.11.2017 / 13:37
3

No kernel atual do Linux com o utilitário ip , é bem simples:

ip addr add 10.0.1.8 dev lo

Isso pode ser útil quando você tem um serviço que liga uma porta em uma interface e deseja executar um programa diferente na mesma porta e rede. Eu o uso para permitir que ambos osbind e dnsmasq coexistam no mesmo servidor.

Se você estiver usando /etc/network/interfaces para configurar suas interfaces, atualize a sub-rotina lo para incluir:

up ip addr add 10.0.1.8 dev lo
    
por 29.11.2017 / 02:56
1

Sim, mas isso não significa que seja uma boa ideia. Se você usar um IP que será acessado pelo seu sistema, todos os dados que ele tentar enviar lá serão redirecionados para o sistema local, o que pode causar todos os tipos de problemas estranhos na rede. Isso significa, em particular, que você não pode usar com segurança nada além dos seguintes intervalos:

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

Com a possível exceção de qualquer um dos itens a seguir, dependendo de como suas outras interfaces de rede estão configuradas:

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

Este é um caso em que RFC 1925 , seção 2, item 3 se aplica.

    
por 28.11.2017 / 21:40
0

Como alternativa ao uso de lo:0 , você também pode usar dummy interfaces no Linux como em:

ifconfig dummy0 10.0.0.1/32
ifconfig dummy1 10.1.1.1/24

Além de outras respostas:

  • Eu não recomendo alterar o endereço da interface usual / oficial de loopback, já que muita funcionalidade depende dele;
  • no entanto, você pode ter / criar várias interfaces loopback / dummy - ou lo: 0 para lo: 255 ou interfaces dummyX;
  • tem que ser levado em conta lo: 0 to lo: 255 são aliases, enquanto dummyX são interfaces completas;
  • além disso, uma das táticas usuais no Linux para criar IPs virtuais sobre BGP ou OSPF é atribuí-los a interfaces de loopback / dummy e criar caminhos para eles por meio de roteamento;
  • novamente, alguns daemons têm problemas com o anúncio de endereços em aliases (por exemplo, quagga) - portanto, interfaces dummyX são recomendadas nesses casos;
  • Gostaria de salientar que, sem roteamento na infra-estrutura, tais endereços são apenas conhecidos / capazes de serem utilizados no servidor em questão;
  • atribuir um endereço privado / público a uma interface de loopback, sem o roteamento adequado pode ser uma medida temporária de baixo custo para as comunicações da lista negra temporariamente com um endereço IP / rede.

Para mais detalhes, veja por exemplo um tutorial de instalação anycast do BIND feito com Quagga / BIRD.

dicas de roteamento aqui: OSPF: Migrando o Quagga para o BIRD

P.S. O Linux, por padrão, cria apenas dummy0 e dummy1 e precisa ser instruído para criar um número maior de interfaces fictícias.

    
por 28.11.2017 / 22:13

Tags