Um roteador Linux pode autoconfigurar o IPv6 se o radvd estiver rodando no mesmo host?

2

Eu tenho um roteador de gateway Linux executando um túnel 6to4 e usando radvd para transmitir um prefixo IPv6 na sub-rede local. Radvd pode ser configurado para pegar automaticamente o prefixo de rede da interface 6to4, no entanto não consigo encontrar uma maneira de atribuir automaticamente um endereço válido para a interface de rede local (eth0).

Por exemplo, se minha interface 6to4 for autoconfigurada com 2002:4185:9dd4::1/16 , então eth0 precisará de um endereço 2002:4185:9dd4:dead:<whatever>/64 (onde 'dead' é a sub-rede local que configurei em radvd.conf). Com o radvd rodando na máquina local, existe alguma maneira de forçar o linux a autoconfigurar a eth0?

    
por loganb 11.12.2010 / 23:22

3 respostas

1

A resposta curta: Em um sistema em que você está executando radvd on, você deseja configurar a interface usando o mesmo método usado para configurar radvd ; se radvd.conf for gerado estaticamente, o endereço IPv6 da sua interface Ethernet local deverá ser gerado estaticamente. Mas tudo não está perdido; continue lendo para mais detalhes.

O que você pode fazer é usar um pequeno script de shell para configurar ambos. Digamos que por um momento você tenha um endereço IPv4 global dinamicamente atribuído, e este é o único endereço IPv4 na sua interface; você pode usar o seguinte trecho de script de shell para obter o prefixo IPv6 / 48 (nota: código adaptado de ARIN :

IPV4=$(ip addr ls eth0 | grep 'inet ' | awk '{ print $2 }' | cut -f1 -d/)
PARTS='echo $IPV4 | tr . ' ''
PREFIX48='printf "2002:%02x%02x:%02x%02x" $PARTS'

Agora, você tem o prefixo / 48; obter um prefixo / 64 é bastante simples, já que você pode simplesmente anexá-lo à variável $PREFIX48 .

Agora, tudo o que resta a você é escrever o script que grava a configuração da interface de rede e a configuração de radvd (presumivelmente, de um modelo para cada uma delas) e fazer esse script ser executado antes da configuração da rede. Eu não vou incluir esse código aqui, pois não sei qual distribuição você está usando, e isso varia dependendo disso.

Espero que isso ajude.

    
por 20.12.2010 / 00:43
0

Não tenho certeza. Mas se o seu endereço MAC e o prefixo que você usa não mudarem, por que não configurar estaticamente a interface com o endereço que, de outra forma, viria da atribuição automática?

Se o seu endereço MAC ou prefixo mudar regularmente, estou curioso para saber o que você está fazendo.

    
por 19.12.2010 / 17:43
0

Qual é o seu roteador rodando? Se for uma distribuição completa como o Gentoo, o OpenRC tem uma configuração de /etc/conf.d/net:6to4_suffix , e se # 357929 é corrigido da maneira que foi proposta, o Debian também terá uma configuração /etc/network/interfaces:6to4subnet .

Caso contrário, basta definir o endereço manualmente. Um script no meu roteador contém algo assim:

IDEV=br0
ODEV=vlan2
WANIP='ip -4 addr show dev "$ODEV"|awk '/inet /{print$2}'|cut -d/ -f1'
V6PREFIX='printf '2002:%02x%02x:%02x%02x' ${WANIP//./ }'
V6NET=16
GW=192.88.99.1

ip tunnel add 6to4 mode sit remote any local "$IP" ttl 255 dev "$ODEV"
ip link set 6to4 up
ip addr add "$V6PREFIX::1/$V6NET" dev 6to4
ip addr add "$V6PREFIX:1::1/$((V6NET+48))" dev "$IDEV"
ip route add 2000::/3 via "::$GW" dev 6to4 metric 1

Eu acho que você quer $V6PREFIX:dead::1/$((V6NET+48)) ou algo assim.

    
por 19.12.2010 / 21:41