DSR - arosh/arosh.github.com GitHub Wiki
arp_announce
自分が送る ARP リクエストの IP パケットに詰める IP アドレスとしてどれを選ぶか決める
- デフォルトの 0 では、インターフェースを考慮せずに自身が持つすべての IP アドレスのうちいずれかが選ばれる
- 1 にすると、サブネットが適合しない IP アドレスは選ばれない
- 2 にすると、そのインターフェースが持っていない IP アドレスは選ばれない
DSR では VIP を lo につけるが、それを eth0 から広報されると困るので arp_announce = 2 にする必要がある。
arp_ignore
ARP request が来た時のレスポンスを制御する。
- デフォルトの 0 では、自身が持っている IP アドレスについての問い合わせは、どのインターフェースについても応答する
- 1 では、そのインターフェースに設定された IP アドレスについてのみ応答する
- 2~8 では、もっと厳しい制限が付く
DSR では lo につけられた VIP の問い合わせを eth0 で応答すると困るので arp_ignore = 1 以上にする必要がある。
rp_filter
入力トラフィックと出力トラフィックのインターフェースが異なるような通信をフィルターする設定。Linux カーネルのデフォルトでは 0 で制限がないが、ディストリビューション側でデフォルト値が変わっていることが多く、Ubuntu 20.04 では 2 になっている。
- https://mano.xyz/2008/
- https://incarose86.hatenadiary.org/entry/20150314/1426340659
- https://www.kernel.org/doc/html/latest/networking/ip-sysctl.html
/proc/sys/net/ipv4/conf/{default,all}
default は新たに追加されたインターフェースのデフォルト設定を提供する。
all はインターフェースごとの明示的な設定が行われなかった場合のフォールバックを提供する。