TumblrHAProxyは基本的にL7レイヤのロードバランサー(リバースプロキシ)なので、バックエンドにいるリアルサーバには、フロントエンドから届いたリクエストが、ロードバランサのIPアドレスからアクセスが来たかのように振舞います。proxy)をサポートしているようなので、L4で動く透過型のプロキシとしても振舞うことが出来るようです。6.4で、HAProxyは開発版の1.5-dev19です。kernelのnf_tproxy_coreモジュールをロードするここからは、実際にHAProxyの稼動するサーバに対してのセットアップを行います。tproxy関連のモジュールのロードが必要です。6.4には既に組み込まれていたので、ロードするだけです。tproxykernel/net/netfilter/nf_tproxy_core.kotproxy関連のモジュールを探してみるとありました。routines」とあります。[permanent]組み込まれました。フラグを立ててビルドしたら、以下のようになりました。IP_FREEBIND一応、今回はIPv6環境下での確認もしたかったので、↑でいきます。カーネルパラメータの設定"/etc/sysctl.conf"に以下の設定を入れます。(利用しているインターフェース名を考慮して適宜書き換えてください。routeの設定を入れます。100"/etc/sysconfig/iptables"的には以下のような感じですね。最後に、"/etc/haproxy/haproxy.cfg"に以下の設定を入れます。clientipこの一行を、listenとかbackendの部分に入れておけばOKです。動作確認では、実際に動かしてtcpdumpでパケットの動きを眺めてみます。Serverになります。Serverへ渡す一般的な構成です。Serverのインターフェースのところで、tcpdumpを動かしてキャプチャした結果が以下です。0バックエンドの実サーバ的には、HAProxyのホストからアクセスがきているように見えます。L7リバースプロキシの挙動としては普通の状態ですね。0この通り、HAProxyを介していますが、バックエンドの実サーバ的にも、どのクライアントからアクセスが来たのかわかるようになりました。ServerからClientの戻りパケットをHAProxyのマシンを介す(つまり、ルーティング上、Clientのいるネットワーク宛のゲートウェイをHAProxyのホストにする)ようなパターンで、きちんと動きました。Serverが同じネットワークセグメントにいると動かなかったです。ACKが戻りRSTが返されるような状態。Serverのところを小細工すれば何とかなるような気がしなくも無いですが、あまり手を入れて複雑にはしたくない気もする。こんな感じで軽く検証しただけで、ドキュメントとかユーザ事例をまだちゃんと追えてないので、何ともいえないですが、何か分かれば追記したいと思います。SYNの再送間隔の初期値が3秒から1秒に変更されていたということに、(今更?)気付いたお話です。VPCを触り始めてみました。@namikawaメールアドレス執筆・講演依頼や、その他ご連絡は、以下のメールアドレスまでお願いします。お問い合わせスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。