goo blog サービス終了のお知らせ 

NT5.0/5.1からNT6.1/6.2/10.0へ

Windows 2000/XP→→7、8→8,1、10(無料3台+有料1台(メイン))な暇人のブログです。

スクリプト(バッチ等)によるネットワーク構成切替(など)

2021-01-01 02:54:04 | PCメモ&その他
何が目的かと言うとPPPoE(IPv4)環境と、
IPv6(IPoE) + IPv4 over IPv6 環境とのトグル切替である。

そのためのコマンド要素について、下記に雑記としてまとめ…書き殴る。

※管理者権限で実行する必要がある (凡例:# hogehoge)

■ルーティングテーブルいじり
■■(デフォルト)ゲートウェイ変更
# route -p add <DEST> mask <MASK> <GWIP> metric <M>
意味:DEST/MASK宛てのIPパケットをGWIPにrouteするメトリックMのstatic routeを設定する。
ex) route -p add 0.0.0.0 mask 0.0.0.0 192.168.123.456 metric 1

# route -p delete <DEST> mask <MASK> <GWIP> metric <M>
意味:指定したパラメタに一致するstatic routeを削除する。

% route print
ルーティングテーブル表示。「固定ルート」の所が上記の対象。

(ちなみに0.0.0.0/0.0.0.0宛てのGWをDGW(デフォルトゲートウェイ)と普通呼ぶ)

■ネットワークアダプタの有効化/無効化
# netsh interface set interface "<アダプタ名>" disable
# netsh interface set interface "<アダプタ名>" enabled
意味:アダプタ名のネットワークアダプタを無効/有効にする。
 アダプタ名はコンパネから弄る奴と同一の文字列を指定する。
応用:DGWだけ切り替えるとDoHを使うブラウザ等が混乱するため、
 I/FのON/OFFにより全sessionを強制RST(リセット)。

■ネットワークアダプタのIPv6の有効化/無効化
これは少しややこしい。command lineには無さそうでPowershellを併用する。

(1)
次の1行ファイルをそれぞれ作成し適当な場所に設置する。
なおアダプタ名は上のnetshコマンドのものと同様。

"disable-ipv6.ps1":

Disable-NetAdapterBinding -Name "<アダプタ名>" -ComponentID ms_tcpip6

"enable-ipv6.ps1":

Enable-NetAdapterBinding -Name "<アダプタ名>" -ComponentID ms_tcpip6

(2)
次のコマンドを実行する。
ここでは、"C:\Program Files\hogehoge\"パス配下に(1)を設置した例である。

# powershell -ExecutionPolicy RemoteSigned C:\Program` Files\hogehoge\disable-ipv6.ps1

# powershell -ExecutionPolicy RemoteSigned C:\Program` Files\hogehoge\enable-ipv6.ps1

※ここで C:\Program` Files の ` は「バッククォート(0x60)」である。
 決してアポストロフィ/シングルクォート(')ではない。
 バッククォート(0x60) は、「Shift」+「@」で入力できます
※パス名に空白を含むので、空白自体をエスケープすると言う訳である。
 つまりPowershellコマンドラインのエスケープは0x60である。
 コマンドプロンプトと異なり ""や''で囲む指定はPowershellでは
 うまく行かないようである。

■その他
% ipconfig /displaydns
意味:PCのDNSキャッシュを全て列挙する。クソ長いのでテキストファイルに
 リダイレクト推奨

% ipconfig /flushdns
意味:DNSキャッシュをフラッシュするおなじみのコマンド。

% netsh interface ipv6 show neighbors
意味:IPv6における arp -a 相当。(詳しくはググって)
※ neighbours ではダメである。

(Powershell)
Get-NetAdapterBinding -Name "<アダプタ名>" -ComponentID ms_tcpip6
意味:ipv6の状態を表示する。
考察:ComponentID は他に色々ありそうだが調べてない。
 Get-NetAdapterBinding -Name "<アダプタ名>"
 とだけ実行すれば色々閃くかも知れない。

以上
コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ipv6トンネルを無効にする on... | トップ | コマンドラインからPCをスリ... »

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

PCメモ&その他」カテゴリの最新記事