UTM上のUbuntuでネットワークコマンドを検証してみた

# 背景・目的
ネットワーク系のコマンドを学びたく、UTM上のUbuntuであれこれ試します。

# まとめ

下記にコマンドをまとめます。

|コマンド|説明|
|:--|:--|
|ip |各インターフェイスの有効・無効・MTU、MACアドレスなどの基本情報を確認する|
|ethtool|
|iperf3|ネットワークのスループット（帯域幅）を測定するためのコマンドラインツール|
|tc|Linuxカーネルのパケットスケジューリングと帯域制御の機能を操作するためのコマンド|
|iftopコマンド|Linux 上で「どのホストとどれだけ通信しているか」をリアルタイムに確認できるネットワークモニタリングツール|

# 概要
## ip コマンド
- Linux におけるネットワーク設定や状態の確認・制御を行うための統合コマンド
- 旧来の ifconfig や route、netstat の機能を包括的に置き換えている
- 下記が可能
    - 仮想マシンのIP確認
    - ネットワーク接続トラブルの切り分け
    - iperf3 や ethtool と組み合わせた検証
    - 複数NIC構成や仮想NIC（NAT/ブリッジ）の確認
    - MTUやキューサイズなどのパラメータ調査

## ethtool コマンド
- Linux上でネットワークインターフェース（NIC）の状態を確認・設定できるコマンドラインツール
- NICの速度、デュプレックス、リンク状態、ドライバ情報、エラーカウントなど、NIC性能や問題のトラブルシュートに不可欠な情報を取得・制御できる

## iperf3 コマンド
- ネットワークのスループット（帯域幅）を測定するためのコマンドラインツール
- TCPやUDPを使ってネットワーク間で実際にデータを転送し、実測の転送速度・遅延・再送などの情報を提供する
- 下記が可能
    - サーバーとクライアント間のネットワーク性能チェック
    - 帯域制限、ルータ性能、仮想NICの比較検証
    - VPNやトンネリング環境での性能劣化の確認
    - tc, netem, sysctl などと組み合わせたパフォーマンステスト

## tcコマンド
- Traffic Control（トラフィック制御） の略
- Linuxカーネルのパケットスケジューリングと帯域制御の機能を操作するためのコマンド
- 送信パケットに対して「遅延」「パケットロス」「帯域制限」「優先度設定」などをエミュレーションするために使用する
- 主な用途は下記の通り
    - ネットワーク遅延の追加
    - パケットロスの挿入
    - 帯域制限
    - 輻輳・順序入れ替えの再現
    - QoS（優先度制御）

## iftopコマンド
- Linux 上で「どのホストとどれだけ通信しているか」をリアルタイムに確認できるネットワークモニタリングツール
- iftop は ネットワーク帯域（TX/RX）に注目した可視化ツール
- 機能
    - ネットワーク通信量のリアルタイム可視化
    - 通信相手ごとの送受信量を表示
    - 帯域の短期的推移（2秒・10秒・40秒平均）
    - 軽量


# 実践
## 前提
- Mac (Intel)で試しています
- UTMは[こちら](https://qiita.com/zumax/items/8090f59fc2b779af55be)でインストール済みです
- OSはUbuntu

## 環境の準備（Ubuntu）
### UTMのネットワークを設定
2つの仮想マシンを同一NWとするためブリッジ接続に変更します。

1. 仮想マシンを選択します
1. ナビゲーションペインから「ネットワーク」を選択します
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/360037e8-3635-43e5-920c-2e40fb89eda9.png)


1. 下記のように設定します
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/621cd5b0-0f7c-432f-bf42-670ac5932850.png)


1. もう一台も同じ設定にします

### パッケージのセットアップ
1. ターミナルを起動します
1. apt updateします
    ```bash
    ~$ sudo apt update
    ```

1. 関連パッケージのインストールします
    ```bash
    $ sudo apt install -y iperf3 ethtool net-tools tcpdump
    $ sudo apt install -y bmon iftop
    $ sudo apt install -y nload
    ```
### AWS CLI のセットアップ
1. AWS CLIをインストールします
    ```bash
    $ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
    $ unzip awscliv2.zip
    $ sudo ./aws/install
    ```

