ポートミラーリングによる自動冗長化はできないのかと馬鹿な
事を考えて、実験してみました。
実験環境は下記の通りです。
サーバ×2台(xSeries335)
HUB ×1台(Catalyst2950)
HUBでモニタリングの設定を行います。
SPANセッション1を作成して、宛先ポート2で送信元ポート1の送信トラフィックと受信トラフィックをモニタする方法を示します。
Switch(config)# monitor session 1 source interface fastethernet0/1 rx
Switch(config)# monitor session 1 destination interface fastethernet0/2
これで、ポート1に来る受信パケットはすべてポート2にも
流れるように設定できたはずなので、まったく中身の同じ2台
のサーバをポート1とポート2に接続します。
ポート3につないだPCからポート1にFTP接続を行い、ある程度の
データを送ります。理論的には、ポート2にも同じデータが流れており、FTPデータがアップされているはずですが、残念ながらアップされていませんでした。
簡単に言えば、MACアドレスを見てないという事は、ポート2に届くパケットはサーバ側で破棄されている可能性が高い。
ポート2のサーバをプロミスキャスモードにすることによって、
パケット破棄を防げるのではと考えています。
#ifconfig xxxx promisc
しかし、プロミスキャスモードでもパケットを拒否。下記のような
エラー表示がポート2のサーバに表示される。
Limiting closed port RST response from
290 to 200 packets per second
そこで、MACアドレスもポート1のサーバと同じにすれば、
拒否しないのではと考え、MACアドレスを手動で設定。
Solarisの場合
# ifconfig hme0 ether (MACアドレス)
FreeBSDの場合
# ifconfig fxp0 ether (MACアドレス)
Linuxの場合
# ifconfig eth0 hw ether (MACアドレス)
【予想外な点】
ポート2はIPアドレスやMAACアドレスを認識していない事。単純に信号を流すだけのポートになる。