背景
VM 1とVM 2は同じVnetにありますが、Subnetは別々です。
さらにVM 1にNic 1とNic2を付けています。Nic1とNic2はそれぞれ別のSubnetです。
この場合、VM1からVM2に接続しますが、VM 1はNic1を使っています。どうすればNic2を使わせますか。
以下は実例を用いてやり方を説明しました。
VM 1:
Nic1:172.17.0.4 (subnet1)
Nic2:172.17.2.4 (subnet2)
VM 2:172.17.1.4 (subnet3)
実機検証
1.VM1にRDPして、tnc -ComputerName 172.17.1.4 -port 3389 を実施してみました。
結果は以下の通り、Source Addressは Nic1を使っていますね。
2.Print routeでroute tableを確認します。
IPv4 Route Table
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 172.17.0.1 172.17.0.4 10
127.0.0.0 255.0.0.0 On-link 127.0.0.1 331
127.0.0.1 255.255.255.255 On-link 127.0.0.1 331
127.255.255.255 255.255.255.255 On-link 127.0.0.1 331
168.63.129.16 255.255.255.255 172.17.0.1 172.17.0.4 11
169.254.169.254 255.255.255.255 172.17.0.1 172.17.0.4 11
172.17.0.0 255.255.255.0 On-link 172.17.0.4 266
172.17.0.4 255.255.255.255 On-link 172.17.0.4 266
172.17.0.255 255.255.255.255 On-link 172.17.0.4 266
172.17.2.0 255.255.255.0 On-link 172.17.2.4 266
172.17.2.4 255.255.255.255 On-link 172.17.2.4 266
172.17.2.255 255.255.255.255 On-link 172.17.2.4 266
224.0.0.0 240.0.0.0 On-link 127.0.0.1 331
224.0.0.0 240.0.0.0 On-link 172.17.0.4 266
224.0.0.0 240.0.0.0 On-link 172.17.2.4 266
255.255.255.255 255.255.255.255 On-link 127.0.0.1 331
255.255.255.255 255.255.255.255 On-link 172.17.0.4 266
255.255.255.255 255.255.255.255 On-link 172.17.2.4 266
上記のroute tableからわかりますが、Gatewayは172.17.0.1を使っています。
VM2への通信は既定の0.0.0.0ルートを利用します。つまり172.17.0.1を使います。
172.17.1.4 への通信では、以下のルートが使用されます:
• ネットワーク宛先:0.0.0.0
• サブネットマスク:0.0.0.0
• ゲートウェイ:172.17.0.1
• インターフェース:172.17.0.4
3.172.17.1.4 への通信をNic2で使いたいですが、どうすればいいでしょうか。
まずIpconfig /all で172.17.2.4がethernet 4であることを把握して、
Ethernet adapter Ethernet 4:
Connection-specific DNS Suffix . : mkppgh41gxwu5dqpkrpzlqfeuh.lx.internal.cloudapp.net
Description . . . . . . . . . . . : Microsoft Hyper-V Network Adapter #2
Physical Address. . . . . . . . . : 60-45-BD-62-4A-DC
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::cb25:aee:3100:95ad%12(Preferred)
IPv4 Address. . . . . . . . . . . : 172.17.2.4(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
次はいかのコマンドでEthernet 4のidx番号は6であることを把握します。
netsh interface ipv4 show interfaces
Idx Met MTU State Name
--- ---------- ---------- ------------ ---------------------------
1 75 4294967295 connected Loopback Pseudo-Interface 1
3 10 1500 connected Ethernet
6 10 1500 connected Ethernet 4
4.以下のコマンドで172.17.1.4への通信は 172.17.2.1(Nic2のgateway IP)を使うように静的ルートを設定します。
route -p add 172.17.1.4 mask 255.255.255.255 172.17.2.1 if 6 metric 10
5.route printで結果を確認、確かに以下のルートが追加されました。Metricは10でdefaultGatewayのmetricと同じです。
Persistent Routes:
Network Address Netmask Gateway Address Metric
172.17.1.4 255.255.255.255 172.17.2.1 10
C:\Users\tanhiroshi>route print
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 172.17.0.1 172.17.0.4 10
127.0.0.0 255.0.0.0 On-link 127.0.0.1 331
127.0.0.1 255.255.255.255 On-link 127.0.0.1 331
127.255.255.255 255.255.255.255 On-link 127.0.0.1 331
168.63.129.16 255.255.255.255 172.17.0.1 172.17.0.4 11
169.254.169.254 255.255.255.255 172.17.0.1 172.17.0.4 11
172.17.0.0 255.255.255.0 On-link 172.17.0.4 266
172.17.0.4 255.255.255.255 On-link 172.17.0.4 266
172.17.0.255 255.255.255.255 On-link 172.17.0.4 266
172.17.1.4 255.255.255.255 172.17.2.1 172.17.2.4 20
172.17.2.0 255.255.255.0 On-link 172.17.2.4 266
172.17.2.4 255.255.255.255 On-link 172.17.2.4 266
172.17.2.255 255.255.255.255 On-link 172.17.2.4 266
224.0.0.0 240.0.0.0 On-link 127.0.0.1 331
224.0.0.0 240.0.0.0 On-link 172.17.0.4 266
224.0.0.0 240.0.0.0 On-link 172.17.2.4 266
255.255.255.255 255.255.255.255 On-link 127.0.0.1 331
255.255.255.255 255.255.255.255 On-link 172.17.0.4 266
255.255.255.255 255.255.255.255 On-link 172.17.2.4 266
===========================================================================
Persistent Routes:
Network Address Netmask Gateway Address Metric
172.17.1.4 255.255.255.255 172.17.2.1 10
===========================================================================
6.tnc -ComputerName 172.17.1.4 -port 3389 を実施したら、SourceAddressが172.17.2.4になりました!成功!
7.該当routを削除したら、Source Addressはまた172.17.0.4に戻りました。
C:\Users\tanhiroshi>route delete 172.17.1.4 mask 255.255.255.255
OK!
補足:
検証する際、間違って、Nic2のgateway IPではなく、Nic2のIpをルートに設定したら、tncは失敗しますし、Source Addressも172.17.0.4のままです。ここは要注意ですね。
C:\Users\tanhiroshi>route -p add 172.17.1.4 mask 255.255.255.255 172.17.2.4 if 6 metric 10
OK!