1. バージョンを確認します
    ```bash
    $ aws --version
    aws-cli/2.27.17 Python/3.13.3 Linux/6.8.0-59-generic exe/x86_64.ubuntu.24
    $
    ```

## 現在のNIC情報を確認
1. `ip link` のコマンドで確認します
    ```bash
    $ ip link
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: enp0s1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
        link/ether XXXXXXXXXXXXXXX brd ff:ff:ff:ff:ff:ff
    $ 
    ```
- lo: 自分自身を指す仮想ネットワーク（127.0.0.1） 
- mtu: 最大転送単位
- UP, LOWER_UP：インターフェースが有効で、内部的にも動作中
- link/loopback：ループバック用のインターフェース種別

1. `ethtool enp0s1`のコマンドで確認する
    ```bash
    $ ethtool enp0s1
    Settings for enp0s1:
    	Supported ports: [ TP ]
    	Supported link modes:   10baseT/Half 10baseT/Full
    	                        100baseT/Half 100baseT/Full
    	                        1000baseT/Full
    	Supported pause frame use: No
    	Supports auto-negotiation: Yes
    	Supported FEC modes: Not reported
    	Advertised link modes:  10baseT/Half 10baseT/Full
    	                        100baseT/Half 100baseT/Full
    	                        1000baseT/Full
    	Advertised pause frame use: No
    	Advertised auto-negotiation: Yes
    	Advertised FEC modes: Not reported
    	Speed: 1000Mb/s
    	Duplex: Full
    	Auto-negotiation: on
    	Port: Twisted Pair
    	PHYAD: 0
    	Transceiver: internal
    	MDI-X: off (auto)
    netlink error: Operation not permitted
            Current message level: 0x00000007 (7)
                                   drv probe link
    	Link detected: yes
    $ 
    ```
    - このNICが対応する速度・通信モード（10Mbps〜1000Mbpsまで、全二重／半二重）

## iperf3 でスループットを測定
### 仮想マシンA（サーバ）
1. 事前に`ip a`でIPアドレスを確認します（クライアントからアクセスします）
1. `iperf3 -s`のコマンドで確認します
    ```bash
    % iperf3 -s                                 
    -----------------------------------------------------------
    Server listening on 5201 (test #1)
    -----------------------------------------------------------
    ```

### 仮想マシンB（クライアント）
#### ping
1. `ping -c 4 <仮想マシンAのIP>`を実行し疎通するか確認します
    ```bash
    $ ping -c 4 XXX.XXX.XXX.XXX
    PING XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX) 56(84) bytes of data.
    64 bytes from XXX.XXX.XXX.XXX: icmp_seq=1 ttl=64 time=4.39 ms
    64 bytes from XXX.XXX.XXX.XXX: icmp_seq=2 ttl=64 time=2.83 ms
    64 bytes from XXX.XXX.XXX.XXX: icmp_seq=3 ttl=64 time=1.88 ms
    64 bytes from XXX.XXX.XXX.XXX: icmp_seq=4 ttl=64 time=1.85 ms
    
    --- XXX.XXX.XXX.XXX ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3009ms
    rtt min/avg/max/mdev = 1.850/2.736/4.390/1.032 ms
    $ 
    ```

