LoginSignup
27
23

More than 1 year has passed since last update.

ネットワーク機器を買わずにオンプレのハンズオンがしたい - L2スイッチ編

Last updated at Posted at 2021-12-03

この記事はフューチャーAdvent Calender 2021 3日目の記事です。

昨日は@shibukawaさんによる「趣味の勉強、技術ブログ、勉強会、OSS、ネタ選びをどうするか?」でした。

1. はじめに

こんにちは!フューチャー入社3年目の本田です。
業務でクラウドを触れる機会は多いですが、オンプレはクラウドとのVPN等限られた機会でしか触れてきませんでした。

オンプレ学習欲求はありますが、そのためにルーターやスイッチを買うかと言われると...という程度のモチベーションしかなく、AWSのようにアカウントさえ作れば気軽に自身のパソコン1つでハンズオンできるような環境を求めていました。

そこで、今回はCisco社の提供しているPacket Tracerというツールを用いてハンズオンを実施してみたという内容の記事を書きました。L2スイッチを用いて通信の仕組みの確認と可視化を試すことでPacket Tracerの凄さを少しでもお伝えしたいと思います。

2. 環境

  • Cisco Packert Tracer 8.0.1

3. Packert Tracerとは

Cisco製のネットワーク機器のシミュレートが可能なツールです。
CCNA(Cisco Certified Network Associate)に代表されるようにCisco社は多くの認定資格を提供しており、同時にPacket Tracerを活用した学習教材なども提供しています。

自身のパソコン1つのみでネットワーク機器に関する実務に近い経験を積むことができるため、インフラやネットワーク初心者の方にもおすすめできるツールです。

以下の図のようににPCやネットワーク機器をケーブルで接続し、実際にルーターのコンフィグを設定したり、PCからpingを飛ばしたり、パケットキャプチャを行うことが可能です。

スクリーンショット 2021-11-22 23.20.16.png

4. L2スイッチで遊んでみる

本記事では、以下の順に進めていきます。あくまでハンズオンが目的なので細かい説明はご容赦ください。

  1. L2スイッチで機器を接続する
  2. Snifferを利用してパケットをキャプチャする
  3. シミュレーションモードで通信の流れを可視化する
  4. VLANを設定する

利用機器一覧

Packet Tracerを起動すると左下にデバイス一覧が表示されます。今回利用するデバイスの場所を一覧で記しておきます。

Cisco Catalyst 2960 シリーズ スイッチ

Cisco社の提供するL2スイッチです。2019年10月31日でサポートが終了しているようですが、学習に利用する分には問題ないと思います。
L2スイッチ

Laptop

ノートパソコンです。モジュールを換装することで有線だけでなくwifiでルータと接続することもできました。
Laptop

ストレートケーブル

近年クロスケーブルを使う必要性も減ってきていると思われるので本記事ではストレートケーブルで統一します。
ストレートケーブル

Sniffer

ネットワークアナライザやパケットアナライザと呼ばれるものです。特定のポートに送られたパケットのキャプチャやフィルタリングが可能なソフトウェアを搭載したパソコンのようなイメージです。ネットワークのトラブルシューティングやユーザの行動調査などに用いられます。
スクリーンショット 2021-12-02 23.22.18.png

4.1 L2スイッチで機器を接続する

デバイスをドラッグすることで任意のネットワークを構成することができます。
シンプルな構成として以下のようにデバイスを配置し、ケーブリングしてみます。
今回は以下のように接続しました。

  • PC0:FastEthernet0 ⇔ Switch0:FastEthernet0/1
  • Switch0:FastEthernet0/2 ⇔ PC1:FastEthernet0

準備完了後

Switch側の準備が整うとケーブル状に表示されていたオレンジ色の丸が全て緑になります。右図の状態になればOKです。

次にPC側のIPアドレスを設定していきます。
PCをダブルクリックし、デスクトップタブからIP Configurationを選択し、IPアドレスとサブネットマスクを設定します。

端末名 IPアドレス サブネットマスク
PC0 192.168.0.1 255.255.255.0
PC1 192.168.0.2 255.255.255.0

デスクトップタブ設定画面

PC0のコマンドプロンプトを開きPC2にpingを打って疎通確認してみます。
cmdping

以下のように表示されれば成功です。

C:\>ping 192.168.0.2

Pinging 192.168.0.2 with 32 bytes of data:

