windows でも ip addr add したい。
mac や Linux を使っていると、 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.2/24
消す(利用後)
netsh interface ipv4 delete address eth01 192.168.5.2
使いにくい・・・慣れよう
linux の ip addr add みたいにアドレスを手軽に追加できないのが辛い。DHCPをオフにしてデフォルトゲートウェイとゲートウェイの設定をし直ししなくちゃいけないのが辛い。
うまくメトリックを調整できればいいんだけど。