Azure Stack HCI のプロキシ事情 23H2対応版

656 Views

November 28, 24

スライド概要

profile-image

主に勉強会の資料を公開しています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

SCUGJ 第42回勉強会 ロゴ作成中 2024/11/09 Windows Server and Cloud User Group Japan 後藤 諭史(Satoshi GOTO)

2.

ロゴ作成中 後藤 諭史( Satoshi GOTO )  国内SIerでプリセールスやっています  仮想化製品が主な専門分野です。 が、基本的には雑用係   Microsoft MVP - Cloud and Datacenter Management (Jul.2012 - Jun.2025) Microsoft MVP – Microsoft Azure(Jul.2024 - Jun.2025) 2

3.

ロゴ作成中 本セッション資料ですが、個人で準備した環境において、個人的に実施した検証/結果を基に記載しています。 あくまで個人の意見/見解であり、所属する会社の正式な回答/見解ではない事に留意してください。 3

4.

ロゴ作成中 クラウドサービスを取り扱っているため、セッション当日(2024/09/11)時点の情報となります。 セッション終了直後、いきなり仕様が変更される場合もありますのでご了承ください。 4

5.

ロゴ作成中 エンタープライズ環境あるある Internetへはプロキシ経由でしかアクセスできません 5

6.

ロゴ作成中 Azure Stack HCI は「Azureのサービス」 したがって、Azureにはアクセスできなければならない https://learn.microsoft.com/en-us/azure-stack/hci/concepts/firewall-requirements Azure Express Route および Azure Private Linkは、Azure Stack HCI 23H2で必要なパブリッ クエンドポイントにアクセスできないため、Azure Stack HCI 23H2 またはそれらのコン ポーネントではサポートされていません。 プロキシ環境下では、プロキシ経由での Azure接続が必須 6

7.

ロゴ作成中 プロキシ環境で涙を流したことはありませんか? というわけで、この辺りを整理 7

8.

ロゴ作成中  WinInet ◦ ブラウザなどの対話型アプリケーション用のプロキシ設定 ◦ GUIでは「設定」→「ネットワークとインターネット」→「プロキシ」で設定可能 ◦ Azure Stack HCI ではSet-WinInetProxyコマンドレットの使用が推奨されている  WinHttp ◦ OSのサービスなどで利用されるシステム通信用のプロキシ設定 ◦ コマンドプロンプトの「netsh winhttp proxy」コマンドで設定 ◦ PowerShellでは「Set-WinHttpProxy」コマンドレットで設定可能  環境変数 ◦ WinInet、WinHttpに依存しないアプリケーションに対する、環境変数でのプロキシ設定 ◦ Azure Stack HCI においては、Azure Resource BridgeとAKSのプロキシ設定として使用 8

9.

ロゴ作成中  プロキシサーバーのアドレス ◦ 「http://proxy01.extnetworks.com:8080」などのURI+ポート番号形式で指定  除外設定(プロキシバイパスとかバイパスリスト) ◦ イントラネットなどのプロキシを経由しない通信先を指定 ◦ 無設定だと、WS-ManagementなどのHTTPベースの通信もプロキシにいってしまうの で、いろいろ大変 ◦ ドメインサーバーあての通信や自ネットワークのIPアドレスなどを除外対象に 9

10.

ロゴ作成中  プロキシを使用する際にユーザーID/Passwordによる認証を必要とする プロキシサーバー ◦ IP Addressとユーザー名を紐づける場合、最もお手軽な手法  Azure Stack HCI においては、ユーザーIDとPasswordを用いた認証付きプ ロキシは非サポート ◦ ユーザーIDとPasswordを記憶するのはセキュリティー的な問題がある ◦ そのため、ユーザーID認証は非サポート  Azure Stack HCI ノード、その他の関連するIPアドレスからの通信は、認証 除外すべき 10

11.

ロゴ作成中 Install-Module -Name WinInetProxy -Proxy http://proxy01.extnetworks.com:8080  Install-Moduleコマンドレットの「-Proxy」オプションを使用してプロキシを指定  NuGetのインストール後パッケージの検出で失敗する…… 11

12.

ロゴ作成中 PowerShell モジュール リポジトリが見つからない PowerShell モジュール リポジトリを登録。 その際に「-Proxy」オプションでプロキシを指定 PowerShell モジュール リポジトリが登録される 12

13.

ロゴ作成中 PSGalleryを信頼してインストール  先にRegister-PSRepositoryコマンドレットを実行してリポジトリを取得してから、 Install-Moduleコマンドレットを実行すると無駄がないかも 13

14.
[beta]
ロゴ作成中

