chiroru’s 成長 blog

コンピュータネットワークについて勉強したことを残していきたいと思っています。

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に送ることでこれを実現します。

f:id:chirorin-forever:20210805101124p:plain

 

まずは構築。

 

スイッチは優秀なのでAはfa0/1にBはfa0/2にそれぞれケーブルでつなぐだけで、A-B間のping通信が実現できます。ただし、A, B側それぞれに同じネットワーク内のIPアドレスを設定することが前提になります。コピーしたパケットをfa0/3にも送りたいので当然Cも同じネットワーク内のIPアドレスを設定する必要があります。ここではネットワークアドレスを192.168.2.0/24とします。

また、IPアドレス等の設定は割愛します。

f:id:chirorin-forever:20210808182441p:plain



 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との通信なのでチェックを入れます。

f:id:chirorin-forever:20210808184708p:plain

 

実行しよう!

これですべての準備が整いました。

早速AからBにpingを送ってみましょう。

f:id:chirorin-forever:20210808185812p:plain

上手くいきました。

異なるネットワーク間でping(windows10 - ubuntu20.04)

本記事では、ubuntuからwindowsへのping方法を記載しています。

ubuntuwindowsは別ネットワークになります。

f:id:chirorin-forever:20210708092512j:plain

過去記事でノートパソコン同士を直接接続した話をしました。

2台のノートパソコンを直接接続してpingしてみた - chiroru’s 成長 blog

今回は直接接続ではなく間にルータを挟み、異なるネットワーク間でのpingを実行したいと思います。

 

 

本記事は割愛しまくりなので注意。

躓いたところのみ説明しています。

 

 

以下3台の実機で行いました。

ciscoルータ 1812-J

・ノートパソコンwindows10

・ノートパソコンubuntu20.04

 

 

ciscoルータの設定

 ログインの設定とFastEthernet0, FastEthernet1にIPアドレスを振りました。

②ルータを介すように3台をクロスケーブルで接続

③各ノートパソコンのケーブルにIPアドレスを設定

 

 

f:id:chirorin-forever:20210708100841p:plain

 

 

このままではまだpingは通りません!!

厳密にはubuntuからのpingだけが通りません。

 

 

ubuntuデスクトップ右上の有線接続のマークが「?」マークになっているが無視

f:id:chirorin-forever:20210708093352p:plain

 何で「?」になっているんだろうととても不思議で考え込んでしまいました。結局、原因は分からずで、このままでもwindows側の設定を行えばping疎通とれました。

 

 

⑤windows10でファイアウォールの設定

 [コントロールパネル]-[Windows Defender ファイアウォール]-[詳細設定]-[受信の規則]-[ファイルとプリンターの共有(エコー要求 - ICMPv4 受信)]をダブルクリック。

f:id:chirorin-forever:20210708095212p:plain

 

全般を有効にし、スコープタブへ移動します。

f:id:chirorin-forever:20210708095222p:plain

 

リモートIPアドレスの「これらのIPアドレス」を選択し、[追加]をクリック。

f:id:chirorin-forever:20210708095231p:plain

 

ここにubuntu側のネットワークアドレスを記載し[OK]クリック。

f:id:chirorin-forever:20210708095725p:plain

 

 

 

⑥各ノートパソコンで他のネットワークが稼働中なら無効にする

 例えば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接続します。

 

        f:id:chirorin-forever:20210706033233p:plain

 

すんなりできると思ったら見事に躓きました。いったん仕事へ。。

帰宅後、冷静になり再チャレンジしたら成功しましたので備忘録です。

 

f:id:chirorin-forever:20210706034658p:plain

 

結論

結論から申し上げますと、失敗した原因はubuntu側のサブネットとルータ側のサブネットが異なっておりtelnet接続できませんでした。そのサブネット変更に際しても、ubuntu20ではipアドレスを変更した後、即座に反映がなされなかったので再起動しました(反映されてないことに気づくのにも時間がかかりました。何のための確認コマンドやねん。。。)

 

これらのヒントがあれば後は一人でちょちょいのちょいの方もおられると思いますが、せっかくなので失敗の経過含め以下に残します。ただし、ユーザ名やパスワード等の設定は割愛しています。

 

ubuntu20をインストールしたノートパソコンをciscoルータ(1812-J)のFE0にクロスケーブルで接続。

 

windows10ノートパソコンから同ルータにコンソール接続し、ルータ側IPアドレスを設定。

 

FE0 → 192.168.2.1 255.255.255.0

 

ubuntu標準の端末を起動し、いざtelnet!!

f:id:chirorin-forever:20210706030737p:plain

                   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でした)。

f:id:chirorin-forever:20210706031701p:plain

良し!これでオッケー!!今度こそできるはず!!俺はtelnetを信じてる!!

 

 