Reply from 192.168.0.2: bytes=32 time=1ms TTL=128
Reply from 192.168.0.2: bytes=32 time<1ms TTL=128
Reply from 192.168.0.2: bytes=32 time<1ms TTL=128
Reply from 192.168.0.2: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.0.2:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 1ms, Average = 0ms

4.2 Snifferを利用してパケットをキャプチャする

4.1疎通ができたのでもう少し通信の細かくみてみたいと思います。
pingによって学習したARPテーブル等をリセットしたいので一旦ネットワークをリセットします。
reset

SnifferをSwitch0:FastEthernet0/3に接続します。
スクリーンショット 2021-12-03 0.16.52.png

Switchをダブルクリックしてcliを起動し、以下のコマンドを入力します。
FastEthernet0/1(PC0)を送信元とし、FastEthernet0/3(Sniffer)を宛先とすることでパケットが転送されるようになり、パケットの解析が可能となります。こうした機能をポートミラーリングと呼び、CiscoではSPAN(Switched Port Analyzer)と呼ばれているようです。

enable
config terminal
monitor session 1 source interface FastEthernet0/1
monitor session 1 destination interface FastEthernet0/3
end

パケットを見やすくするため、Snifferの設定からEdit Filtersを選択し、ARPとICMPのみ表示されるように設定し、Clearボタンを謳歌します。
スクリーンショット 2021-12-03 0.37.05.png

この状態で、PC0からPC1にpingを実施します。
pingが成功したことを確認後、SnifferをダブルクリックしGUIタブを開くをARP実施後にICMPが4往復していることがわかります。

①Ethernet層のDESTが FFFF.FFFF.FFFF となっているのでブロードキャストしていることがわかります。今回のネットワークでは、PC0からPC1およびSnifferにパケットが送られ、宛先(192.168.0.2)のMACアドレスを要求します。
スクリーンショット 2021-12-03 0.47.16.png

②192.168.0.2と合致したPC1からARP応答が返ります。これにより、PC0はPC1(192.168.0.2)のMACアドレスを知ることができます。
スクリーンショット 2021-12-03 0.50.11.png

コマンドプロンプトを開き、下記コマンドを実行することで学習済みのARPテーブルを確認することができます。

PC0のARPテーブル

C:\>arp -a
  Internet Address      Physical Address      Type
  192.168.0.2           00d0.bcd5.6ec0        dynamic

PC1のARPテーブル

arp -a
  Internet Address      Physical Address      Type
  192.168.0.1           0090.0c77.2938        dynamic

Switchも同様にMACアドレスを学習しており、MACアドレスとポートの組み合わせを記憶しています。ARPテーブルとは異なりIPアドレスは保持していません。これが第2層(データリンク層)と呼ばれる層の役割です。

Switch#show mac address-table
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----

   1    0090.0c77.2938    DYNAMIC     Fa0/1
   1    00d0.bcd5.6ec0    DYNAMIC     Fa0/2

これらのテーブルにより、宛先が明確になりお互いの機器での通信が可能となります。

③PC0がPC1に対してICMPを送る
スクリーンショット 2021-12-03 0.50.47.png
④PC1がPC0に対して応答する
スクリーンショット 2021-12-03 0.50.58.png

このようにPacket Tracerでは、ただ機器を繋げて疎通をするだけでなく実戦に近い形でパケットの取得やトラブルシューティングをしてみるといったことも可能です。

4.3 シミュレーションモードで通信の流れを可視化する

4.2ではSnifferというデバイスを利用してパケットをキャプチャしましたが、Packet Tracerにはシミュレーションモードという便利な機能があり、正直Snifferを利用する必要はあまりないと思います。便利な機能なのでシミュレーションモードも利用してみます。

画面右下にRealtimeとSimulationというボタンが並んで配置されています。今回はSimulationモードに切り替えて4.2と同様にPC0からPC1にpingを実行してみます。
スクリーンショット 2021-12-03 23.35.45.png

C:\>ping 192.168.0.2

Pinging 192.168.0.2 with 32 bytes of data:

pingの応答がなくなりました。疎通できなくなったわけではなく、時が止まっています。
画面右側のEvent Listを見るとPC0からICMPを送ろうとする過程でARP要求が発生していることが確認できます。この状態で再生ボタンを押すことで時間を進めることができます。

スクリーンショット 2021-12-03 23.38.26.png

時間を進めるとEvent Listが追加されると共に、通信の流れを可視化することができます。
ezgif.com-gif-maker.gif

