L2スイッチにローカルSPANを設定してみた
Wireshark(というネットワークアナライザ)ではパケットを覗き見ることが出来ますが、その覗き対象はWiresharkを起動している端末自身で送受信されるパケットになります。
今回は離れた端末でやり取りされるパケットをWiresharkで確認したいと思います。
スイッチのSPANという機能を使います。SPANにはローカルSPAN、RSPAN、RESPANがありますが今回は中でもローカルSPANを扱います。
概要
ノートパソコンを3台(A,B,Cとする)用意しスイッチにつなぎます。
A-B間でping通信を行い、そのパケットをCにインストールされたWiresharkで確認できれば実験成功とします。
ローカルSPANの機能によりfa0/1にて送受信されるパケットをコピーしてfa0/3に送ることでこれを実現します。
まずは構築。
スイッチは優秀なのでAはfa0/1にBはfa0/2にそれぞれケーブルでつなぐだけで、A-B間のping通信が実現できます。ただし、A, B側それぞれに同じネットワーク内のIPアドレスを設定することが前提になります。コピーしたパケットをfa0/3にも送りたいので当然Cも同じネットワーク内のIPアドレスを設定する必要があります。ここではネットワークアドレスを192.168.2.0/24とします。
また、IPアドレス等の設定は割愛します。
AからBへのPing
AはWindows10を使用しています。そしてBがUbuntuなのでWindows側のファイアウォールの設定によってはUbuntuからのpingが失敗するかと思います。設定を変えてもよいのですが面倒なのでUbuntu発のpingは今回行わずWindows発のpingのみをWiresharkで確認します。
Windowsでコマンドプロンプトを立ち上げpingを実行します。
ping 192.168.2.2
成功しました。
ここからスイッチにコマンドを投入します。
つまり、コピーされたパケットがCに入ってくるようにスイッチにSPANの設定をします。
具体的にはどのインターフェースを通るパケットをコピーするのか、そしてそのコピーをどのインターフェースへ送るのかを指定します。今回はスイッチのfa0/1を通過するパケットをコピー対象とし、fa0/3を送信先とします。
下記コマンドのように、コピー対象をsource、宛先をdestinationで指定します。
SW1(config)#monitor session 1 source interface FastEthernet 0/1
SW1(config)#monitor session 1 destination interface FastEthernet 0/3
これでスイッチの設定は完了です。
次にCにてWiresharkを立ち上げます。
先に立ち上げておき、A-B間の通信が発生次第リアルタイムでパケットが表示されるようにします。
Wiresharkを起動したら[キャプチャ]-[オプション]よりイーサネットを選択します。ここでプロミスキャスという箇所にチェックを入れるようにしましょう。チェックを入れないと自身の端末(ここではC)と直接接続されたパケットしか表示しないようになってしまいます。今回見たいのはCからスイッチを介したAとBとの通信なのでチェックを入れます。
実行しよう!
これですべての準備が整いました。
早速AからBにpingを送ってみましょう。
上手くいきました。
異なるネットワーク間でping(windows10 - ubuntu20.04)
本記事では、ubuntuからwindowsへのping方法を記載しています。
過去記事でノートパソコン同士を直接接続した話をしました。
2台のノートパソコンを直接接続してpingしてみた - chiroru’s 成長 blog
今回は直接接続ではなく間にルータを挟み、異なるネットワーク間でのpingを実行したいと思います。
本記事は割愛しまくりなので注意。
躓いたところのみ説明しています。
以下3台の実機で行いました。
・ciscoルータ 1812-J
・ノートパソコンwindows10
・ノートパソコンubuntu20.04
①ciscoルータの設定
ログインの設定とFastEthernet0, FastEthernet1にIPアドレスを振りました。
②ルータを介すように3台をクロスケーブルで接続
③各ノートパソコンのケーブルにIPアドレスを設定
このままではまだpingは通りません!!
④ubuntuデスクトップ右上の有線接続のマークが「?」マークになっているが無視
何で「?」になっているんだろうととても不思議で考え込んでしまいました。結局、原因は分からずで、このままでもwindows側の設定を行えばping疎通とれました。
⑤windows10でファイアウォールの設定
[コントロールパネル]-[Windows Defender ファイアウォール]-[詳細設定]-[受信の規則]-[ファイルとプリンターの共有(エコー要求 - ICMPv4 受信)]をダブルクリック。
全般を有効にし、スコープタブへ移動します。
リモートIPアドレスの「これらのIPアドレス」を選択し、[追加]をクリック。※
ここにubuntu側のネットワークアドレスを記載し[OK]クリック。
⑥各ノートパソコンで他のネットワークが稼働中なら無効にする
例えばwifiがつながっていたら接続を切断します。ubuntu側でも同様です。
これで設定は完了です。
⑦pingを試す
windowsのコマンドプロンプトで「ping 192.168.3.1」を実行する。
ubuntuの端末で「ping 192.168.2.1」を実行する。
上手くいきました!!
※「任意のIPアドレス」を選択してもよいです。あるいはファイアウォールを無効にしてもできます。ただし、ネット攻撃ではpingから始めるものもあると聞きますので作業は自己責任でお願いします。
ubuntu20.04LTSからciscoルータへtelnet
ubuntu20.04LTSからciscoルータへtelnet接続します。
すんなりできると思ったら見事に躓きました。いったん仕事へ。。
帰宅後、冷静になり再チャレンジしたら成功しましたので備忘録です。
結論
結論から申し上げますと、失敗した原因はubuntu側のサブネットとルータ側のサブネットが異なっておりtelnet接続できませんでした。そのサブネット変更に際しても、ubuntu20ではipアドレスを変更した後、即座に反映がなされなかったので再起動しました(反映されてないことに気づくのにも時間がかかりました。何のための確認コマンドやねん。。。)
これらのヒントがあれば後は一人でちょちょいのちょいの方もおられると思いますが、せっかくなので失敗の経過含め以下に残します。ただし、ユーザ名やパスワード等の設定は割愛しています。
ubuntu20をインストールしたノートパソコンをciscoルータ(1812-J)のFE0にクロスケーブルで接続。
windows10ノートパソコンから同ルータにコンソール接続し、ルータ側IPアドレスを設定。
FE0 → 192.168.2.1 255.255.255.0
telnet: unable to connect to remote host: Network is unreachable
なぜつながらなかったのか分からず調べてもlinuxでのコンソール接続方法ばかり出てきてしまい。手打ちでtelnetコマンドを利用するのも初めてだったせいかもうtelnetそのものが何かおかしいのではないかとすら疑いました笑。結局、この日は諦め後日リベンジすることに。無駄にunreachableについて調べてしまいました笑
日を跨いで冷静になると原因の仮説を組むことが出来て良いですね。結果として、とても初歩的なミスであることに気が付きました。
ubuntu側の有線のipアドレスが192.168.1.100となっており、サブネットが異なるので同じネットワークとして判断されていなかったのです。
早速192.168.4.100に変更します(この日ルータ側は192.168.4.1でした)。
良し!これでオッケー!!今度こそできるはず!!俺はtelnetを信じてる!!
結果は。。。。。できませんでした!
なんで!なんで!と眺めているとIPアドレスが反映されていないらしいことに気が付きました。なぜかは分かりません。
再起動したら反映されました。
良し!泣きのもう一回!!
telnet接続できました!!
CCNPで学んだ単語(随時更新してます)
CCNP ENCORを学んでいく中で調べた単語を羅列していこうと思います。
なお、細かな説明は省いているのであしからず。
間違えた記述を発見されましたらどしどしクレームください!!
クレームでなくても雑談でもなんでも大歓迎です!(そもそも見てる人少ないのでそんな人いないと思いますが)
更新履歴
21/06/27 本記事作成
目次
スイッチオーバー
手動で切り替えること。自動切換えはフェイルオーバーという。
どちらも冗長化された待機系(あらかじめ用意されたもの)に切り替えたりする。
(例文)RPR → RPR+ → SSO と発展するにつれスイッチオーバー時間が短縮された。SSO: ステートフルスイッチオーバー、ちなみに3秒以内にスイッチオーバーできる。
スーパーバイザエンジン (SUP:サップともいう)
スイッチの中央処理を担当し、シャーシ型スイッチのシャーシに差し込むマザーボードのようなもの(抽象的ですみません。まだよく理解できてません。ルートプロセッサ(RP)と同じ?ご存じの方コメントでご教示ください)。種類がいくつもあり、入れ替え可能。
(例文)シャーシ内でスーパーバイザエンジンを(2つ用意することで)冗長化し、ネットワークの可用性を高める技術をNSF(ノンストップフォワーディング)という。
参考
冗長構成でのIOSアップデート - Catalyst - ネットワーク入門サイト
Ciscoのスーパーバイザエンジンってどんな機能がありますか? - ネットワー... - Yahoo!知恵袋
ルートプロセッサ(RPs : root processors)
ネットワークトポロジを学習しルーティングテーブル(RIB)を構築する機能を持つハードウェア。
SSO(Stateful Swicthover)
windows10とubuntu20.04とでファイル共有してみた(samba)
前回はwindows10とubuntu18.04の2台をクロスケーブルで直接つなぎ、pingによる疎通を確認しました。
今回はさらに、この続きからファイルを共有してみたいと思います。
しかし、このまま何も設定しないでいるとファイル共有ができません。
ubuntuとwindowsでは扱えるファイルフォーマット形式が異なるためです。
そのため2台間の接続方式がルーター経由だろうがインターネット経由だろうが、あるいは直接接続だろうが、ファイルフォーマットを仲介してくれる機能がなければファイル共有することはできません(今回は直接接続を扱います)。
後述しますがそれを行ってくれるのがsambaというフリーソフトになります。
大学時代、研究室のファイル共有は大学院の先輩が構築してくれていたので気にしたことがなかったのですが、裏ではsambaが動いていたのかもしれません(何も知らずに生きていたなあ)。
しかし、無知であるだけに自分自身の勉強になりました!
目次
- 前提
- 目的
- 参考サイト
- sambaのインストール
- sambaへユーザーを登録
- 共有フォルダの作成
- 共有フォルダへのアクセス権限変更
- sambaの設定
- windows側ネットワークの設定
- windowsからアクセス
- 最後に
前提
・インターネット環境があること(ソフトウェアアップデートやsambaのインストールに必要)
・以下リンク手順を踏んでいること
目的
ubuntuに作成したフォルダにwindowsからアクセス&閲覧できればOK!
参考サイト
https://beightlyouch.com/blog/programming/ubuntu-fileserver-nas/#toc5
ここをほぼ全て真似しました!(「6.Windowsからの確認」まで)
自分の環境に置き換えて設定していけばできるはずです!
sambaのインストール
sambaとは、ファイル共有機能を提供するフリーソフトです。主にlinux環境で導入され、windowsを含む他端末とのファイル共有に使用されます。windows端末同士ならsambaは必要ありませんが、linuxとwindowsのファイル共有においてはsambaのような仲介役が必要となります。
それではsambaをインストールしましょう。
前回の続きから作業している方はインターネット環境に切り替えてください。
sudo apt-get update
sudo apt-get upgrade
念のためここで再起動するのが無難のようです。
reboot
sudo apt-get install -y samba
インストールが完了したら次に進みましょう。
sambaへユーザーを登録
以下コマンドを実行すると、パスワードをユーザー名に紐づけて登録するよう求められますので新たにパスワードを設定します。僕はubuntuのアカウントのユーザー名とそのパスワードをそのまま使用しました。
sudo pdbedit -a [ユーザー名]
ここで登録したユーザー名とパスワードがwindowsからのアクセス時に聞かれますので忘れないようにしてください。
共有フォルダの作成
ubuntuの/homeディレクトリにファイル共有用のフォルダとして/home/sambaディレクトリを作成します。これがwindowsでいうところのフォルダになります。名前は何でもokです。(フォルダとかディレクトリとかごちゃ混ぜですみません。どちらでとらえてもらっても問題ありません。。)
sudo mkdir /home/samba
サイトによっては作成したディレクトリを右クリックしプロパティから共有に関する設定を行っていたのですが、今回のやり方では必要ありませんでした。
共有フォルダへのアクセス権限変更
その代わりなのか何なのか、chmodコマンドでディレクトリの権限を変更します。
sudo chmod 777 /home/samba
sambaの設定
sambaの設定がデフォルトのままになっているので変更していきます。
/etc/samba/smb.confをいじります。
編集するためのエディタはnanoやviがありますが、僕はviを使用しています。
使い方は別途調べてみてください。
sudo vi /etc/samba/smb.conf
参考サイトと比較し異なる箇所だけここでは紹介します。
赤枠が有線の設定、青枠が無線の設定です。
今回の目的は有線接続での共有なので青枠の部分は無くても大丈夫です。
それぞれIPアドレスに続けてNICの名前を記載していますが、これらの名称を確認するにはubuntu側で次のコマンドを実行します。
ip a show
NICの名前の部分ですが、環境によってはeth0やwlan0など異なっている場合があります。NICの命名規則が変わっているだけですので自分の環境の通りコードを記載してください。
なお、ここで設定したネットワークアドレスにubuntuとwindowsも所属している必要があります。例えば192.168.1.0/24を設定したならubuntuは192.168.1.100、windowsは192.168.1.101といった具合です。
pathには共有ディレクトリへの絶対パスを入力します。mkdirで作成したディレクトリを指定します。
設定が完了したらsambaの機能を再起動します。
sudo systemctl restart smbd nmbd
このコマンドは/etc/samba/smb.confを変更する度に実行する必要があります。
windows側ネットワークの設定
[スタートボタン]-[コントロールパネル]-[ネットワークと共有センター]-[共有の詳細設定の変更]へ移動します。
[プライベート]セクションにて
[ネットワーク探索を有効にする]にチェックを入れる
[ファイルとプリンターの共有を有効にする]にチェックを入れる
[ゲストまたはパブリック]セクションにて
[ネットワーク探索を有効にする]にチェックを入れる
[ファイルとプリンターの共有を有効にする]にチェックを入れる
[すべてのネットワーク]セクションにて
[共有を有効にして、ネットワーク アクセスがある場合はパブリック フォルダー内のファイルを読み書きできるようにする]にチェックを入れる
最後に[変更の保存]をクリックします。
windowsからアクセス
これで準備は完了です。
早速windowsからsambaフォルダへアクセスしてみましょう!!
windowsでエクスプローラを開きます。(Internet Explorerではありませんよ)
上のバーにカーソルを合わせIPアドレスを入力します。
頭に\\(バックスラッシュ2つ)をつけるようにしてください。
エンターキーを押します。
最初のアクセスだけpdbeditコマンドで設定したユーザー名とパスワードを聞かれるかと思いますので入力してください。すると、smb.confで設定したshareフォルダが表示されます。
ubuntuではsambaディレクトリを作成しましたが、smb.confの設定からshareというフォルダ名として共有され、それを開くとsambaフォルダの中身を表示する仕組みになっているようです。ややこしいですね。
hostsファイルが存在しており中身を見ることができれば成功です!!
最後に
今回はIPアドレスは有線のものを指定しましたが、wifiのIPアドレスも試してみてください!
次はciscoルータかスイッチを介した通信を行ってみたいな。
2台のノートパソコンを直接接続してpingしてみた
初投稿になります。ちろるです、よろしくお願いします。
CCNAを勉強していた時から次のことをいつも疑問に思っていました。
「スイッチやハブ、ルーターを介すことが前提のネットワークの説明ばかりだけど一番単純なネットワーク、つまりホスト同士を直接つないだだけのネットワーク通信も可能なの?」
というわけで
2台のノートパソコンをケーブルでつないでpingする手順をまとめました。
それぞれOSにはwindows10とubuntu 20.04 LTSを使用しました。
目次
- 前提と想定:自宅にインターネット環境があること
- ①2台のノートパソコンをどちらも起動しケーブルでつなぐ
- ②win10側のIPアドレス確認
- ③ubuntu側のipアドレスを確認。
- ④pingを実行してみる
- ⑤なんで失敗した?
- ⑥ファイアウォールの設定をいじる
- ⑦ubuntuからのping再度実行
- 最後に
前提と想定:自宅にインターネット環境があること
できれば自宅にインターネット環境があると良いです。
(挿入したケーブルにDHCPで自動的にアドレスが割り当てられる)
無くても手動でipアドレスを設定すればできます。
また、下図のようにIPアドレスを割り当てpingが通るようにするのが今回の目的です。
①2台のノートパソコンをどちらも起動しケーブルでつなぐ
2台を起動しケーブルで相互に接続します。
ほんとにただつないだだけですね........。
②win10側のIPアドレス確認
コマンドプロンプトを開き「ipconfig」コマンドを実行。
僕の環境では自動的に割り当てられており、192.168.1.254でした。
③ubuntu側のipアドレスを確認。
端末(terminal)を開き「ip a」コマンドを実行。
インターネットにwifiで接続していましたが、なぜかケーブルにipアドレスが割り振られていませんでした。なので手動で設定しました。
win10側と同じネットワーク内に所属するよう192.168.1.*となるよう設定します。
今回は192.168.1.3(なんで3?)。
ちなみに別のネットワーク同士を接続するにはルータを挟まなければ通信できません。
④pingを実行してみる
コマンドプロンプトを起動しping 192.168.1.3を実行するとうまくいきました。
次にubuntuで端末を起動しping 192.168.1.254を実行すると。。。
どういうわけかできませんでした。
⑤なんで失敗した?
実はwindowsではファイアウォールが正常に機能しているとpingが受信できないようになっています。
④でwindows10からubuntuへping実行が成功したのはファイアウォールの機能で、詳細は割愛しますが要は自分がpingを送信してその跳ね返ってくる通信に関しては受信を許すという機能です。
このようにパケットを動的に見極め通信可否を判断するファイアウォールの機能をステートフルインスペクションといいます。
ただし、別端末が送信したpingに関しては受信を許さないので、ubuntu発のpingは成功しなかったということになります。
⑥ファイアウォールの設定をいじる
windowsで次の設定を行います。
[スタートボタン]-[コントロールパネル]-[Windows Defender ファイアウォール]-[詳細設定]-[受信の規則]にて[ファイルとプリンターの共有(エコー要求 - ICMPv4 受信)]をダブルクリックします。
この時点で赤囲み線で示した箇所がどちらにもチェックが入っている必要があります。
この状態で適用をクリック。
⑦ubuntuからのping再度実行
ping 192.168.1.254
すると、うまくできました!
最後に
せっかく接続できたので、次は2台でファイルの共有を試します。
なんだかクロスケーブルにも愛着が湧いてきました。