Ubuntuサーバーで接続したマネージドスイッチを管理できるようにする

勉強ために、マネージドスイッチ(補足あり)を購入しました。
「スイッチでVLANを構成して、サーバーPC接続してみよう」
と、サーバーPCとスイッチをケーブルで繋いだものの、どこからスイッチの設定を確認したりいじったりできるのかが分からない...。
そういうわけで、スイッチを管理操作できるようになるまでの方法を調べたのでシェアします。

<details><summary>[補足]スイッチの種類について</summary>

スイッチには「アンマネージド」「マネージド」の２種類存在します。
（個人的には紛らわしいと感じるが、）「アンマネージド」なスイッチは、購入した時点でもろもろの設定を自動で行ってくれます。一方、「マネージド」なスイッチは、アンマネージドスイッチがやってくれる「もろもろの設定」を利用者自身で行う必要があります。
ちなみに、実際にどう使い分けるのかは存じ上げませんが、筆者はネットワークの学習のためマネージドスイッチを使用しています。
</details>



# はじめに
## この記事の想定読者
- インフラ（特にネットワーク）初学者
- 複数機器を接続→初期設定などの管理操作をどこから行うか知りたい人
- CiscoのArubaスイッチの管理CLIに接続する方法を知りたい人
## この記事で書くこと
- サーバーPCで他のデバイス（スイッチ）との接続を確認する手順
- コマンドやツールについての補足
## この記事で書かないこと
- 物理的な接続の手順

## 物理構成と環境条件
### 物理構成
| ![IMG_2744 (1).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3660589/3317ca50-42f9-6581-7b54-e47a2299489a.jpeg) | スイッチ([Aruba 2930F 24G 4SFP+スイッチ](https://www.hpe.com/jp/ja/product-catalog/networking/networking-switches/pip.specifications.aruba-2930f-24g-4sfpplus-switch.1008995329.html))　 <br>  サーバーPC([ThinkCentre M710e Small](https://www.lenovo-smb.com/productinfo/model.php?mtm=10UR002JJP)) 　<br>  コンソールケーブルで接続ずみ  |
|:------------:|:------------|

### 環境条件
OS: Linux(Ubuntu Server 22.04)

# サーバーPCでスイッチの接続確認をするまで
以下の3ステップで進めます。
1. 正しいケーブルを、正しいポートに差し込む
2. 使用中の端末を確認する
3. 端末に接続する


## 正しいケーブルを、正しいポートに差し込む
ネットワーク機材は以下のようにベンダーが公式資料を出しています。

https://www.arubanetworks.com/assets/_ja/support/cg/UG_ArubaOS_Switches.pdf

そこから機材の接続方法や必要なアクセサリを確認します。

当記事の場合は、サーバーPCのシリアルポート(DB-9のコネクタを使用)と、スイッチのコンソールポート（RJ-45のコネクタ）をケーブル接続します。


## 使用中の端末を確認する
### スイッチに接続できるシリアルポートを特定する
シリアルポートとして使用されていそうなデバイスを調べるコマンドを入力します
```
dmesg | grep ttyS
```

<details><summary>[補足]コマンドの各要素について</summary>

`dmesg`: ハードウェアの検出メッセージやシステムのエラーを確認する時に使えるコマンドです
`grep`: 特定の条件で情報を抽出するコマンドです。端末は大抵の場合は、`ttyS1`のような番号付きのフォーマットで名前がついているので、`grep`で端末に関わるメッセージのみ抽出します。
</details>
<br>

上記のコマンドを実行すると、以下のような出力結果になります。

```
[   0.380296] 00:01: ttyS2 at I/O 0x3e8 (irq = 4, base_baud = 115200) is a 16550A
[   0.403915] serial18520: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
```
ここから、`ttyS1`または`ttyS2`のいずれかがスイッチと接続された端末であると予測します。

### 通信テストを行う
上記で使われてそうなポート(`ttyS1`と`ttyS2`)に対して通信テストを行います。
```text: 端末ttyS1との通信を確認する例
sudo screen /dev/ttyS1 9600
```

<details><summary>[補足]コマンドの各要素について</summary>

`screen`: 複数のセッションを扱う（別の端末を開いて使う）ためのコマンドです
`9600`: ボーレート（通信速度）です。スイッチの公式資料の接続要件に記載されている値の範囲内（当記事の場合は`1,200`～`115,200`）に合わせます
</details>
<br>

ここでは、`screen is terminating`が表示されてExitしないことだけ確認できればOKです。


## 端末に接続する
`ttyS1`と`ttyS2`のどちらがスイッチと接続されているのか調べます。
まず、`minicom`を使用して、`/dev/ttyS2`をシリアルポートに指定します。
```
sudo minicom -s

# 設定画面が表示されるので、/dev/ttyS2をシリアルポートに指定する
```
<details><summary>[補足]コマンドの各要素について</summary>

`minicom`: シリアルポート経由でのネットワーク機器の設定やデバッグを行う時に使用するツールです。`-s`オプションでminicomの設定を行うことができ、何もつけなけない場合は設定された端末にアクセスします
</details>
<br>

設定を完了したら、設定画面から抜けます。
```
Exit
```

minicomの画面に戻り、エンターキーを数回クリックします。
以下のようなスイッチのCLIのプロンプトが表示されたので、スイッチへの通信は成功です。
```
Aruba-2930F-24G-4SFPP#
```

もし、何も表示されない場合は、`minicom -s`を再度開き、別の端末をシリアルポートに設定し、上記操作を繰り返します。
<br><br>

---

最後に余談ですが、VLANにIPアドレスを設定するところまでできました。中古で購入した場合は特に、接続した機器の動作までしっかり確認しておくと安心です。
```
Aruba-2930F-24G-4SFPP#
Aruba-2930F-24G-4SFPP# configure terminal
Aruba-2930F-24G-4SFPP(config)# vlan 1
Aruba-2930F-24G-4SFPP(vlan-1)# ip address 192.168.1.1/24
Aruba-2930F-24G-4SFPP(vlan-1)# show ip

　Internet (IP) Service
  IP Routing : Disabled

  Default Gateway　　:
  Default TTL 　　　　　　　　: 64
  Arp Age　　　　　　　　　　　　　　　　 : 20
  Domain Suffix   :
  DNS server      :

                   |                                           Proxy ARP
  VLAN             | IP Config  IP Address      Subnet Mask    Std  Local
  ---------------- + ---------- --------------- -------------- ----------
  DEFAUTL_VLAN     | Manual     192.168.1.1     255.255.255.0   No    No

```