Parece que o nsd3 precisa ser iniciado após a netwok. A adição de $ network na parte Required-Start do arquivo /etc/init.d/nsd3 deve resolver o problema.
Servidor é um Xen VPS rodando o Ubuntu 12.04 e nem o nginx nem o NSD3 aparecem após a reinicialização. A razão aparente para isso é que eles não são capazes de vincular seus endereços IP atribuídos logo após a inicialização,
de /var/log/boot.log
* Starting configure network device [ OK ]
* Stopping save kernel messages [ OK ]
* Starting MTA [ OK ]
nginx: [emerg] bind() to [2a01:1b0:removed:1c9c]:80 failed (99: Cannot assign requested address)
* Starting nsd3... [ OK ]
[...]
* Starting configure virtual network devices [ OK ]
* Stopping configure virtual network devices [ OK ]
de /var/log/nsd.log
[1351715473] nsd[956]: error: can't bind udp socket: Cannot assign requested address
[1351715473] nsd[956]: error: server initialization failed, nsd could not be started
Tudo funciona bem após alguns segundos, e tanto o nginx quanto o NSD3 podem ser iniciados.
Parece-me que o problema está na ordem de inicialização incorreta, o nginx e o NSD3 são iniciados antes que a configuração de rede possa ocorrer totalmente. Eu trabalhei em torno dele colocando
# nginx and nsd boot fix
sleep 4
/etc/init.d/nsd3 start
/etc/init.d/nginx start
em /etc/rc.local, mas essa não é uma solução adequada. Qual é o caminho certo para lidar com esse problema?
Aqui está minha configuração básica de rede, de / etc / network / interfaces auto eth0
iface eth0 inet static
address 89.removed.121
gateway 89.removed.1
netmask 255.255.255.0
iface eth0 inet6 static
up echo 0 > /proc/sys/net/ipv6/conf/all/autoconf
up echo 0 > /proc/sys/net/ipv6/conf/default/autoconf
netmask 64
gateway 2a01:removed:0001
address 2a01:removed:7c3b
up ip addr add 2a01:removed:62bd dev eth0 preferred_lft 0
up ip addr add 2a01:removed:ce6d dev eth0 preferred_lft 0
up ip addr add 2a01:removed:3e13 dev eth0 preferred_lft 0
up ip addr add 2a01:removed:1c9c dev eth0 preferred_lft 0
auto lo
iface lo inet loopback
Esse id id desajeitado está lá porque eu queria adicionar mais IPs, mas ainda usar o primeiro para todo o tráfego proveniente do servidor.
Parece que o nsd3 precisa ser iniciado após a netwok. A adição de $ network na parte Required-Start do arquivo /etc/init.d/nsd3 deve resolver o problema.
A solução mais fácil para isso é não ter nginx ou nsd vinculado a um endereço IP específico, mas para ouvir qualquer endereço. Por exemplo, em nginx:
listen [::]:80;
A correção menos fácil é corrigir o script de interfaces de rede. Do jeito que você configurou agora, seus endereços IP são roteados para você, mas na verdade eles não estão vinculados à interface de forma que os programas possam escutá-los explicitamente. (Eles só recebem tráfego para eles se estiverem vinculados a qualquer endereço, conforme descrito acima.) Para fazer isso, você precisa de mais iface
seções, em vez dos comandos ip route
.
iface eth0 inet6 static
address 2001:db8::1234
netmask 64
iface eth0 inet6 static
address 2001:db8::5678
netmask 64
iface eth0 inet6 static
address 2001:db8::abcd
netmask 64