CentOSとiptablesでper-packet loadbalance with coreemu

Linuxでパケット単位のロードバランスをしながら、coreemuの宣伝をします。

今回のキーワードは、 CentOS, coreemu, iptables, fwmark, loadbalance, per-packet loadbalance 辺りでしょうか。

Install coreemu for CentOS 6.3

さっくりインストールするので、いくつか現時点のハマりどころを書いておく。

基本的には、2.2.2. Installing from Packages on Fedora/CentOSを読みながら進みましょう。

  1. tkimgとlibevを先にインストールしておく必要があります。(EPEL使う場合は勝手に入るのでOK)
  2. SELINUXを無効にするか適切に設定しないとzebra(およびルーティングデーモン)が動きません
  3. ホスト側でiptablesを無効にするか空っぽにしておかないと、仮想リンク間のパケットが全部叩き落とされます。 iptables -F; /etc/init.d/iptables save とかで良いですかね。
  4. yumで入るtkのバージョンが古いので、仮想リンクの遅延等を設定しようとすると Error: Invalid command …
more…

今は昔、coreemuといふ者ありけり。

quagga/xorpにまじりてLinux network namespaceを取りつつ、よろづのことに使ひけり。

今日は coreemu というネットワークエミュレータの話をしようと思う。

GNS3のIOS使わない全てOSS版、みたいなものだと思ってくれればいい。

前述の通り、関連キーワードは Linux network namespace, Quagga, XORP である。

What is coreemu ?

coreemuとは、tcl/tkで書かれたGUIでネットワークトポロジを作成し、作成した仮想ノード別にルーティングテーブル(Linux network namespace)およびプロセスを分離し、各仮想ノードでquagga/xorp等を動作させて、IPネットワークをエミュレートするためのアプリケーションである。

各仮想ノードは、Linux Containerのような形である程度独立して動くものの、ルートディレクトリが隔離されるわけでもないので、アプリケーションコンテナのような形で動くことになる。

とりあえず触ってみる

まずはインストールしてみよう。

手元で動作を確認しているのはUbuntu系列だけなので、説明にはXubuntuを使用する。

しかし、基本的に Netnwork namespaceが使用出来るカーネル以降であれば、おおよそ動作するはずなので、CentOSやFedoraが良い人は、そちらのパッケージを使おう。

インストールは Coreemu …

more…