#### iperf3で通信速度を確認する
1. `iperf3 -c <仮想マシンAのIP>`
    ```bash
    $ iperf3 -c XXX.XXX.XXX.XXX
    Connecting to host XXX.XXX.XXX.XXX, port 5201
    [  5] local XXX.XXX.XXX.XXX port 49590 connected to XXX.XXX.XXX.XXX port 5201
    [ ID] Interval           Transfer     Bitrate         Retr  Cwnd
    [  5]   0.00-1.00   sec  98.4 MBytes   824 Mbits/sec   80    428 KBytes       
    [  5]   1.00-2.00   sec  93.0 MBytes   780 Mbits/sec   33    351 KBytes       
    [  5]   2.00-3.00   sec  99.8 MBytes   837 Mbits/sec    7    423 KBytes       
    [  5]   3.00-4.00   sec  90.0 MBytes   755 Mbits/sec    7    345 KBytes       
    [  5]   4.00-5.00   sec   105 MBytes   880 Mbits/sec    5    423 KBytes       
    [  5]   5.00-6.00   sec  98.9 MBytes   829 Mbits/sec   19    348 KBytes       
    [  5]   6.00-7.00   sec  91.6 MBytes   768 Mbits/sec    1    411 KBytes       
    [  5]   7.00-8.00   sec   106 MBytes   887 Mbits/sec   16    396 KBytes       
    [  5]   8.00-9.00   sec   111 MBytes   930 Mbits/sec    7    362 KBytes       
    [  5]   9.00-10.01  sec   112 MBytes   937 Mbits/sec    7    314 KBytes       
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-10.01  sec  1006 MBytes   843 Mbits/sec  182             sender
    [  5]   0.00-10.01  sec  1003 MBytes   841 Mbits/sec                  receiver
    
    iperf Done.
    $ 
    ```

     - 平均帯域（Bitrate）（送信）:843 Mbits/sec
     - 平均帯域（Bitrate）（受信）:841 Mbits/sec
     - 転送データ量（Transfer）：約1GB
     - 再送回数（Retr）：182回
     - TCPの輻輳制御ウィンドウ（Cwnd（Congestion Window））：314～428KB

## tcで遅延を加えてみる
enp0s1 というネットワークインターフェースに、100ミリ秒の遅延を追加します。

### 仮想マシンB（クライアント）
1. 下記のコマンドで遅延を加えます（全パケットに 100ミリ秒の遅延を追加する）
    ```bash
    $ sudo tc qdisc add dev enp0s1 root netem delay 100ms
    $ 
    ```

1. `iperf3 -c <仮想マシンAのIP>`を実行します
    ```bash
    $ iperf3 -c XXX.XXX.XXX.XXX
    Connecting to host XXX.XXX.XXX.XXX, port 5201
    [  5] local XXX.XXX.XXX.XXX port 39300 connected to XXX.XXX.XXX.XXX port 5201
    [ ID] Interval           Transfer     Bitrate         Retr  Cwnd
    [  5]   0.00-1.00   sec  6.75 MBytes  56.5 Mbits/sec  219    795 KBytes       
    [  5]   1.00-2.00   sec  4.50 MBytes  37.8 Mbits/sec  217    533 KBytes       
    [  5]   2.00-3.00   sec  4.62 MBytes  38.8 Mbits/sec    0    568 KBytes       
    [  5]   3.00-4.01   sec  5.75 MBytes  48.1 Mbits/sec    0    591 KBytes       
    [  5]   4.01-5.00   sec  5.62 MBytes  47.3 Mbits/sec    0    604 KBytes       
    [  5]   5.00-6.00   sec  5.88 MBytes  49.3 Mbits/sec    0    608 KBytes       
    [  5]   6.00-7.00   sec  3.88 MBytes  32.5 Mbits/sec    4    426 KBytes       
    [  5]   7.00-8.00   sec  3.12 MBytes  26.2 Mbits/sec    0    495 KBytes       
    [  5]   8.00-9.00   sec  4.38 MBytes  36.7 Mbits/sec    2    477 KBytes       
    [  5]   9.00-10.00  sec  2.88 MBytes  24.1 Mbits/sec    0    417 KBytes       
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-10.00  sec  49.9 MBytes  41.8 Mbits/sec  442             sender
    [  5]   0.00-10.11  sec  47.6 MBytes  39.5 Mbits/sec                  receiver
    
    iperf Done.
    $ 
    ```

下記のように変化がありました。

|確認ポイント | 制限なし|制限あり |評価|
|:--|:--|:--|:--|
|平均帯域（Bitrate）（送信）|843 Mbits/sec|41.8 Mbits/sec|約 1/20|
|平均帯域（Bitrate）（受信）|841 Mbits/sec|39.5 Mbits/sec|約 1/20|
|転送データ量（Transfer）|約1GB|約50MB|約 1/20|
|再送回数（Retr）|182回|442回|約2.4 倍|
|TCPの輻輳制御ウィンドウ<BR>（Cwnd（Congestion Window））|314～428KB|417〜795 KB||

