packet Version Header Length Type Of Service Identification Flags Time to Live Protocol Header Checksum Source Destination Total Length Fragment Offset Options Padding
virtual server として、配下の real server に L4 レベルで負荷分散している • Linux Kernel の一部として実装されている ◦ Linux kernel のソースコードの net/netfilter/ipvs で実装されている ◦ 以前は Linux Kernel とは別のプロジェクトして開発されていたが、 kernel 2.4 あたりでマージされた • virtual server 内の負荷分散方式として複数の方式が実装されている • real server への通信手段として以下が実装されている ◦ LVS/NAT -> あまり使われていない ◦ LVS/TUN ◦ LVS/DR
virtual server eth0 などの実足 ◦ real server ループバックインターフェースや tun インターフェース • virtual server は VIP を対象にした ARP 要求に答える必要がある ◦ ip addr show dev eth0 とかして secondary なアドレスがあれば、 VRRP Master という読み方がで きる • real server は VIP を対象にした ARP 要求に答えてはいけない、かつ、LVS/TUN の場合は ipip カプセルを tun インターフェースで解く必要がある
カプセル 宛先の MAC アドレスを変更する real server 側の設定 IPIP でカプセル化されたパケットを受 けるためのインターフェースが必要 VIP に対する ARP 応答に答えないよ うにする ループバックインターフェースに VIP をつけ ておく VIP に対する ARP 応答に答えないように する 通信要件 異なるブロードキャストネットワークに 配送できる real server は LVS と同一のブロードキャ ストネットワークに存在する必要がある 戻りパケット real server から直接 client に投げる real server から直接 client に投げる