結果は。。。。。できませんでした!

 

 

なんで!なんで!と眺めているとIPアドレスが反映されていないらしいことに気が付きました。なぜかは分かりません。

f:id:chirorin-forever:20210706032039p:plain

↑ 192.168.4.100が反映されていない。

色々試していたので変更前のアドレスが192.168.1.100ではなく192.168.3.100となっています

 

再起動したら反映されました。

f:id:chirorin-forever:20210706032356p:plain

良し!泣きのもう一回!!

 

f:id:chirorin-forever:20210706032927p:plain

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)

RPを2つ用意して冗長化し、2つのRP間でコンフィグやコントロールプレーン情報を同期する。

windows10とubuntu20.04とでファイル共有してみた(samba)

f:id:chirorin-forever:20210623160035j:plain

前回はwindows10とubuntu18.04の2台をクロスケーブルで直接つなぎ、pingによる疎通を確認しました。

今回はさらに、この続きからファイルを共有してみたいと思います。

 

 

しかし、このまま何も設定しないでいるとファイル共有ができません。

ubuntuwindowsでは扱えるファイルフォーマット形式が異なるためです。

 

 

そのため2台間の接続方式がルーター経由だろうがインターネット経由だろうが、あるいは直接接続だろうが、ファイルフォーマットを仲介してくれる機能がなければファイル共有することはできません(今回は直接接続を扱います)。

後述しますがそれを行ってくれるのがsambaというフリーソフトになります。

 

 

大学時代、研究室のファイル共有は大学院の先輩が構築してくれていたので気にしたことがなかったのですが、裏ではsambaが動いていたのかもしれません(何も知らずに生きていたなあ)。

しかし、無知であるだけに自分自身の勉強になりました!

 

 

目次

 

 

前提

・インターネット環境があること(ソフトウェアアップデートやsambaのインストールに必要)

・以下リンク手順を踏んでいること

 

 

目的

ubuntuに作成したフォルダにwindowsからアクセス&閲覧できればOK!

 

 

参考サイト

https://beightlyouch.com/blog/programming/ubuntu-fileserver-nas/#toc5

ここをほぼ全て真似しました!(「6.Windowsからの確認」まで)

自分の環境に置き換えて設定していけばできるはずです!

 

 

sambaのインストール

sambaとは、ファイル共有機能を提供するフリーソフトです。主にlinux環境で導入され、windowsを含む他端末とのファイル共有に使用されます。windows端末同士ならsambaは必要ありませんが、linuxwindowsのファイル共有においては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

 

参考サイトと比較し異なる箇所だけここでは紹介します。

f:id:chirorin-forever:20210621115138p:plain

赤枠が有線の設定、青枠が無線の設定です。

今回の目的は有線接続での共有なので青枠の部分は無くても大丈夫です。

 

それぞれIPアドレスに続けてNICの名前を記載していますが、これらの名称を確認するにはubuntu側で次のコマンドを実行します。

 

ip a show

 

NICの名前の部分ですが、環境によってはeth0やwlan0など異なっている場合があります。NIC命名規則が変わっているだけですので自分の環境の通りコードを記載してください。

 

なお、ここで設定したネットワークアドレスにubuntuwindowsも所属している必要があります。例えば192.168.1.0/24を設定したならubuntuは192.168.1.100、windowsは192.168.1.101といった具合です。

 

pathには共有ディレクトリへの絶対パスを入力します。mkdirで作成したディレクトリを指定します。

f:id:chirorin-forever:20210621120312p:plain

 

設定が完了したらsambaの機能を再起動します。

 

sudo systemctl restart smbd nmbd

 

このコマンドは/etc/samba/smb.confを変更する度に実行する必要があります。 

 

windows側ネットワークの設定

[スタートボタン]-[コントロールパネル]-[ネットワークと共有センター]-[共有の詳細設定の変更]へ移動します。

f:id:chirorin-forever:20210621122746p:plain

 

[プライベート]セクションにて

 [ネットワーク探索を有効にする]にチェックを入れる

 [ファイルとプリンターの共有を有効にする]にチェックを入れる

f:id:chirorin-forever:20210621122823p:plain

 

[ゲストまたはパブリック]セクションにて

 [ネットワーク探索を有効にする]にチェックを入れる

 [ファイルとプリンターの共有を有効にする]にチェックを入れる

f:id:chirorin-forever:20210621122837p:plain

 

[すべてのネットワーク]セクションにて

 [共有を有効にして、ネットワーク アクセスがある場合はパブリック フォルダー内のファイルを読み書きできるようにする]にチェックを入れる

f:id:chirorin-forever:20210621122846p:plain

最後に[変更の保存]をクリックします。

 

 

windowsからアクセス

これで準備は完了です。

早速windowsからsambaフォルダへアクセスしてみましょう!!

 

