それマグで!

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

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

Windowsの1つのNICに複数のIPアドレスを割り当てる。(netshコマンド利用)

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 でもコマンドから書き換えが可能。netsh を使えば可能(利用例は最後にまとめておきます。)

## windows の場合は、次のようなコマンドを使う
netsh interface ipv4 show config name=eth01

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.2/24 

消す(利用後)

netsh interface ipv4 delete address eth01 192.168.5.2

使いにくい・・・慣れよう

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

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

まとめ windows の netsh の例(書式は2パターン)

netsh は他の書式でも使えます。具体的にはname=valueを指定する形式になります。

name=eth01 はコントロールパネル(または設定)で確認できる「アダプタ名称」です。日本語担っている場合もあります。扱い易さを重視して、私はアルファベットへ変更しています。

現在のIPアドレスを表示する

## 基本書式
netsh interface ipv4 show config name=eth01
netsh interface ipv4 show address name=eth01
## 省略版
netsh interface ipv4 show config eth01
netsh interface ipv4 sh addr  eth01

指定したIPアドレスを指定したアダプタから除去する

## 基本書式
netsh interface ipv4 del addr address=192.168.0.10  name=eth01
## 簡易書式
netsh interface ipv4 delete address eth01 192.168.5.2
netsh interface ipv4 del addr eth01 192.168.5.1

指定したIPアドレスをアダプタに追加する

## 基本書式
netsh interface ipv4 add address name=eth01 address=192.168.5.1 mask=255.255.255.0
## 省略版
netsh interface ipv4 add addr eth01 address=192.168.5.1/24