Set-WinInetProxy -ProxySettingsPerUser 0 -ProxyServer http://proxy01.extnetworks.com:8080 `
-ProxyBypass "localhost;127.0.0.1;10.*.*.*;192.168.*.*;*.extnetworks.com;AzHost11;AzHost12;AzStackHCI10"

 「-ProxySettingsPerUser」オプションで「0」を指定することでマシン全体に設定
 必要な対象をバイパスリストに追加。なお「<Local>」は現在非サポートなので注意
14

15.

ロゴ作成中  各サーバーの IP アドレスとクラスターのIPアドレス  インフラストラクチャ ネットワークに対して定義した IP アドレス。 Azureポータルでデプロイ時に設定するであろう8個のIPアドレスを定義する必要あり → この辺は「192.168.*.*」等でまとめてしまうのも手  各サーバーの NetBIOS 名およびクラスターのNetBIOS 名 → ベタで指定するか、「AzHost*」とまとめてしまうか  任意のホストまたはサブドメインのドメイン名またはドメイン名と アスタリスク(*)ワイルドカード → 「*.extnetwork.com」のようにドメイン名を指定 15

16.
[beta]
ロゴ作成中

Set-WinhttpProxy -ProxyServer http://proxy01.extnetworks.com:8080 `
-BypassList "localhost;127.0.0.1;10.*.*.*;192.168.*.*;*.extnetworks.com;AzHost11;AzHost12;AzStackHCI10"

 netshコマンドでも実施可能(同じ結果になります)
 必要な対象をバイパスリストに追加。Set-WinInetProxyコマンドレットで登録した内容と
同一のものが推奨
 「<Local>」は現在非サポートなので注意

16

17.

ロゴ作成中 [Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://proxy01.extnetworks.com:8080", "Machine") $env:HTTPS_PROXY = [System.Environment]::GetEnvironmentVariable("HTTPS_PROXY", "Machine") [Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://proxy01.extnetworks.com:8080", "Machine") $env:HTTP_PROXY = [System.Environment]::GetEnvironmentVariable("HTTP_PROXY", "Machine") $no_proxy = "localhost,127.0.0.1,.svc,192.168.0.0/16,172.16.0.0/12,10.0.0.0/8,.extnetworks.com,AzHost11,AzHost12,AzStackHCI10“ [Environment]::SetEnvironmentVariable("NO_PROXY", $no_proxy, "Machine") $env:NO_PROXY = [System.Environment]::GetEnvironmentVariable("NO_PROXY", "Machine")  バイパスリストの書き方に注意。「<Local>」は現在非サポート  プライベートアドレスは、AKSのためにすべて除外する必要あり  ワイルドカードとして「*」はサポートされていないので「.」を使用  「.SVC」はLinux 表記の AKS 内部サービス通信用で、Arc Resource BridgeとAKSに必要 17

18.

ロゴ作成中 $ProxyServer = "http://proxy01.extnetworks.com:8080" Invoke-AzStackHciArcInitialization -SubscriptionID $Subscription -ResourceGroup $RG -TenantID $Tenant ` -Region $Region -Cloud "AzureCloud" -ArmAccessToken $ARMtoken -AccountID $id -Proxy $ProxyServer  Invoke-AzStackHciArcInitializationコマンドレットの「-Proxy」オプションでプロキシ サーバーを指定する 18

19.

ロゴ作成中 ちょいちょいプロキシ設定が登場 19

20.

ロゴ作成中 プロキシを使用しない通信が発生…… といいつつも、Azure Arcのセットアップは正常に終了する 20

21.

ロゴ作成中 21

22.

ロゴ作成中 WS-Managementの通信もプロキシ経由になって しまい、セットアップでエラーが発生する このあたりも 22

23.

ロゴ作成中 環境変数により、リソースブリッジに対してもプロキシの設定がなされ、 プロキシ経由で通信していることが確認できる 23

24.

ロゴ作成中 プロキシを経由せずにダイレクトアクセスを 試みている形跡もある 24

25.

ロゴ作成中 本例の所要時間は 2h57m デプロイ完了(2hとか3hとか……) 25

26.

ロゴ作成中  そんなあなたにAzure Arc Gateway(たぶん) https://learn.microsoft.com/ja-jp/azure-stack/hci/deploy/deployment-azure-arc-gateway-overview 26

27.

ロゴ作成中  プロキシ環境下でも Azure Stack HCI は導入可能です。  プロキシの設定をどれか一つでも忘れると、デプロイ失敗するので注意。 あとバイパス設定も重要。忘れるとデプロイ失敗するので必ず設定を確認  Azure Arc Gateway もちょっと期待。検証実施予定(次回かな?)  よいAzure Stack HCI ライフを! 27

28.

ロゴ作成中  Azure Stack HCI のドキュメント https://learn.microsoft.com/ja-jp/azure-stack/hci/  Azure Stack HCI バージョン 23H2 のプロキシ設定を構成する https://learn.microsoft.com/ja-jp/azure-stack/hci/manage/configure-proxy-settings-23h2 28

29.

ロゴ作成中 29