サーバーはUbuntu12.04を実行しているXenVPSであり、再起動後にnginxもNSD3も起動しません。その明らかな理由は、起動直後に割り当てられたIPアドレスにバインドできないことです。
/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 ]
/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
数秒後にはすべて正常に動作し、nginxとNSD3の両方を開始できます。
問題の起動順序が間違っているようです。ネットワーク構成を完全に実行する前に、nginxとNSD3が起動されます。私はそれを置くことによってそれを回避しました
# nginx and nsd boot fix
sleep 4
/etc/init.d/nsd3 start
/etc/init.d/nginx start
/etc/rc.localにありますが、これは適切な解決策ではありません。 この問題を処理する正しい方法は何ですか?
これが/ etc/network/interfaces autoeth0からの私の基本的なネットワーク構成です
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
IPを追加したかったのですが、サーバーから発信されるすべてのトラフィックに最初のIPを使用するため、これらの厄介なIDアドレスがあります。
Nsd3はnetwokの後に開始する必要があるようです。 /etc/init.d/nsd3ファイルのRequired-Start部分に$ networkを追加すると、問題が解決するはずです。
これに対する最も簡単な修正は、nginxまたはnsdを特定のIPアドレスにバインドせずに、任意のアドレスをリッスンすることです。たとえば、nginxの場合:
listen [::]:80;
簡単ではない修正は、ネットワークインターフェイススクリプトを修正することです。現在の構成方法では、IPアドレスはルーティングされますが、プログラムが明示的にリッスンできるように、実際にはインターフェイスにバインドされていません。 (上記のように、いずれかのアドレスにバインドされている場合にのみトラフィックを受信します。)これを行うには、ip route
コマンドの代わりに追加のiface
セクションが必要です。
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