FITELnet Fシリーズのコンテナ機能を利用して、遠隔拠点からパケットキャプチャを行う方法をご説明します。
お客様のネットワークに問題が発生した場合に、遠隔拠点からパケットの解析を行い、トラブルシュートを行うことが可能です。

本ページの設定例は、F70/F71/F220/F221/F225/F310/F220 EX/F221 EXに対応しています。

前提条件・注意点

前提条件

・ルータ:FITELnet F70/F71/F220/F221/F225/F310/F220 EX/F221 EX のいずれか

・ファームウェアバージョン:

 F70/F71 V01.09(00)以降、F220/F221 V01.11(00)以降

 F225とF310は初版よりお使いいただけます。

・コンテナからインターネットにアクセスできること

・ワイヤシャークを実行するリモート環境から、コンテナにSSHでアクセスできること(ネットワーク環境をチェックして、SSHパケットがFITELnetに到達するまでの間フィルタ等により破棄されないようにしてください)

注意点

・パケットキャプチャ対象拠点のFITELnet(コンテナ)にSSH接続できるように、コンテナをセットアップしてください。

・回線帯域を圧迫しないようにご注意ください。パケットキャプチャの実行方法次第では、パケットキャプチャ対象ポートのトラフィックレート相当が、WAN回線のレートに上積みされます。トラフィックレートの高いポートでは、フィルタリング等により、キャプチャ対象のパケットを限定する等の対応をご検討ください。

