Skip to content

2011/02

TMSH で BIG-IP の基本的な設定を行う

BIG-IP v10.0.0 から新たに "TMSH" という、Cisco ライクなシェルがサポートされました。F5 の資料によると「TMSH には以下のような特徴がある」と、まとめられていました。

  1. ツリー構造
  2. Action / Object モデル
  3. 明示的な create と modify 操作
  4. コンテキスト・センシティブなヘルプ
  5. CLI historical Stats
  6. bigpipe 互換性
  7. 基本的な transaction のサポート

"Cisco ライク" と言う通り、TAB キーや "?" によるコマンド補完が効きます。また、"新規作成時は create"、"変更時は modify"、"削除は delete" と、コマンドが明確に定義されており、後発である分、Cisco など他社の CLI をよく研究してデザインしてあるように思っています(少なくても、私には非常に使い勝手が良いです)。今回は TMSH の概要と、基本的な操作・設定例を記載します。

BIG-IP で Syslog サーバを設定する

BIG-IP では従来、Syslog メッセージをサーバへ転送するには /etc/syslog-ng/syslog-ng.conf(/var/run/config/syslog-ng.conf)を直接、vi で編集してしまう・・・という方法がありましたが、TMOS v10 からこの方法はサポートされなくなりました。代わりに以下の方法で Syslog サーバを設定する必要があります。

ひとつの NIC に大量のアドレスを割り当てるツール「Addresses」

Windows でも Linux でも、ひとつの NIC に複数の IP アドレス(俗に「セカンダリアドレス」と呼んでいると思います。三つ目、四つ目のアドレスでも「セカンダリアドレス」と呼んでいます)を割り当てることが出来ます。

この機能を利用すると、ロードバランサーでの負荷分散試験時に複数の IP アドレスで Web サーバをホストしたい・・・ということが簡単に出来ます(NIC に複数のアドレスを割り当て、それらのアドレスで Web サーバを Listen するだけです)。

ただ、Linux はともかく、Windows の GUI でセカンダリアドレスを大量に設定する・・・というのは骨が折れます。 WMI を使えば Windows でもスクリプトから大量のセカンダリアドレスを設定することは出来ますが、毎回、設定するのは面倒です。そこで、CSV ファイルに書き出したアドレスを NIC に設定してくれるツールを作ってみました。.NET Framework 2.0 で動作します。

ASA の OS イメージからカーネルとファイルを切り出す

Qemu で Cisco ASA をホストすることにより、GNS3 上で Cisco ASA を利用することが出来ます。

Zip ヘッダーの位置を推測することで ASA の OS イメージやファイルを抽出することが出来ますが、その為には大前提として Zip ヘッダーの位置を特定する必要があります。しかし、世の先人が Any hope to run 8.2/8.3 code? Page 3 of 4 にカーネルとファイル部分の切り出し方法をまとめてくださっているようです。

IPv4 転送の実行可否を決定する "net.ipv4.ip_forward" を検証する

Linux では "net.ipv4.ip_forward" というパラメータがデフォルトでは "0" ですが、「この値を "1" にすることで IPv4 転送が有効になる」という記事をよく見かけます。このパラメータを実際に検証してみました。

検証は GNS3 上の MicroCore Linux 3.4(Linux Kernel 2.6.33.3)で実施しています。

Qemu 0.13.0 にパッチを適用し、GNS3 で利用出来るようにする

GNS3 内で Linux ホストを使った検証が行いたくて 先日、homebrew で Qemu 0.13.0 をインストールした のですが、Qemu が上手く動きませんでした。GNS3 のサイトを見ると、Qemu 0.13.0 用のパッチが出ていたので、パッチを当てて Qemu をコンパイルし直してみます。前提として、以下の環境で作業しています。

  • Mac OS X 10.6.6
  • GNS3 0.7.3("/Applications/GNS3.app" へインストール済み)
  • Qemu 0.13.0

macOS へ Qemu をインストールする

Qemu を使うとハードウェアをエミュレートすることが出来、GNS3(Dynamips)と組み合わせて利用すると非常に便利です。具体的には、GNS3 上で「Cisco IOS は Dynamips で」「JUNOS や Cisco ASA、Cisco IDS、Vyatta などは Qemu で」動作させることにより、多彩な検証環境を作ることが出来ます。