※ 初期は輻輳がなく 795KBまで成長し、その後 Retr（再送）が増えたことで、TCPが「輻輳が起きている」と判断し 縮小し最終的に 417KBまで減少している


3.もとに戻します
```bash
sudo tc qdisc del dev enp0s1 root
```

## 帯域制限を加えてみる（上限を人工的に決める）
制限した値＝Bitrateになるか確認する。

### 仮想マシンB（クライアント）

1. 下記のコマンドで制限をかける
    ```bash
    $ sudo tc qdisc add dev enp0s1 root tbf rate 10mbit burst 32kbit latency 400ms
    ```

    - tbf（Token Bucket Filter）：帯域制限をかけるキュー制御方式
    - rate 10mbit：最大通信速度を10Mbpsに制限
    - burst 32kbit：バーストで一時的に送れる最大量
    - latency 400ms：最大で待機できる時間（バーストを待てる時間）

1. `iperf3 -c <仮想マシンAのIP>`を実行します
    ```bash
    $ iperf3 -c XXX.XXX.XXX.XXX
    Connecting to host XXX.XXX.XXX.XXX, port 5201
    [  5] local XXX.XXX.XXX.XXX port 49544 connected XXX.XXX.XXX.XXX port 5201
    [ ID] Interval           Transfer     Bitrate         Retr  Cwnd
    [  5]   0.00-1.00   sec  1.50 MBytes  12.6 Mbits/sec    0   84.8 KBytes       
    [  5]   1.00-2.00   sec  1.12 MBytes  9.44 Mbits/sec    0   99.0 KBytes       
    [  5]   2.00-3.00   sec  1.38 MBytes  11.5 Mbits/sec    0    105 KBytes       
    [  5]   3.00-4.00   sec  1.12 MBytes  9.44 Mbits/sec    0    105 KBytes       
    [  5]   4.00-5.00   sec  1.00 MBytes  8.39 Mbits/sec    0    115 KBytes       
    [  5]   5.00-6.00   sec  1.25 MBytes  10.5 Mbits/sec    0    115 KBytes       
    [  5]   6.00-7.00   sec  1.00 MBytes  8.38 Mbits/sec    0    115 KBytes       
    [  5]   7.00-8.00   sec  1.25 MBytes  10.5 Mbits/sec    0    115 KBytes       
    [  5]   8.00-9.00   sec  1.00 MBytes  8.40 Mbits/sec    0    115 KBytes       
    [  5]   9.00-10.00  sec  1.25 MBytes  10.5 Mbits/sec    0    115 KBytes       
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-10.00  sec  11.9 MBytes  9.96 Mbits/sec    0             sender
    [  5]   0.00-10.05  sec  11.4 MBytes  9.50 Mbits/sec                  receiver
    
    iperf Done.
    $ 
    ```
     - 平均帯域（Bitrate）（送信）:9.96 Mbits/sec
     - 平均帯域（Bitrate）（受信）:9.50 Mbits/sec
     - 転送データ量（Transfer）：約11.9MB（10Mbps ×10秒 = 12.5MB）
         - 10秒はデフォルト値
     - 再送回数（Retr）：0 回
     - TCPの輻輳制御ウィンドウ（Cwnd（Congestion Window））：84.8KB→115KB（安定している）

1. もとに戻します
    ```bash
    sudo tc qdisc del dev enp0s1 root
    ```

## S3にファイルをアップロードし帯域を計測する
今度は、S3にファイルを送っている横で通信帯域の状況を確認します。

### 事前準備
#### AWS SSOの設定
1. Ubuntu上に`~/.aws/config`を設定します
    ```bash
    [profile x-direct]
    sso_start_url = https://d-XXXXX.awsapps.com/start
    sso_region = ap-northeast-1
    sso_account_id = YYYYYYYYY
    sso_role_name = xxxxxxx
    region = ap-northeast-1
    output = json    
    ```
1. 下記のコマンドでログインします（`--no-browser`をつけます）
    ```bash
    $ aws sso login --profile x-admin-direct --no-browser
    Browser will not be automatically opened.
    Please visit the following URL:
    
    https://XXXXXXX/start/#/device
    
    Then enter the code:
    
    XXXX-XXXXX
    
    ```
