title | emoji | type | topics | published | publication_name | ||||
---|---|---|---|---|---|---|---|---|---|
Standard Public Load BalancerでICMP ping/tracerouteに対応したので投げてみる |
🔀 |
tech |
|
true |
microsoft |
- Azure LBでは従来ICMPは応答しなかったが、直近のアップデートによって対応した
:::message alert
- Load Balancerのプローブに応答できるようにUbuntuマシンでapache(もしくは負荷分散に応答するミドルウェア)を稼働させておく
$ sudo apt update
$ sudo apt install apache2
- また、バックエンドのVM側のNSGでHTTPも開放しておく
- この設定をしていないと、プローブが返ってこないため、not reachableになる
:::
:::message
- このICMPの応答確認には正常性プローブの結果を利用している
- よって、負荷分散規則がないと正常性プローブがバックエンドプールと紐づかないため、応答が返ってこないことに注意 :::
- 手元のWindows PC(自宅)からPublic Load Balancerのフロントエンドにpingを投げてみると、応答が返ってくる
PS C:\Users\xxxx> ping 20.48.13.160
20.48.13.160 に ping を送信しています 32 バイトのデータ:
20.48.13.160 からの応答: バイト数 =32 時間 =4ms TTL=118
20.48.13.160 からの応答: バイト数 =32 時間 =4ms TTL=118
20.48.13.160 からの応答: バイト数 =32 時間 =4ms TTL=118
20.48.13.160 からの応答: バイト数 =32 時間 =4ms TTL=118
20.48.13.160 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 4ms、最大 = 4ms、平均 = 4ms
- その他、以下のような種類の結果が得られる
シナリオ | 予想される応答 |
---|---|
すべてのバックエンド インスタンスでダウンが検出される | 宛先ホストに到達できません |
すべてのバックエンド インスタンスがオフになっている | 応答なし: 要求がタイムアウトしました |
少なくとも 1 つのバックエンド インスタンスで稼働が検出される | 正常なエコー応答 |
Load Balancer の背後にバックエンド インスタンスがない、または負荷分散規則が関連付けられていない | 応答なし: 要求がタイムアウトしました |
- 同様に
tracert
コマンドも試してみると、到達確認ができる
PS C:\Users\xxxx> tracert 20.48.13.160
20.48.13.160 へのルートをトレースしています。経由するホップ数は最大 30 です
1 <1 ms 1 ms <1 ms 192.168.3.1
2 4 ms 16 ms 19 ms softbankxxxxxxx.bbtec.net [x.x.x.x]
3 4 ms 4 ms 5 ms softbankxxxxxxx.bbtec.net [x.x.x.x]
4 * * * 要求がタイムアウトしました。
5 * * * 要求がタイムアウトしました。
6 6 ms 4 ms 4 ms softbankxxxxxxx.bbtec.net [x.x.x.x]
7 5 ms 4 ms 5 ms ae30-0.icr02.tyo31.ntwk.msn.net [104.44.235.188]
8 * * * 要求がタイムアウトしました。
9 * * * 要求がタイムアウトしました。
10 * * * 要求がタイムアウトしました。
11 * * * 要求がタイムアウトしました。
12 * * * 要求がタイムアウトしました。
13 4 ms 4 ms 4 ms 20.48.13.160
- Public Load BalancerがICMPを返すようになったことで、パブリックIPを持たないVMをバックエンドプールに持つLBのトラシューが多少やりやすくなった、、、はず!