株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

Oracle VMでリピータHUB – 仮想環境で Oracle Audit Vault and Database Firewall 環境を構築

Oracle Audit Vault and Database Firewall の検証環境をつくることになり、
Oracle VM 環境における仮想スイッチをリピータHUBのように動作させたくなりました。

Database Firewall Serverは、実行されたSQLの記録や置換のため、データベースサーバとクライアントでやり取りされるSQLトラフィックをキャプチャします。Database Firewall Serverの配置方法にはインラインとアウトオブバンドの2種類がありますが、現時点で一般的に使用されるのはアウトオブバンド方式のようです。

アウトオブバンド方式では、通常、スイッチのミラーポート機能を使って、データベースサーバとクライアントでやり取りされるパケットをDatabase Firewall Serverが接続されたポートにミラーリングします。そして、ミラーリングされたパケットをDatabase Firewall Serverがキャプチャします。

しかし、確認した限り、Oracle VM 環境で使用される仮想スイッチには、ミラーリングの機能が無いようでした。しかし、実現したいことは、データベースサーバとクライアントでやり取りされるパケットが、Database Firewall Serverが接続されたポートからも出力されることですので、ミラーリングの機能が無くても、仮想スイッチをリピータHUBのように動作させらればOKです。

リピータHUBでは、HUBを経由するすべてのパケットがすべてのポートから出力されます。一方、仮想スイッチは、各ポートに接続されているホストのMACアドレスを学習することによって、パケットを出力するポートを(うまく)制限してくれます。
逆にいえば、この学習機能を無効にすればよいわけです。

ということで、Oracle VM Serverから、


brctl setageing [仮想スイッチ名] 0

を実行します。すると、学習した結果を保持する期間が0になり、実質的にMACアドレスの学習機能が働かなくなります。
すなわち、スイッチがスイッチたるところの機能が実質的に無効になり、リピータHUBのように振る舞う形になります。

なお、brctl showstp [仮想スイッチ名] を実行すれば、ageing time (= 学習した結果を保持する期間) が0になっていることが確認できます。


[root@csov32s2 AVDF_lc121f]# brctl showstp 1011982358
1011982358
bridge id 8000.000000000000
designated root 8000.000000000000
root port 0 path cost 0
max age 19.99 bridge max age 19.99
hello time 1.99 bridge hello time 1.99
forward delay 0.00 bridge forward delay 0.00
ageing time 0.00 <==== hello timer 0.94 tcn timer 0.00 topology change timer 0.00 gc timer 0.94 flags

参考

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