1. Mac側のブラウザにリンクを貼り付けてサインインします
1. `Successfully`が表示されます
    ```bash
    Alternatively, you may visit the following URL which will autofill the code upon loading:
    https://XXXXXXX/start/#/device?user_code=XXXX-XXXXX
    Successfully logged into Start URL: https://XXXXXXX/start
    $ 
    ```
1. 認証状況を確認します
    ```bash
    $ aws sts get-caller-identity --profile x-admin-direct
    {
        "UserId": "XXXX:XXXX",
        "Account": "XXXX",
        "Arn": "arn:aws:sts::XXXX:assumed-role/XXXX/XXXX"
    }
    $ 
    ```
#### S3バケットの作成
1. ファイルアップロード先のS3バケットを用意しておきます


### ファイルの準備
1. 3GBのファイルを用意します
    ```bash
    $ dd if=/dev/zero of=test-file1.dat bs=1M count=3000
    3000+0 records in
    3000+0 records out
    3145728000 bytes (3.1 GB, 2.9 GiB) copied, 11.4312 s, 275 MB/s
    $ ls -lh test-file1.dat 
    -rw-rw-r-- 1 XXX XXX 3.0G May 18 07:14 test-file1.dat
    $ 
    ```

### iftopで確認

#### （送信前）仮想マシンB（計測用）
1. `sudo iftop -i enp0s1`で別ターミナルからモニタリングを開始します
1. 送信前
    ```bash
    └─bbbbbbbbbbbbbbbbbbbbbbbbb┴─bbbbbbbbbbbbbbbbbbbbbbbbb┴─bbbbbbbbbbbbbbbbbbbbbbbbb┴─bbbbbbbbbbbbbbbbbbbbbbbbb┴─bbbbbbbbbbbbbbbbbbbbbbbbb─
    XXXX                                                 => XXX.XXX.XXX.XXX                               896b   12.5Kb  4.49Kb
                                                           <=                                                         208b   20.2Kb  6.69Kb
    
    
    ─bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb─
    TX:             cum:   44.0KB   peak:   31.7Kb                                                          rates:    896b   12.5Kb  4.49Kb
    RX:                    52.2KB           52.2Kb                                                                    208b   20.2Kb  6.69Kb
    TOTAL:                 96.2KB           79.9Kb                                                                   1.08Kb  32.7Kb  11.2Kb
    ```

#### （送信）仮想マシンA（送信用）
1. 送信します
    ```bash
    $ time aws s3 cp test-file1.dat s3://XXXXX/XXXXX/test-file1.dat 
    Completed 2.6 GiB/2.9 GiB (21.4 MiB/s) with 1 file(s) remaining   
    ```

#### （送信中）仮想マシンB（計測用）

1. 送信中
    ```bash
    └─bbbbbbbbbbbbbbbbbbbbbbbbb┴─bbbbbbbbbbbbbbbbbbbbbbbbb┴─bbbbbbbbbbbbbbbbbbbbbbbbb┴─bbbbbbbbbbbbbbbbbbbbbbbbb┴─bbbbbbbbbbbbbbbbbbbbbbbbb─
    XXXXX                                                 => s3-r-w.ap-northeast-1.amazonaws.com                    31.0Mb  37.0Mb  9.24Mb
                                                           <=                                                         441Kb   531Kb   133Kb
    XXXXX                                                 => s3-r-w.ap-northeast-1.amazonaws.com                    34.6Mb  29.1Mb  7.27Mb
                                                           <=                                                         455Kb   428Kb   107Kb
    XXXXX                                                 => s3-ap-northeast-1-r-w.amazonaws.com                    19.4Mb  20.2Mb  5.06Mb
                                                           <=                                                         221Kb   252Kb  62.9Kb
    XXXXX                                                 => s3-r-w.ap-northeast-1.amazonaws.com                    11.1Mb  13.2Mb  3.29Mb
                                                           <=                                                         251Kb   305Kb  76.2Kb
    XXXXX                                                 => s3-r-w.ap-northeast-1.amazonaws.com                    10.2Mb  12.3Mb  3.08Mb
                                                           <=                                                         155Kb   197Kb  49.2Kb
    XXXXX                                                 => s3-ap-northeast-1-r-w.amazonaws.com                    9.02Mb  9.88Mb  2.47Mb
                                                           <=                                                         116Kb   131Kb  32.8Kb
    XXXXX                                                 => s3-ap-northeast-1-r-w.amazonaws.com                    9.84Mb  9.82Mb  2.45Mb
                                                           <=                                                         122Kb   132Kb  33.0Kb
    XXXXX                                                 => XXXXXXXXXX                                         21.8Kb  31.9Kb  20.3Kb
                                                           <=                                                        6.70Kb  19.0Kb  22.9Kb
                                                           <=                                                           0b   1.89Kb   484b
    ─bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb─
    TX:             cum:    164MB   peak:    172Mb                                                          rates:    125Mb   131Mb  32.9Mb
    RX:                    2.60MB           2.59Mb                                                                   1.73Mb  1.95Mb   517Kb
    TOTAL:                  167MB            175Mb                                                                    127Mb   133Mb  33.4Mb
    ```

