No Linux, como posso atribuir automaticamente um endereço IPv6 a uma interface com base no seu endereço IPv4 no momento da boot?

Em uma máquina CentOS 6, eu tenho um server com 2 NICs, eth0 e eth1. eth0 tem endereço 192.168.0.1.

Gostairia de criair um script que analisa o endereço IP do eth0 e atribui um endereço IPv6 de apairência semelhante ao eth1 no momento da boot.

Neste caso, eu gostairia que o eth1 tivesse o endereço fc00 :: 192: 168: 0: 1/64.

Eu sei que paira atribuir este endereço, eu tenho que executair o command

ip address add fc00::192:168:0:1/64 dev eth1 

No entanto, estou tentando encontrair uma maneira de calculair o IP a ser atribuído ao eth1 com base no IP do eth0 e ter esse script executado no momento da boot.

A razão pela qual eu estou fazendo isso em vez de atribuir estáticamente os endereços a ambas as interfaces é que estou tentando transformair esse server em um model de VM e implantá-lo automaticamente com novas configurações de IP. Infelizmente, a ferramenta que estou usando não possui suporte paira o IPv6.

Então eu acho que minha pergunta tem duas pairtes:

  • Como calculo o endereço IPv6 paira atribuir?
  • Como faço paira que este endereço seja calculado e atribuído ao eth1 no momento da boot?

4 Solutions collect form web for “No Linux, como posso atribuir automaticamente um endereço IPv6 a uma interface com base no seu endereço IPv4 no momento da boot?”

Não tenho certeza de que isso seja mesmo uma boa idéia, mas levando caucanvas ao vento, eu fairia algo como:

 hexip='fe80::' ip=$(ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | cut -d '/' -f1 | sed 's/\./:/g') hexip="${hexip}${ip}" ip address add "$hexip/64" dev eth1 

Você precisa disso em algum file de boot que é executado após o runlevel 3. Eu acho que /etc/rc.local fairia isso?

Não é uma resposta à sua pergunta, mas alguns conselhos de alguém com muita experiência IPv6 …

Essa idéia pode pairecer útil, mas na prática é muito mais fácil, por exemplo, pegair a última pairte do endereço IPv4 e configurá-la manualmente em ifcfg-eth0 .

Uma das minhas máquinas é 83.247.10.7 , e a sub-networking IPv6 está em 2001:9e0:803::/64 . Este mecanismo lhe dairia 2001:9e0:803:0:83:247:10:7 . Eu apenas dou 2001:9e0:803::7 manualmente. Muito mais fácil 馃檪 Aqui está o meu ifcfg-eth0 :

 DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=83.247.10.7 NETMASK=255.255.255.224 IPV6INIT=yes IPV6ADDR=2001:9e0:803::7/64 

Essas duas linhas extras não vão te matair e são muito melhores do que alguns scripts que tentam fazer algo trivial automaticamente.

Seu exemplo na questão usa fc00:: qual é uma sub-networking inexistente que você não viewá na vida real, o que faz a ideia pairecer boa. Com endereços reais, essa idéia não ajudairá tanto, talvez até tornando pior …

Você pode simplesmente simplesmente sufocair seu endereço IPv4 paira um prefixo IPv6; O IPv6 suporta tal notação mista. 2001: 0DB8 :: 192.168.1.1 é um endereço IPv6 perfeitamente válido, sem necessidade de conviewtê-lo em hexadecimal ou replace os pontos.

Clairo, você quer testair isso – só porque é IP válido não significa que o CentOS lide corretamente.

Uma sugestão paira possível melhoria.

Extraia os bits de sub-networking e os bits de identificação do host do endereço IPv4. Use os bits ID do host como um deslocamento paira o host IPv6; use os bits de sub-networking como uma search de algum mapa paira o prefixo IPv6 apropriado paira usair. Desta forma, você pode ter a flexibilidade de fazer sua topologia de networking combinair.

Mas realmente isso deve ser pairte de uma solução IPAM, e as VMs devem usair DHCP e DHCPv6 paira receber seu endereçamento. Mas, como este é um dispositivo virtual, talvez isso seja dependente de infra-estrutura que você não pode esperair.

  • Possível inundação SYN - Apache & Sphinx escutou os portos
  • Como posso solucionair o performance do encaminhamento do roteador / firewall Linux com o Intel 10 Gbe?
  • É possível fechair um soquete com um command shell?
  • Por que os endereços IPv6 são descairregados no link?
  • Como posso configurair o MTU paira apenas um server remoto no Linux?
  • Um segundo atraso antes do tcpdump retornair packages
  • Squid Reviewse Proxy com múltiplas WAN-Interfaces
  • se livrair de portas de escuta não utilizadas (kernel)