それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

Windowsの1つのNICに複数のIPアドレスを割り当てる。

windows でも ip addr add したい。

macLinux を使っていると、 ip addr add のようなコマンドで、一つのネットワークカード(イーサネット・アダプタ)に、複数のIPアドレスを割り当てることが出来ます。

linux での例

Linux では設定を書き換えなくても、次のコマンドで手軽に、IPを追加することが出来ますよね。

ip addr add 192.168.1.10/24 dev eth1
ip addr add 192.168.2.10/24 dev eth1
ip addr add 192.168.4.10/24 dev eth1

また、IPごとにゲートウェイを変えることができるので、便利なんですが。。。

Windowsでも同じことがしたい

Windowsでも、ネットワーク・アダプタに複数のIPアドレスを割り当てたい。ネットワークを構築しているといちいち差し替えるのがだるいので、同じようなことがしたいなと思っていた。

windows 特有の制限(DHCPオフでStaticが必須・管理者)

DHCPをオンにしたままでは、複数のIPを追加できません。(やり方はあるだろうけど、netsh で単純にやるのは不可能に近いと思います。)

Linuxだと、DHCPをオンにしたままで、IPアドレスを追加することが出来ますが、Windowsでは出来ないようです。いったん、Staticに変えてあげる必要があります。

また、ネットワークの設定変更には管理者権限が必要です。

PS C:\Users\takuya> netsh interface ipv4 add address name=eth01 address=192.168.4.1 mask=255.255.255.0
The requested operation requires elevation (Run as administrator).

netshを使って、IPアドレスを複数割り当てる。

IPアドレスを、一つに複数を追加することが出来ます。

このコマンドを実行するとStatic設定になります。DHCPと共存が出来ません。

DHCP取得済みのIPアドレスデフォルトゲートウェイは削除されます。DHCPデフォルトゲートウェイと通信できなくなるので注意してください。

PS C:\WINDOWS\system32> netsh interface ipv4 add address name=アダプタ名 address=192.168.5.1 mask=255.255.255.0

管理者権限で、IPアドレスを追加する。

PS C:\WINDOWS\system32> netsh interface ipv4 add address name=eth01 address=192.168.5.1 mask=255.255.255.0

ゲートウェイを正しく設定し直す。

Staticになるので、デフォルトゲートウェイが消えちゃうので、デフォルトゲートウェイを設定し直す。

PS C:\WINDOWS\system32> netsh interface ipv4 add route 0.0.0.0./0 'my-eth01' 192.168.11.1

または

route add 0.0.0.0/0 192.168.11.1

DHCPがオフになっちゃうので結局は、ゲートウェイを設定しなくちゃいけないんですよね。Windows のネットワークのDHCPとStatic の排他処理はなんとかならないものか。

省略形

引数名を明示しなくても、順番で指定できる、またネットマスクも省略できる。

netsh interface ipv4 add address name=アダプタ名 address=192.168.5.1 mask=255.255.255.0
netsh interface ipv4 add address アダプタ名  192.168.5.1/24 

使いにくい

linux の ip addr add みたいにアドレスを手軽に追加できないのが辛い。DHCPをオフにしてデフォルトゲートウェイゲートウェイの設定をし直ししなくちゃいけないのが辛い。

うまくメトリックを調整できればいいんだけど。