#### （送信完了）仮想マシンA（送信用）
1. 送信完了しました
    ```bash
    Completed 2.9 GiB/2.9 GiB (20.9 MiB/s) with 1 file(s) remaining   
    upload: ./test-file1.dat to s3://XXXXX/XXXXX/test-file1.dat
    
    real	2m25.121s
    user	0m52.917s
    sys	0m40.542s
    $ 
    $ 
    $ 
    ```
#### （送信完了直後）仮想マシンB（計測用）
1. 送信完了直後の状態です
    ```
                               191Mb                      381Mb                      572Mb                      763Mb                  954Mb
    └─bbbbbbbbbbbbbbbbbbbbbbbbb┴─bbbbbbbbbbbbbbbbbbbbbbbbb┴─bbbbbbbbbbbbbbbbbbbbbbbbb┴─bbbbbbbbbbbbbbbbbbbbbbbbb┴─bbbbbbbbbbbbbbbbbbbbbbbbb─
    XXXXX                                                 => XXXXXX                                         1.44Kb  1.64Kb  15.8Kb
                                                           <=                                                         208b    208b   8.76Kb
    XXXXX                                                 => s3-r-w.ap-northeast-1.amazonaws.com                       0b      0b   19.9Mb
                                                           <=                                                           0b      0b    263Kb
    XXXXX                                                 => s3-r-w.ap-northeast-1.amazonaws.com                       0b      0b   13.2Mb
                                                           <=                                                           0b      0b    189Kb
    XXXXX                                                 => s3-ap-northeast-1-r-w.amazonaws.com                       0b      0b   9.82Mb
                                                           <=                                                           0b      0b    115Kb
    XXXXX                                                 => s3-r-w.ap-northeast-1.amazonaws.com                       0b      0b   7.79Mb
                                                           <=                                                           0b      0b    164Kb
    XXXXX                                                 => s3-ap-northeast-1-r-w.amazonaws.com                       0b      0b   5.97Mb
                                                           <=                                                           0b      0b   73.5Kb
    XXXXX                                                 => s3-r-w.ap-northeast-1.amazonaws.com                       0b      0b   5.29Mb
                                                           <=                                                           0b      0b   79.4Kb
    XXXXX                                                 => s3-ap-northeast-1-r-w.amazonaws.com                       0b      0b   4.88Mb
                                                           <=                                                           0b      0b   60.9Kb
    mdns.mcast.net                                         => XXXXXXX                                            0b      0b      0b
                                                           <=                                                           0b      0b    108b
    mdns.mcast.net                                         => XXXXXXX                                            0b      0b      0b
                                                           <=                                                           0b      0b     77b
    
    

    ─bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb─
    TX:             cum:   2.98GB   peak:    161Mb                                                          rates:   1.44Kb  1.64Kb  66.8Mb
    RX:                    42.5MB           2.25Mb                                                                    208b    208b    954Kb
    TOTAL:                 3.02GB            163Mb                                                                   1.64Kb  1.84Kb  67.8Mb
    ```

#### 分析
1. 上記の結果を分析します（10秒平均のRateを記載しています）