windowsエクスプローラを開きます。(Internet Explorerではありませんよ)

上のバーにカーソルを合わせIPアドレスを入力します。

頭に\\(バックスラッシュ2つ)をつけるようにしてください。

f:id:chirorin-forever:20210621125954p:plain

 

エンターキーを押します。

最初のアクセスだけpdbeditコマンドで設定したユーザー名とパスワードを聞かれるかと思いますので入力してください。すると、smb.confで設定したshareフォルダが表示されます。

f:id:chirorin-forever:20210621130005p:plain

 

ubuntuではsambaディレクトリを作成しましたが、smb.confの設定からshareというフォルダ名として共有され、それを開くとsambaフォルダの中身を表示する仕組みになっているようです。ややこしいですね。

hostsファイルが存在しており中身を見ることができれば成功です!!

f:id:chirorin-forever:20210621130016p:plain

 

 

最後に

今回はIPアドレスは有線のものを指定しましたが、wifiIPアドレスも試してみてください!

次はciscoルータかスイッチを介した通信を行ってみたいな。

 

2台のノートパソコンを直接接続してpingしてみた

 初投稿になります。ちろるです、よろしくお願いします。

f:id:chirorin-forever:20210623160332j:plain

 

CCNAを勉強していた時から次のことをいつも疑問に思っていました。

「スイッチやハブ、ルーターを介すことが前提のネットワークの説明ばかりだけど一番単純なネットワーク、つまりホスト同士を直接つないだだけのネットワーク通信も可能なの?」

 

というわけで

 

2台のノートパソコンをケーブルでつないでpingする手順をまとめました。

それぞれOSにはwindows10とubuntu 20.04 LTSを使用しました。

  

目次

 

前提と想定:自宅にインターネット環境があること

できれば自宅にインターネット環境があると良いです。

(挿入したケーブルにDHCPで自動的にアドレスが割り当てられる)

無くても手動でipアドレスを設定すればできます。

 

また、下図のようにIPアドレスを割り当てpingが通るようにするのが今回の目的です。 

f:id:chirorin-forever:20210620160618p:plain

 

①2台のノートパソコンをどちらも起動しケーブルでつなぐ

2台を起動しケーブルで相互に接続します。

f:id:chirorin-forever:20210620134059j:plain

①厳密にはクロスケーブルというケーブル(0.50m)を使用。

 ほんとにただつないだだけですね........。

 

②win10側のIPアドレス確認

コマンドプロンプトを開き「ipconfig」コマンドを実行。

僕の環境では自動的に割り当てられており、192.168.1.254でした。

 

ubuntu側のipアドレスを確認。

端末(terminal)を開き「ip a」コマンドを実行。 

インターネットにwifiで接続していましたが、なぜかケーブルにipアドレスが割り振られていませんでした。なので手動で設定しました。

win10側と同じネットワーク内に所属するよう192.168.1.*となるよう設定します。

今回は192.168.1.3(なんで3?)。

ちなみに別のネットワーク同士を接続するにはルータを挟まなければ通信できません。

 

pingを実行してみる

 windows10からubuntuping実行

 コマンドプロンプトを起動しping 192.168.1.3を実行するとうまくいきました。

f:id:chirorin-forever:20210620161204p:plain

 

 ubuntuからwindows10へping実行

 次にubuntuで端末を起動しping 192.168.1.254を実行すると。。。

f:id:chirorin-forever:20210620164806p:plain

pingコマンド実行するも反応がないので仕方なくCtrl+Cで強制終了。

 どういうわけかできませんでした。

 

⑤なんで失敗した?

実はwindowsではファイアウォールが正常に機能しているとpingが受信できないようになっています。

 

④でwindows10からubuntuping実行が成功したのはファイアウォールの機能で、詳細は割愛しますが要は自分がpingを送信してその跳ね返ってくる通信に関しては受信を許すという機能です。

このようにパケットを動的に見極め通信可否を判断するファイアウォールの機能をステートフルインスペクションといいます。

 

ただし、別端末が送信したpingに関しては受信を許さないので、ubuntu発のpingは成功しなかったということになります。

 

ファイアウォールの設定をいじる

windowsで次の設定を行います。 

[スタートボタン]-[コントロールパネル]-[Windows Defender ファイアウォール]-[詳細設定]-[受信の規則]にて[ファイルとプリンターの共有(エコー要求 - ICMPv4 受信)]をダブルクリックします。

この時点で赤囲み線で示した箇所がどちらにもチェックが入っている必要があります。

f:id:chirorin-forever:20210620133503p:plain

この状態で適用をクリック。

 

ubuntuからのping再度実行

ping 192.168.1.254

すると、うまくできました!

 

最後に

せっかく接続できたので、次は2台でファイルの共有を試します。

なんだかクロスケーブルにも愛着が湧いてきました。