Event Listをクリックすることで、どのレイヤでどういった通信が行われているか確認することができるのでアニメーションで全体の流れを把握し、細かく中身をみたい部分はEvent Listから確認することでネットワークの学習にとても役立つ機能だと感じました。
スクリーンショット 2021-12-03 23.49.00.png

4.4 VLANを設定する

最後にL2スイッチの機能としてVLANを簡単に試してみたいと思います。
VLANとは仮想的なLANを意味するもので同じスイッチ内でもポートごとにネットワークを分割することが出来る機能です。
今回はハンズオンが目的なので、細かい説明は抜きにしてとりあえず試してみます。

以下のような構成を用意しました。PC1とPC2が192.168.0.0/24、PC3とPC4が192.168.1.0/24のサブネットに属するように設定しています。

スクリーンショット 2021-12-04 6.59.38.png

スイッチのcliからVLANのdefaultの状態を確認してみます。すると、以下の通り全てのポートがVLAN 1に属することが確認できました。

Switch#enable
Switch#show vlan

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa0/1, Fa0/2, Fa0/3, Fa0/4
                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8
                                                Fa0/9, Fa0/10, Fa0/11, Fa0/12
                                                Fa0/13, Fa0/14, Fa0/15, Fa0/16
                                                Fa0/17, Fa0/18, Fa0/19, Fa0/20
                                                Fa0/21, Fa0/22, Fa0/23, Fa0/24
                                                Gig0/1, Gig0/2
1002 fddi-default                     active    
1003 token-ring-default               active    
1004 fddinet-default                  active    
1005 trnet-default                    active    

この状態でPC1からPC2にpingを打つことでARP要求を発生させた場合、以下の図に示す通り全ての端末にARP要求が送られることがわかりました。4.2で説明した通り、L2スイッチはIPアドレスで経路の制御を行なっているわけではないので、サブネットを分割したとしても、L2スイッチからしたら一つのネットワークに過ぎないわけです。
そこで、L2スイッチ上で仮想的にネットワークを分割するためのVLANが必要となってきます。
スクリーンショット 2021-12-04 6.07.45.png

ネットワークを分割するため、VLAN 2を作成します。名前は適当にtest_vlanにします。

Switch>enable
Switch#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#vlan 2
Switch(config-vlan)#name test_vlan
Switch(config-vlan)#end

作成したVLAN 2にPC3とPC4がつながっているポート(ここではFa0/3とFa0/4)を割り当てます。

Switch>enable
Switch#config terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Switch(config)#interface FastEthernet0/3
Switch(config-if)#switchport access vlan 2
Switch(config-if)#exit
Switch(config)#interface FastEthernet0/4
Switch(config-if)#switchport access vlan 2
Switch(config-if)#end

VLANの割り当てが完了したら、再度VLANの状態を確認してみます。Fa0/3, Fa0/4がVLAN 2に割り当てられていることが確認できました。

Switch#show vlan

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa0/1, Fa0/2, Fa0/5, Fa0/6
                                                Fa0/7, Fa0/8, Fa0/9, Fa0/10
                                                Fa0/11, Fa0/12, Fa0/13, Fa0/14
                                                Fa0/15, Fa0/16, Fa0/17, Fa0/18
                                                Fa0/19, Fa0/20, Fa0/21, Fa0/22
                                                Fa0/23, Fa0/24, Gig0/1, Gig0/2
2    test_vlan                        active    Fa0/3, Fa0/4
1002 fddi-default                     active    
1003 token-ring-default               active    
1004 fddinet-default                  active    
1005 trnet-default                    active   

この状態でPC1からPC2にpingを打つことでARP要求を発生させた場合、以下の図に示す通りPC1からPC2へのみARP要求が発生していることが確認できました。仮想的にレイヤ2でネットワークを分割することができました。

スクリーンショット 2021-12-04 6.56.12.png

VLANを設定しない場合だと、無駄なトラフィックが発生したり、PCのIPアドレスを変えることでサブネットの移動が可能な状態でした。VLANによってセキュリティやネットワークの効率が向上することを改めて確認することができました。

5. おわりに

当初の目的であったネットワーク機器を買わずにオンプレのハンズオンがしたいという願望を満たすことができたので個人的には満足しています。
今回はL2スイッチしか触れることができませんでしたが、他にもたくさんの機器が用意されているので、機会があればまた記事にしたいと思います。

明日は@RuyPKGさんです。

27
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
23