|項目 |送信前 | 送信中|送信後|
|:--|:--|:--|:--|
|TX|12.5Kb|125Mb/s|1.64Kb/s|
|RX|20.2Kb/s|1.95Mb/s|208b/s|
|TOTAL|32.7Kb/s|133Mb/s|1.84Kb/s|

- TX：Transmit（送信）：外に向かって送ったデータの量／速度
- RX：Receive（受信）：外から受け取ったデータの量／速度
- TOTAL：合計：TX + RX の合計値（トラフィック全体）

※cum（cumulative）：累積（総量）、ツール起動から現在までに転送されたデータの合計量
※rate（通信速度）:今この瞬間、または過去数秒間に送受信されているデータの速度


2.上記から下記のことが言えます
- 送信中は、125Mbpsの帯域を使用している
- iftop で複数の S3 エンドポイントに同時通信している様子が確認できたため、S3アップロード時にマルチパート＋並列送信が行われていると考えられる


### （補足）nloadの見え方

1. 下記のようにグラフで見えます
    ```bash
    Device enp0s1 [XXXXXX] (1/2):
    ========================================================================================================================================
    Incoming:
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
                                                                                     .
                                      #|||...                |    #                 .#....##|.
                                     .#######|##.   #.      .#    #|        ..|##   ##########
                                     ############  .##.     ##||  ##  |##  ######.  ##########
                                     ############  ####.   |####  ##.|############ |##########
                                     ############. #####| ######|#################.###########
                                     #############.###########################################
                                     #########################################################
                                     #########################################################  Curr: 3.62 MBit/s
                                    |#########################################################  Avg: 2.73 MBit/s
                                    ##########################################################  Min: 21.95 kBit/s
                                    ##########################################################  Max: 3.90 MBit/s
                                    ##########################################################  Ttl: 80.53 MByte
    Outgoing:
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################
                                    ##########################################################  Curr: 207.72 MBit/s
                                    ##########################################################  Avg: 150.44 MBit/s
                                    ##########################################################  Min: 20.47 kBit/s
                                    ##########################################################  Max: 216.24 MBit/s
                              
    ```

1. 終了直後の状態です
    ```bash
    Device enp0s1 [XXX.XXX.XXX.XXX] (1/2):
    ========================================================================================================================================
    Incoming:
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
                                                                  |    |
                     .. ...         #||.                          ##  |#|
    |  |            |##|###| ||#|  #####                     ||  |##|.###
    # .#|  |##      #############|.######.  #. |##|.  ##|##.###| ########.
    #####..#### .#.|#######################|########..##########|#########
    ###########|##########################################################|
    #######################################################################
    #######################################################################
    #######################################################################                     Curr: 2.00 kBit/s
    ########################################################################                    Avg: 2.99 MBit/s
    ########################################################################                    Min: 1016.00 Bit/s
    ########################################################################                    Max: 4.11 MBit/s
    ########################################################################.                   Ttl: 124.71 MByte
    Outgoing:
    ########################################################################
    ########################################################################
    ########################################################################
    ########################################################################
    ########################################################################
    ########################################################################
    ########################################################################
    ########################################################################
    ########################################################################
    ########################################################################
    ########################################################################
    #########################################################################
    #########################################################################
    #########################################################################
    #########################################################################
    #########################################################################
    #########################################################################
    #########################################################################
    #########################################################################
    #########################################################################
    #########################################################################
    #########################################################################
    #########################################################################
    #########################################################################
    #########################################################################
    #########################################################################
    #########################################################################
    #########################################################################                   Curr: 19.12 kBit/s
    #########################################################################                   Avg: 168.10 MBit/s
    #########################################################################                   Min: 17.63 kBit/s
    #########################################################################                   Max: 233.42 MBit/s
    #########################################################################                   Ttl: 9.49 GByte
    ```

# 考察
今回、UTM上のUbuntu仮想マシンを2台構成し、ネットワークツールの動作を一通り検証し、基礎ツールの役割整理やAWS S3へのアップロードの観測を試しました。今後も継続して学んでいきます。



# 参考
https://qiita.com/zumax/items/8090f59fc2b779af55be

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html