・パケットキャプチャ可能なポートは、LANポート(Giga 1/*)のみとなります。LANポート以外(WANポート(Giga 2/1, Giga 3/1)等)のパケットキャプチャはできません。

・リモートパケットキャプチャは調査等の目的で、一時的にご使用いただくことを想定しております。常時のご使用はお控えください。リモートパケットキャプチャの処理はルータのCPU負荷には影響いたしませんので、運用への影響はございません。

・お客様自身で動作確認の上、ご使用ください。

準備

1. コンテナのセットアップ

 FITELnetのCLIにて、コンテナのインタフェース設定を行ってください。
 以下に設定例を示します。

設定例
container enable
!
container configuration
 hostname F221-Container
 !
 interface 1
  bridge-group 1 ★ルータOS側のLANインタフェースのブリッジグループ番号
  ip address 192.168.0.100 255.255.255.0 ★コンテナのIPアドレス
  ip gateway 192.168.0.1 ★ルータOS側のLANインタフェースのIPアドレス
 exit
 !
exit
!
interface GigaEthernet 1/1
 vlan-id 1
 bridge-group 1
 channel-group 1
 container-use ★ルータOS側のLANインタフェースにcontainer-useを設定
exit
!
interface Port-channel 1
 ip address 192.168.0.1 255.255.255.0
 link-state always-up ★コンテナに常にアクセスできるようにリンクを上げてお
exit

詳細は下記資料の「コンテナ環境のネットワーク設定」の章をご参照ください。

2. Remote Wiresharkを行うユーザの登録

コンテナにアクセスするためのユーザ設定を以下の要領で行ってください。

1) FITELnetのCLIにて container attach を行い、コンテナ環境に移行

2) useradd -m <ユーザ名> を実行して、ユーザを追加(★本使用例では「furukawa」とします)

3) passwd <ユーザ名> を実行して、2)で追加したユーザのパスワードを設定

F221-Router#container attach
~ #
~ # useradd -m furukawa
~ # passwd furukawa
New password:
Retype new password:
passwd: password updated successfully
~ #

4) コンテナ環境にて apk add sudo を実行して、sudo をインストール

5) コンテナ環境にて 「sed '/^root/a <ユーザ名> ALL=(ALL:ALL) ALL' /etc/sudoers | EDITOR=tee visudo > /dev/null」を実行(<ユーザ名>にsudo権限を付与)

6) コンテナ環境にて「cat /etc/sudoers | grep -A 1 ^root」を実行して、<ユーザ名>にsudo権限付与されたことを確認

~ # sed '/^root/a furukawa ALL=(ALL:ALL) ALL' /etc/sudoers | EDITOR=tee visudo > /dev/null
~ #
~ # cat /etc/sudoers | grep -A 1 ^root
root ALL=(ALL:ALL) ALL
furukawa ALL=(ALL:ALL) ALL
~ #

3. コンテナにてSSHサーバ起動

ルータのCLIにて、以下を実行してください。

1) container exec rc-service sshd start を実行して、SSHサーバを起動

2) container exec rc-update add sshd を実行して、装置再起動時にSSHサーバが起動する状態とする(service sshd added to runlevel default と表示されればOK)

3) container exec rc-service sshd status を実行して、SSHサーバが起動していることを確認

4. Wireshark実行環境からコンテナにアクセスするためのルータ設定

お客様の環境に合わせて設定してください。

以下は、インターネット回線を使ってFITELnetのグローバルIPアドレスを持つインタフェースを経由して、コンテナにアクセスする場合の設定です。

設定例
container enable
access-list 108 permit tcp < Wireshark実行拠点のグローバルIPアドレス > 0.0.0.0 < コンテナIPアドレス > 0.0.0.0 eq 22
access-list 109 deny ip any any
access-list 110 spi ip any any
!
interface Tunnel 1(*1)
 ip address < FITELnetのグローバルIPアドレス> 255.255.255.255
 ip access-group 108 in ★Wireshark実行拠点のグローバルIPのみアクセス許可
 ip access-group 109 in
 ip access-group 110 out
 ip nat inside source list 1 interface
 ip nat inside destination static < FITELnetのグローバルIPアドレス > 22222 22222 < コンテナIPアドレス > 22
  ★「< FITELnetのグローバルIPアドレス >:22222」宛パケットを「<コンテナIPアドレス >:22」宛にNAT (*2)
 tunnel mode ipinip tunnel-profile IPIP1(*)
exit
!
*1 interface種別やtunnel modeは適宜お使いの回線に合わせて、設定してください。
*2 NAT変換前宛先ポート番号はwell-knownポート以外の任意のポート番号を指定してください(本設定では「22222」とします)。

5. ポートモニタを実行

ルータのCLIにて、以下のようにポートモニタを実行してください。

1) port-monitor monitor container を実行
 ★モニタ用ポート(コピー先)として、containerを指定(コンテナのeth0インタフェースにパケットがコピーされます)

2) port-monitor mirrored gigaethernet 1/3 both を実行
 ★ミラーポート(コピー元)として、LANのパケットキャプチャ対象ポートを指定

3) show port-monitor を実行 ★ポートモニタの状態を確認

#show port-monitor

[Current state]
mirrored port(ingress): 1/3
mirrored port(egress) : 1/3
monitor port: container
#

6. Wiresharkをインストール

インストール方法については、インターネット上の記事をご参照ください。

「Choose Components」の画面が表示されたら、「Sshdump,Ciscodump,and Wifidump」にチェックしてください。

リモートワイヤシャークを実行

Wiresharkの操作方法については、インターネット上の記事をご参照ください。ここでは、リモートパケットキャプチャのために必要な操作を中心にご説明します。

1. Wiresharkのキャプチャオプションを指定

wiresharkのキャプチャ開始時に「SSH remote capture」のアイコンをダブルクリックしてください。

1-1. 「Server」タブをクリックして、SSH接続先のIPアドレスとポート番号を指定

wiresharkのキャプチャ開始時に「SSH remote capture」のアイコンをダブルクリックしてください。

準備 4の設定を利用してインターネット回線経由でコンテナにSSH接続する場合は、「FITELnetのグローバルIPアドレス」と「22222」を指定します。

1-2.「Authentication」タブをクリックして、SSH接続先にログインするためのユーザ名とパスワードを指定

wiresharkのキャプチャ開始時に「SSH remote capture」のアイコンをダブルクリックしてください。

準備 2で設定した<ユーザ名>とパスワードを指定します。

1-3.「Capture」タブをクリックして、以下の内容を実施

Remote capture command selection:「Other」を選択してください。

Remote capture command:SSH接続先で実行するコマンドを指定してください(*)。

* コマンドの例
 特定のhostが送受信するパケットのみをキャプチャする場合:
  echo "パスワード" | sudo -S tcpdump -i eth0 -Unw - "host A.B.C.D"
 
 特定のネットワークが送信元もしくは宛先となっているパケットのみをキャプチャする場合
  echo "パスワード" | sudo -S tcpdump -i eth0 -Unw - "net A.B.C.D/M"
 
 特定のネットワークが送信元もしくは宛先、かつ特定のプロトコルのパケットのみをキャプチャする場合
  echo "パスワード" | sudo -S tcpdump -i eth0 -Unw - "net A.B.C.D/M and プロトコル名"
 
 複数のネットワークセグメントについて、当該ネットワークが送信元もしくは宛先となっているパケットのみをキャプチャする場合
  echo "パスワード" | sudo -S tcpdump -i eth0 -Unw - "net A.B.C.D/M or net E.F.G.H/M"

1-4.「保存」をクリック

2. パケットキャプチャを開始

「開始」をクリックして、パケットキャプチャを開始します。

3. パケットキャプチャを停止

目的のパケットキャプチャ情報を取得できたら、アイコンの停止ボタンををクリックして、パケットキャプチャを停止します。

適宜パケットキャプチャデータを保存してください。保存方法については、インターネット上の記事をご参照ください。

再度パケットキャプチャを行う際には、アイコンの開始ボタンをクリックしてください。

4. ポートモニタを終了

ルータのCLIにて、以下のようにポートモニタを終了してください。

1) no port-monitor monitor container を実行 ★モニタ用ポート(コピー先)の指定を解除

2) no port-monitor mirrored gigaethernet 1/3 both を実行 ★ミラーポート(コピー元)の指定を解除

3) show port-monitor を実行 ★ポートモニタの状態を確認

#show port-monitor

[Current state]
mirrored port(ingress):
mirrored port(egress) :
monitor port:
#