3.7. パケット転送および非ローカルバインディングの有効化
Keepalived サービスが適切にネットワークパケットを実サーバーへ転送するには、各ルーターノードのカーネルで IP 転送が有効になっている必要があります。
root でログインし、/etc/sysctl.conf ファイルにある行 net.ipv4.ip_forward = 0 を以下のように変更します。
net.ipv4.ip_forward = 1
net.ipv4.ip_forward = 1
システムを再起動すると変更が反映されます。
HAProxy と Keepalived で同時に負荷分散を行うには、ローカルシステムのデバイスに割り当てられていない非ローカル の IP アドレスへバインドする機能が必要になります。この機能により、フェイルオーバーの発生時に稼働しているロードバランサーインスタンスがローカルでない IP アドレスへバインドできるようになります。
この機能を有効にするには、
/etc/sysctl.conf にある行 net.ipv4.ip_nonlocal_bind を以下のように変更します。
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.ip_nonlocal_bind = 1
システムを再起動すると変更が反映されます。
IP 転送が有効になっているのを確認するには、
root で以下のコマンドを実行します。
/usr/sbin/sysctl net.ipv4.ip_forward
非ローカルバインディングが有効になっていることを確認するには、
root で以下のコマンドを実行します。
/usr/sbin/sysctl net.ipv4.ip_nonlocal_bind
上記の両方のコマンドが
1 を返した場合、それぞれの設定が有効になっています。