Azure仮想マシンが学習しているルーティング情報を確認する方法をまとめてみました。
今回はAzureポータル、Azure CLI、Azure Powershellの3つのインターフェースを利用してみました。
[有効なルート] から確認可能
仮想マシンに接続されているネットワークインターフェースの [有効なルート] という項目から仮想マシンが学習しているルーティング情報の確認が可能です。
ただし、ネットワークインターフェースの [有効なルート] からルーティング情報を取得する場合には仮想マシンが起動している必要があります。
仮想マシンが停止している場合にはこの経路情報は取得できません。
Azureポータルで確認する
仮想マシンに接続されてるネットワークインターフェースから [有効なルート] のタブを開くことで確認可能です。
・ネットワークインターフェースの [有効なルート] で経路情報を確認
Azure CLIで確認する
Azure CLIでは以下のコマンドで確認することができます。
$rg_name = <リソースグループ名>
$nic_name = <ネットワークインターフェース名>
az network nic show-effective-route-table -g $rg_name -n $nic_name
・記載例
$rg_name = "Test-RG"
$nic_name = "test-vm-02866"
az network nic show-effective-route-table -g $rg_name -n $nic_name
以下のように出力されます。
・実行結果
PS C:\> az network nic show-effective-route-table -g $rg_name -n $nic_name
{
"nextLink": null,
"value": [
{
"addressPrefix": [
"10.1.0.0/24"
],
"destinationServiceTags": [],
"disableBgpRoutePropagation": false,
"hasBgpOverride": false,
"name": null,
"nextHopIpAddress": [],
"nextHopType": "VnetLocal",
"source": "Default",
"state": "Active",
"tagMap": {}
},
{
"addressPrefix": [
"0.0.0.0/0"
],
"destinationServiceTags": [],
"disableBgpRoutePropagation": false,
"hasBgpOverride": false,
"name": null,
"nextHopIpAddress": [],
"nextHopType": "Internet",
"source": "Default",
"state": "Active",
"tagMap": {}
},
~~中略~~
{
"addressPrefix": [
"20.35.252.0/22"
],
"destinationServiceTags": [],
"disableBgpRoutePropagation": false,
"hasBgpOverride": false,
"name": null,
"nextHopIpAddress": [],
"nextHopType": "None",
"source": "Default",
"state": "Active",
"tagMap": {}
}
]
}
PS C:\>
これだとネクストホップなどの学習経路の細かい情報まで取得されるので見づらいです。
なので以下のように加工すると経路情報だけを確認しやすくなります。
※CLIとしてPowershellを利用している場合に限ります。
・加工したAzureCLIコマンド(学習しているIPアドレスのみ取得)
$rg_name = "Test-RG"
$nic_name = "test-vm-02866"
$json = az network nic show-effective-route-table -g $rg_name -n $nic_name | ConvertFrom-Json
$json.value.addressPrefix
・実行結果(加工したAzureCLIコマンド)
PS C:\> $json = az network nic show-effective-route-table -g $rg_name -n $nic_name | ConvertFrom-Json
PS C:\> $json.value.addressPrefix
10.1.0.0/24
0.0.0.0/0
10.0.0.0/8
100.64.0.0/10
172.16.0.0/12
25.48.0.0/12
25.4.0.0/14
198.18.0.0/15
157.59.0.0/16
192.168.0.0/16
25.33.0.0/16
40.109.0.0/16
104.147.0.0/16
104.146.0.0/17
40.108.0.0/17
23.103.0.0/18
25.41.0.0/20
20.35.252.0/22
PS C:\>
Azure Powershellで確認する
Azure Powershellでは以下のコマンドで取得可能です。
Get-AzEffectiveRouteTable `
-NetworkInterfaceName <ネットワークインターフェース名> `
-ResourceGroupName <リソースグループ名>
・記載例
Get-AzEffectiveRouteTable `
-ResourceGroupName "Test-RG" `
-NetworkInterfaceName "test-vm-02866"
以下のように出力されます。
・実行結果
PS C:\> Get-AzEffectiveRouteTable `
>> -ResourceGroupName "Test-RG" `
>> -NetworkInterfaceName "test-vm-02866"
Name :
DisableBgpRoutePropagation : False
State : Active
Source : Default
AddressPrefix : {10.1.0.0/24}
NextHopType : VnetLocal
NextHopIpAddress : {}
Name :
DisableBgpRoutePropagation : False
State : Active
Source : Default
AddressPrefix : {0.0.0.0/0}
NextHopType : Internet
NextHopIpAddress : {}
~~中略~~
Name :
DisableBgpRoutePropagation : False
State : Active
Source : Default
AddressPrefix : {20.35.252.0/22}
NextHopType : None
NextHopIpAddress : {}
PS C:\>
Azure CLIの時と同じように学習経路の細かい情報まで取得されるので見づらいです。
なので以下のように加工すると経路情報だけを確認しやすくなります。
・加工したAzurePowershellコマンド(学習しているIPアドレスのみ取得)
$json = Get-AzEffectiveRouteTable `
-ResourceGroupName "Test-RG" `
-NetworkInterfaceName "test-vm-02866"
$json.addressPrefix
・実行結果(加工したAzurePowershellコマンド)
PS C:\> $json = Get-AzEffectiveRouteTable `
>> -ResourceGroupName "Test-RG" `
>> -NetworkInterfaceName "test-vm-02866"
PS C:\>
PS C:\> $json.addressPrefix
10.1.0.0/24
0.0.0.0/0
10.0.0.0/8
100.64.0.0/10
172.16.0.0/12
25.48.0.0/12
25.4.0.0/14
198.18.0.0/15
157.59.0.0/16
192.168.0.0/16
25.33.0.0/16
40.109.0.0/16
104.147.0.0/16
104.146.0.0/17
40.108.0.0/17
23.103.0.0/18
25.41.0.0/20
20.35.252.0/22
PS C:\>