いきなりですが、ハマりました(笑)

ARPテーブルを静的に設定したい場面に遭遇したのですが、相手はWindows Server 2008 R2。それもNICが2枚差してあるサーバ機です。
まず、環境ですがルータが192.168.11.1で、このセグメント用のNICは192.168.11.11に設定してあります。もう1枚のNICは172.16.***.***になっています。

最初は素直にコマンドプロンプトから
arp -s 192.168.11.1 ff-ff-ff-ff-ff-ff (このMACアドレスは適当に書きました。サーバにはちゃんと設定しています)
なんてやってみました。すると、なぜか2枚目の172.16.***.***の方に設定されちゃう。

1枚目のNICに設定したいので、次に
arp -s 192.168.11.1 ff-ff-ff-ff-ff-ff 192.168.11.11 (同じくこのページでのMACアドレスは適当です。以下同様)
なんてやってみましたが、エラーが出て受け付けてくれません。

いろいろ検索しますが、良い情報に巡り合えませんでした。しばらく調べたところ、「arp コマンド」ではなく、「netshコマンド」で設定する事を見つけます。この辺は海外のサイトの方が事例が多いですね。

ここまでくればあと一息。「システム管理者の休日 by ypcat」さんのサイトを見つける事が出来ました。

netshコマンドでは
netsh interface ipv4 set neighbors “インターフェース名” IPアドレス Macアドレス
で設定できるらしい。でも、インターフェース名って何?確かに先のシステム管理者の休日さんでは「いつもの”ローカル エリア接続”とかです。」と書かれていますが、???

ためしに、インターフェース名を調べてみます。
netsh interface ipv4 show interface
としてみます。どうやら私の場合は「インターネット接続」らしい。コマンドラインで「インターネット接続」で良いの?と、半信半疑で設定してみます。

netsh interface ipv4 set neighbors “インターネット接続” 192.168.11.1 ff-ff-ff-ff-ff-ff
うん、今度はコマンドが通ったらしい。

arp -aで確認したら・・・見事設定されていましたよ!♪