NETWORK ENGINEER BLOG

Tips and Reviews for Engineers

Ericom Connect のプリンタリダイレクト機能について

前提条件

  • 以下の OS/ソフトウェアバージョンを使用
    • Windows Server 2016
    • Ericom Connect 8.2
  • Access Pad を使用
  • [設定]-[デフォルト]-[詳細設定]-[セッション構成]-[ネイティブクライアントの選択]で「Blaze」を指定
    • 「EricomRDP」の仕様については、以下「EricomRDP の動作仕様」を参照

UPD*1のインストール

以下のサイトから、HP Universal Postscript(PS)Printing Driver をダウンロードし、 RDS サーバにインストールします。インストール方式は「ダイナミック」を選択します。

HP Customer Support - Software and Driver Downloads

RDS Server が Windows Server 2016 の場合、以下のファイル名になります。
HP Universal Print Driver for Windows PostScript (64-bit)
upd-ps-x64-6.6.0.23029.exe

Ericom Connect の設定

管理コンソールに接続し、[設定]-[詳細]の「プリンタ構成」のセクションで、以下を設定します。

プリンタリダイレクションモード 汎用
HP汎用ドライバーモードを有効化 はい
PS2PDFを有効化 いいえ
高度なPDF印刷コマンド -shell*2

クライアントの設定

AccessPad からアプリケーションを起動後、印刷画面を開き、リダイレクトされているクライアントのプリンタドライバを選択して印刷します。

EricomRDP の動作仕様

EricomRDP には、以下の制限事項があります。

  • EricomRDP を使用した場合、セッションシェアリングが利用できません。
  • EricomRDP 利用時に、文字入力変換確定後に再変換候補を出力させるために、[変換]キーを押しても、再変換候補が出力されません。
  • EricomRDP においてローカルのドライブをリダイレクトさせる場合、特定のドライブを指定したドライブのリダイレクトはできません。また、ダイナミックドライブズ機能が正しく機能しません。
  • EricomRDP を利用した場合、タイムゾーンのリダイレクトは常に有効です。無効にすることはできません。
  • Ericom SecureGateway経由の場合、EricomRDPセッションの自動再接続はできません。

参考:Ericom Connect リリースノート

以上

*1:ユニバーサルプリンタドライバー

*2:文字化け防止のため、クライアントPCでPDFに変換してから印刷する設定です。クライアントに Adobe Acrobat Reader がインストールされている必要があります。

Windows Server 2016 Hyper-V インストール

Windows Server 2016 上で Hyper-V をインストールする際の手順例です。

Hyper-V の要件

  • ハードウェア要件として、以下を満たしている必要があります。
    • VM モニターモード拡張機能
    • 第 2 レベルのアドレス変換(SLAT) 機能
    • 仮想化支援機能
    • Intel Virtualization Technology (Intel VT)
    • ハードウェア データ実行防止(DEP) 機能
    • XD bit (execute disable bit)

管理者権限でコマンドプロンプトを起動し、以下を実行することで要件を満たしているか確認できます。

systeminfo.exe

Hyper-V の有効化

PowerShell を利用して、Windows Server 2016 で Hyper-V の役割を有効にします。

Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart

次のコマンドで Hyper-V の役割がインストールされていることを確認できます。

Get-WindowsFeature -ComputerName <computer_name>  

仮想スイッチの作成

作成する仮想スイッチのタイプを決定します。

接続タイプ
  • 外部:仮想マシンに物理 NW へのアクセスを許可し外部 NW 上のサーバーと通信可能にします。*1
  • 内部:同じ Hyper-V 上の仮想マシン間及び、仮想マシンとホスト OS 間の通信を可能にします。
  • プライベート:同じ Hyper-V 上の仮想マシン間の通信のみを許可します*2

「外部」を選択した場合は、使用する NIC と次の表に記載されているその他のオプションを選択します。

  • 管理 OS にこの NIC の共有を許可する:ホストが仮想スイッチ用に構成した設定を使用できます。*3
  • SR-IOV を有効にする:仮想マシンでシングルルート IO 仮想化(SR-IOV)を有効化します。*4

次のコマンドで既存の NIC を確認し、仮想スイッチに使用する NIC 名をメモします。

Get-NetAdapter

出力例は以下のとおりです。本例では Ethernet0 を使用します。

PS C:\Users\Administrator.MY> Get-NetAdapter
Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Ethernet1                 Intel(R) 82574L Gigabit Network Conn...       4 Up           00-50-56-86-5B-AB         1 Gbps
Ethernet0                 vmxnet3 Ethernet Adapter                      3 Up           00-50-56-86-4F-2B        10 Gbps

"ExternalSwitch"という名前の外部スイッチを作成し、管理OSにこの NIC の共有を許可する場合、以下のコマンドを実行します。

New-VMSwitch -name ExternalSwitch  -NetAdapterName Ethernet0 -AllowManagementOS $true  

"InternalSwitch"という名前の内部スイッチを作成する際は以下のコマンド実行します。

New-VMSwitch -name InternalSwitch -SwitchType Internal


"PrivateSwitch"という名前のプライベートスイッチを作成する際は以下のコマンド実行します。

New-VMSwitch -name PrivateSwitch -SwitchType Private

仮想マシンの作成

仮想マシンで使用する仮想スイッチの名前を取得します。

Get-VMSwitch  * | Format-Table Name  

新規に仮想マシンを作成する際は以下のコマンドを使用します。

New-VM -Name <Name> -MemoryStartupBytes <Memory> -BootDevice <BootDevice> -VHDPath <VHDPath> -Path <Path> -Generation <Generation> -Switch <SwitchName>  
  • Name は仮想マシンの名前を設定します。
  • MemoryStartupBytes は、起動時に仮想マシンで使用できるメモリの量です。
  • BootDevice は、仮想マシンが起動するデバイス*5です。
  • VHDPath は、使用する仮想マシンディスクのパスです。
  • Path は、仮想マシン構成ファイルを格納するパスです。
  • Generation は仮想マシンの世代です。VHD には世代1、VHDX には世代2を使用します。
  • Switch は、仮想マシンが使用する仮想スイッチの名前です。

以下の例では、4GBのメモリを搭載したWin2016VMという名前の第2世代の仮想マシンを作成します。
Win2016.vhdx という名前の新規のハードディスクをサイズ20GBで作成し、ExternalSwitchという名前の仮想スイッチに接続します。仮想マシン構成ファイルは、VMData フォルダに格納されます。

New-VM -Name Win2016VM -MemoryStartupBytes 4GB -BootDevice VHD -NewVHDPath .\VMs\Win2016.vhdx -Path .\VMData -NewVHDSizeBytes 20GB -Generation 2 -Switch ExternalSwitch

以下の例は新規に Windows10 の仮想マシンを作成するスクリプト例です。

# Set VM Name, Switch Name, and Installation Media Path.
$VMName = 'TESTVM'
$Switch = 'ExternalSwitch'
$InstallMedia = 'C:\Users\Administrator.MY\Desktop\ja_windows_10_multi-edition_version_1709_updated_dec_2017_x64_dvd_100406736.iso'

# Create New Virtual Machine
New-VM -Name $VMName -MemoryStartupBytes 2147483648 -Generation 2 -NewVHDPath ".\VMs\$VMName\$VMName.vhdx" -NewVHDSizeBytes 53687091200 -Path ".\VMData\$VMName" -SwitchName $Switch

# Add DVD Drive to Virtual Machine
Add-VMScsiController -VMName $VMName
Add-VMDvdDrive -VMName $VMName -ControllerNumber 1 -ControllerLocation 0 -Path $InstallMedia

# Mount Installation Media
$DVDDrive = Get-VMDvdDrive -VMName $VMName

# Configure Virtual Machine to Boot from DVD
Set-VMFirmware -VMName $VMName -FirstBootDevice $DVDDrive

作成した仮想マシンを起動するには以下のコマンドを実行します。

Start-VM -Name TESTVM

仮想マシンに接続するには以下のコマンドを実行します。

VMConnect.exe

参考書籍

以上

*1:同じ Hyper-V サーバー上の仮想マシン間も相互に通信可能です。

*2:隔離されたテストドメインのような環境を構築する際に便利です。

*3:QoS 設定、セキュリティ設定、または Hyper-V 仮想スイッチのその他の機能など 等

*4:SR-IOV は仮想マシンが(オーバヘッドとなる)ハイパーバイザー層を介さずに直接 I/O する機能です

*5:ネットワークアダプタまたは、仮想ハードディスク

Smooth File のファイル交換ソリューションについて

Smooth File とは

プロット社が開発・提供する「ファイル交換ソリューション」です。「ファイル無害化機能*1」により、分離されたネットワーク間での安全なファイル交換を実現します。詳細についてはこちらを参照ください。

ダブルブラウザとの連携について

前回記事「インターネット分離時のファイル共有について」ではファイルサーバーを利用して、ユーザ間でファイル共有を行う例をご紹介しましたが、本記事では分離されたネットワーク間で、Smooth File を使用して、同一ユーザーがファイルを交換する例について紹介します。

Smooth File の展開

Smooth File は物理アプライアンス版と、VMware や Hyper-V 上で動作する仮想アプライアンス版が提供されております。本例では仮想アプライアンス(VMware 版)を使用します。ova 形式で提供されており、インストール方法について割愛します。

インストール完了後、"https://(IP アドレス)/smoothfile/top/login/1_admin" にアクセスします。こちらが管理画面となり、基本的な設定はこちらで行います。
f:id:FriendsNow:20170902233441p:plain

なお、仮想アプライアンスは、2つの仮想ネットワークアダプタが付与されていますが、2つ目のアダプタ(eth1)の IP アドレスはコンソール経由でのみ設定可能です。
f:id:FriendsNow:20170902233457p:plain

ネットワーク分離

Smooth File のネットワーク分離エディションでは、「管理グループ」と「インターネットセグメント*2」及び、「情報セグメント*3」の3つがデフォルトで定義されおり、追加・削除はできません。本例では、「インターネットセグメント」は、RDS サーバからのみ接続可能とし、クライント端末は「情報セグメント」への接続のみ可能とします。なお、2つあるネットワークアダプタのうち「eth0」を「インターネットセグメント兼管理用」とし、「eth1」を「情報セグメント」とします。

検証環境

f:id:FriendsNow:20170902233629p:plain:w600

Smooth File の設定例

ネットワークアドレス設定

「オプション」タブで「eth0」のネットワークアドレスを設定します。上述のとおり「eth1」は、コンソールのみで設定変更可能です。
f:id:FriendsNow:20170902235053p:plain

セグメント管理設定

「セグメント管理」タブで、各セグメントの設定を行います。
f:id:FriendsNow:20170903011142p:plain

「情報セグメント」にチェックをして、「セグメント情報編集」をクリックします。
f:id:FriendsNow:20170903011331p:plain

「背景カラー」をオレンジを指定します。
f:id:FriendsNow:20170903011753p:plain

他の設定はデフォルトとします。画面下にある「登録」をクリックします。
f:id:FriendsNow:20170903011847p:plain

次に「インターネットセグメント」にチェックをして、「セグメント情報編集」をクリックします。
f:id:FriendsNow:20170903012102p:plain

「ログイン許可 IP」に RDS サーバ(100.64.100.111)を指定し「無変換時のみ上長承認」を「no」に指定します。
f:id:FriendsNow:20170906124909p:plain

セグメントに所属する職員を明示的に設定する場合は「所属職員管理」をクリックします。
f:id:FriendsNow:20170903012844p:plain

「職員管理」タブへ遷移し、こちらで設定していきます。※本例では後述の AD 連携にて職員情報を取得するため設定しません。
f:id:FriendsNow:20170903013121p:plain

職員管理設定(AD 連携設定)

AD 連携を行う前に AD に利用ユーザを定義する必要があります。本例では User01,02 の承認者に Manager01、User03,04 の承認者に Manager02 を定義することを前提とします。
f:id:FriendsNow:20170903014259p:plain

「オプション」タブから「ActiveDirectory 連携設定」をクリックします。
f:id:FriendsNow:20170903013549p:plain

「情報セグメント」を選択し「連携先情報編集」をクリックします。
f:id:FriendsNow:20170903013729p:plain

AD の情報を設定します。
f:id:FriendsNow:20170906125114p:plain

「権限グループ」で「受信者(情報セグメント」を選択し、AD に接続可能なアカウントを設定後「登録」をクリックします。
f:id:FriendsNow:20170906125243p:plain

「情報セグメント」を選択し「接続テスト」をクリックします。
f:id:FriendsNow:20170906125534p:plain

AD 上のアカウントを入力後「接続テスト」をクリックし「サーバの接続」と「職員情報の取得」に「成功」と表示されれば OK です。
f:id:FriendsNow:20170906125556p:plain

「情報セグメント」を選択し「LDAP 同期」をクリックします。
f:id:FriendsNow:20170906125611p:plain

「職員管理」タブをクリックし、AD 上のユーザ情報が登録され、所属セグメントが「情報セグメント」となっていることを確認します。
f:id:FriendsNow:20170906125644p:plain

「インターネットセグメント」についても同様に設定し、設定後「LDAP 同期」をクリックします。
f:id:FriendsNow:20170906125819p:plain

「職員管理」タブをクリックし、ユーザの所属セグメントが「インターネットセグメント」が追加されたことを確認します。
f:id:FriendsNow:20170906125908p:plain

「セグメント管理」の「所属人数」もそれぞれ反映されていることを確認します。
f:id:FriendsNow:20170906125921p:plain

職員管理設定(承認者登録設定)

インターネットセグメント(ファイル送信側)で、ユーザ単位で承認者を設定します。
「職員管理」タブをクリックし、対象のユーザ(本例では user01)を選択後、「職員編集」をクリックします。
f:id:FriendsNow:20170906130813p:plain

「承認者一覧」をクリックします。
f:id:FriendsNow:20170906130909p:plain

承認者(本例では Manager01)を選択し「確定」をクリックします。
f:id:FriendsNow:20170906130958p:plain

「承認者一覧」に「承認者」が登録されたことを確認し「登録」をクリックします。
f:id:FriendsNow:20170906131047p:plain

「職員管理」タブで対象ユーザの「承認者登録」が「済」となっていることを確認します。
f:id:FriendsNow:20170906131234p:plain

(注)なお承認者設定は、一括して設定ができずユーザ単位で設定する必要があります。
f:id:FriendsNow:20170906130401p:plain

ファイル送受信手順

ファイルのアップロード

仮想ブラウザを起動し、以下の URL からインターネットセグメントへアクセスします。

http://100.64.100.21/smoothfile/top/login_ldap?lid=2

user01 でログインします。
f:id:FriendsNow:20170906132125p:plain

「ファイル転送 送信」タブで「送信」をクリックします。
f:id:FriendsNow:20170906132228p:plain

「ファイルを選択」をクリックします。
f:id:FriendsNow:20170906132422p:plain

対象のファイルを選択して「開く」をクリックします。
f:id:FriendsNow:20170906132433p:plain

「登録」をクリックします。
f:id:FriendsNow:20170906132406p:plain

「ファイル転送 送信」タブでファイルが存在することを確認します。
f:id:FriendsNow:20170906132544p:plain

ファイルを選択し「詳細」をクリックします。
f:id:FriendsNow:20170906132637p:plain

ファイルの詳細を確認できます。
f:id:FriendsNow:20170906132708p:plain

ファイルのダウンロード

ローカルブラウザを起動し、以下の URL から情報セグメントへアクセスします。

http://100.64.100.22/smoothfile/top/login_ldap?lid=1

user01 でログインします。
f:id:FriendsNow:20170906133006p:plain

「ファイル転送 受信」タブで受信可能なファイルを確認します。承認されていないため、先ほど送信したファイルは存在しません。
f:id:FriendsNow:20170906133139p:plain

ファイルの転送承認

仮想ブラウザを起動し、以下の URL からインターネットセグメントへアクセスします。

http://100.64.100.21/smoothfile/top/login_ldap?lid=2

manager01 でログインします。
f:id:FriendsNow:20170906133440p:plain

「承認一覧」タブでファイルを選択し「承認」をクリックします。
f:id:FriendsNow:20170906133539p:plain

ファイルのダウンロード

前述の手順で「情報セグメント」へアクセスし、「ファイル転送 受信」タブで受信可能なファイルを選択後、「詳細」をクリックします。
f:id:FriendsNow:20170906133945p:plain

選択したファイルがダウンロード可能となります。
f:id:FriendsNow:20170906134022p:plain

以上

*1:Microsoft Office や PDF ファイルから、マクロ領域やメタ領域を除去する機能

*2:インターネットに接続するネットワーク

*3:インターネットに接続しないイントラネットワーク

インターネット分離時のファイル共有について

インターネット分離とは

近年、標的型サイバー攻撃による情報漏洩インシデントが多発しています。この事態を受けて、総務省・IPA*1・NISC*2は個人情報などの機密情報を扱うシステムをインターネットから分離する事を推奨しています。「インターネット分離」とは、インターネット経由で攻撃者が重要システムにアクセス出来る経路を断絶することを意味します。

Ericom Connect によるインターネット分離

公開アプリケーションでブラウザを配信し、インターネットには配信されたブラウザ経由で接続、(機密情報のある)イントラサイトには既存のローカルブラウザで接続することで、機密情報の漏えいを防止するソリューションです。Ericom 社製品の日本国内における総販売代理店であるアシスト社は「ダブルブラウザソリューション」と呼んでいます。 詳細についてはこちらを参照ください。

インターネット分離時のファイル共有

インターネット分離をした際、ファイルの共有が課題となります。本記事では、Ericom Connect のダブルブラウザ利用時に、ユーザ間でファイル共有を行う例について紹介します。

RDS サーバにファイルサーバを接続

RDS サーバにファイルサーバ上のフォルダをドライブマップするためのスクリプトを作成します。

@echo off
rem サーバ「ad01.example.com」の「share」フォルダを X: ドライブマップ
net use X: \\ad01.example.com\share /persistent:yes

「ファイル名を指定して実行」を起動して「gpedit.msc」と入力し、「OK」をクリックします。
f:id:FriendsNow:20170826004813p:plain

「ユーザーの構成」 > 「Windows の設定」 > 「スクリプト(ログオン/ログオフ)」 > 「ログオン」 をダブルクリックし「追加」をクリックします。
f:id:FriendsNow:20170826004849p:plain

「スクリプト名(N):」に作成したスクリプトのパスを設定し「OK」クリックします。
f:id:FriendsNow:20170826005037p:plain

「コンピューターの構成」 > 「管理テンプレート」 > 「システム」 > 「グループポリシー」 > 「ログオンスクリプトの遅延を構成する」 をダブルクリックします。
f:id:FriendsNow:20170826005051p:plain

「無効」にチェックし「OK」クリックします。
f:id:FriendsNow:20170826005105p:plain

「コンピューターの構成」 > 「管理テンプレート」 > 「システム」 > 「スクリプト」 > 「ログオンスクリプトを同期的に実行する」 をダブルクリックします。
f:id:FriendsNow:20170826005125p:plain

「有効」にチェックし「OK」クリックします。
f:id:FriendsNow:20170826005142p:plain

「コンピューターの構成」 > 「管理テンプレート」 > 「システム」 > 「ログオン」 > 「コンピュータの起動およびログオンで常にネットワークを待つ」 をダブルクリックします。
f:id:FriendsNow:20170826005203p:plain

「有効」にチェックし「OK」クリックします。
f:id:FriendsNow:20170826005214p:plain

「gpupdate /force」を実行します。
f:id:FriendsNow:20170826005222p:plain

「ファイル名を指定して実行」を起動して「rsop.msc」と入力し、「OK」をクリックします。
f:id:FriendsNow:20170826005232p:plain

ポリシーが正しく適用されていることを確認します。
f:id:FriendsNow:20170826005243p:plain

ファイルサーバの接続確認

クライアント端末で Access Pad を起動し「user01」でログインします。
f:id:FriendsNow:20170826005259p:plain

「Internet Explorer」をクリックします。
f:id:FriendsNow:20170826005316p:plain

「ファイル」タブから「名前を付けて保存」をクリックします。
f:id:FriendsNow:20170826005333p:plain

ファイルサーバ上のフォルダがドライブマップされている事を確認します。
f:id:FriendsNow:20170826005345p:plain

ファイルサーバへのファイル保存と共有

仮想ブラウザでダウンロードしたインターネット上のファイルをファイルサーバへ保存します。
f:id:FriendsNow:20170826005405p:plain

クライアント端末で Access Pad を起動し「user02」でログインします。
f:id:FriendsNow:20170826005415p:plain

ファイルサーバに保存したファイルを閲覧可能なアプリケーションをクリックします。本例では「PDF」を使用します。
f:id:FriendsNow:20170826005435p:plain

対象のファイルを選択し「開く」をクリックします。
f:id:FriendsNow:20170826005450p:plain

ファイルが閲覧可能なことを確認します。
f:id:FriendsNow:20170826005500p:plain

以上

*1:独立行政法人 情報処理推進機構

*2:内閣サイバーセキュリティセンター

ダブルブラウザ連携キットについて

ダブルブラウザ連携キットについて

ClickOnce を用いてクライアントにモジュール*1のインストールを行う仕組みを提供します。ClickOnce はユーザ毎にインストール作業が必要となります。

実装方法

ClickOnce では共有ファイルサーバを利用した配布と、Web を用いた配布をサポートしています。本例では、共有ファイルサーバを利用した配布を行います。

共有ディレクトリへのモジュール配置

  • 本例では、ad01.example.com サーバを共有ファイルサーバーとして使用します。
  • 連携キットの本体である「WBrowserLauncher.zip」を展開し、任意の場所へ配置します。

f:id:FriendsNow:20170815012755p:plain

「WBrowserLauncher」フォルダを共有します。
f:id:FriendsNow:20170815012809p:plain

なお、URL 自動判別オプションを配布する場合は「contents」フォルダ内へ「kotomine.zip」を展開します。
f:id:FriendsNow:20170815012836p:plain

設定ファイルの編集

「WBrowserLauncher」>「WBConfigTool」フォルダ内の「WBConfigTool.exe」を実行します。
f:id:FriendsNow:20170815012958p:plain

環境に合わせて必要な設定を行います。
f:id:FriendsNow:20170815013019p:plain

URL 自動判別オプションを利用する場合は、チェックを ON にします。*2
f:id:FriendsNow:20170815013038p:plain

また、URL 自動判別オプションに必要な設定を行います。詳細は「Ericom Connect URL 自動判別について」を参照ください。
f:id:FriendsNow:20170815013058p:plain

ユーザインストール操作

クライアント PC から以下のパスへアクセスします。

\\ad01.example.com\WBrowserLauncher\WBrowserLauncher.application

f:id:FriendsNow:20170815013117p:plain

自動で Access Pad がインストールされ、公開アプリケーション(本例では chrome)が利用できます。*3
f:id:FriendsNow:20170815013201p:plain

URL 自動判別オプションを利用する場合は、ブラウザ拡張をインストールする必要があります。管理権限で実行したコマンドプロンプトで以下のコマンドを実行します。

IE-Addon
BrowserLauncher.exe -unregisterAddon -registerAddon
●Chrome 拡張
BrowserLauncher.exe -registerChromeExt 

f:id:FriendsNow:20170815013215p:plain

アンインストール

スタートメニューにある「WBrowser Launcher のアンインストール」を実行します。
f:id:FriendsNow:20170815013402p:plain

「アンインストールと変更」をクリックします。
f:id:FriendsNow:20170815013417p:plain

「このコンピュータからアプリケーションを削除します。」を選択して「OK」をクリックします。
f:id:FriendsNow:20170815013427p:plain

以上

*1:Access Pad や URL 自動判別オプション等

*2:別途オプションの購 入が必要です。

*3:次回以降は、デスクトップのショートカットで起動できるようになります。

Ericom Connect URL 自動判別について

URL 自動判別オプションについて

Ericom 製品では、インターネット向けの仮想ブラウザーとイントラネット向けのブラウザーの 2 つの (ダブル) ブラウザーが必要ですが、当該オプションを使うことによって、イントラ・インターネットの自動判別とブラウザーアクセスを実現できます。詳細についてはこちらを参照ください。

URL 自動判別オプション要件

  1. Microsoft .NET Framework 3.5、または Microsoft .NET 4.* Framework のインストール
  2. Ericom AccessPad Client のインストール
  3. Internet Explorer/Chrome/Firefox の最新版のインストール
  4. クライアント端末が Active Directory に所属

URL 自動判別オプションのユースケース

  • ユーザーが Outlook や Adobe Reader といったアプリケーションからリンクをクリックした際、仮想ブラウザーとイントラネット向けブラウザーを識別して起動します。
  • ユーザーがイントラネットのブラウザーからインターネットのリンクをクリックした際、URL 自動判別オプションのアドオン・拡張がリンクを AccessPad で開きます。

Ericom Connect 側の設定

対象のアプリケーション(本例では仮想ブラウザの chrome)の「基本」で「パラメータ」に「${param1}」を入力します。*1
f:id:FriendsNow:20170823214042p:plain

「エンドユーザからアイコンを隠す」を「はい」に変更します。*2
f:id:FriendsNow:20170823214051p:plain

次に「要件」を設定変更します。
f:id:FriendsNow:20170814155818p:plain

「許可される起動方法」を「標準」から「すべて」に変更します。
f:id:FriendsNow:20170814155826p:plain

上記設定をしない場合、クライアントで仮想ブラウザの起動に失敗し以下のエラーが出力されます。

接続に失敗しました
操作に失敗しました(コード 6).このリソースは制限のために起動することが出来ません。
システム管理者に問い合わせてください。

f:id:FriendsNow:20170814155835p:plain

URL 自動判別オプションのインストール

インストール方法は以下の2つがあります。

  • MSI によるインストール
  • 連携キット(ClickOnce 版)による配布

※本例では MSI によるインストールを紹介します。

Setup.x86.msi を実行します。
f:id:FriendsNow:20170814155116p:plain

「次へ」をクリックします。
f:id:FriendsNow:20170814155128p:plain

インストールする方法を選択します。
f:id:FriendsNow:20170814155143p:plain

URL を判別して起動方法を変更するための拡張をインストールします。*3

  • IE Add-on: Internet Explorer にアドインをインストールします。
  • Chrome extensions: Chrome に拡張をインストールします。
  • Firefox extension: Firefox に拡張をインストールします。
  • Config Editor: KOTOMINE の設定とイントラネット URL の一覧を編集するツールです。*4

設定をカスタマイズします
f:id:FriendsNow:20170814155335p:plain

  • イントラネット URL の一覧のファイルパス: URL が記載されたファイルのパスです。
  • イントラネットのブラウザー: イントラネットの URL を開くためのブラウザーです。*5
  • AccessPad のパラメーター: AccessPad を起動する URI やアプリ名、グループです。

「インストール」ボタンをクリックします。
f:id:FriendsNow:20170814155349p:plain

Windows 8 以上の場合、「プログラムの関連付けを設定する」画面が表示されます。「すべて選択」 のチェックボックスをチェックし、保存ボタンをクリックします。
f:id:FriendsNow:20170814155411p:plain

「完了」をクリックします。
f:id:FriendsNow:20170814155423p:plain

(2017.8.23 追記)上記「プログラムの関連付け」において、既定のブラウザに KOTOMINE の「BrowserLauncher」を指定する必要があります。「BrowserLauncher」が指定されていない場合、PDF 等のリンクをクリックした際に、仮想ブラウザが正常に起動しない場合があります。
Config Editor を起動し「既定のブラウザーとして設定」をクリックします。
f:id:FriendsNow:20170814205754p:plain

「すべて選択」をチェックし、「保存」をクリックします。
f:id:FriendsNow:20170814205807p:plain

~ここまで~

インストール後 (Chrome 拡張がインストールされた場合)

Chrome の予測サービスをオフにします。*6
f:id:FriendsNow:20170814155510p:plain

イントラネット URL リストの編集*7

インストール先フォルダーに格納された InternalUrls ファイルをメモ帳などで編集します。
f:id:FriendsNow:20170814155612p:plain

本例では、イントラネット向けサイトとして"ad01.example.com"を設定します。
f:id:FriendsNow:20170814155624p:plain

接続確認

上記 URL へアクセスすると、ローカルブラウザでアクセスします。
f:id:FriendsNow:20170814155901p:plain

URL リストに記載されていない URL(本例では google.com)へアクセスすると、AccessPad を起動し、仮想ブラウザで接続します。
f:id:FriendsNow:20170814155915p:plain

以上

*1:本設定をしない場合、ローカルブラウザで入力した URL のリダイレクトに失敗します。

*2:上記パラメータの設定を行った場合、アイコン経由の起動が失敗するためです。アイコンも必要な場合は、別途同じアプリケーションを公開する必要があります。

*3:各ブラウザがクライアントにインストールされている場合、表示されます。

*4:デフォルトではインストールされません。

*5:対応ブラウザーがインストールされた場合、選択可能となります。

*6:予測サービスにより AccessPad がその時点で起動することを防ぐためです。

*7:Config Editor がインストールされてない場合

Ericom Connect インストール手順

Ericom Connect とは

Windows Server の Remote Desktop Services(RDS)、VDI などのクライアント仮想化サーバーと、各クライアントを仲介するコネクションブローカーです。詳細についてはこちらを参照ください。

Ericom Connect 要件

各サーバーのシステム要件についてはこちらを参照ください。

Ericom Connect インストールの事前作業

  • Ericom Connect サーバーをドメインへ参加させます。
  • Ericom Connect サーバーインストール用のアカウントに UPN(User Principal Name)を登録します。

f:id:FriendsNow:20170814003606p:plain

SQL Server 2014 Express をインストールします。*1
f:id:FriendsNow:20170814003734p:plain

「SQL Server Browser」サービスのスタートアップの種類を「自動」に変更します。
f:id:FriendsNow:20170814003752p:plain

認証モードを「混合モード」に変更し、任意の sa アカウント用パスワードを入力します。
f:id:FriendsNow:20170814003808p:plain

他パラメータはデフォルトを使用します。
f:id:FriendsNow:20170814003904p:plain

「SQL Server 2014 構成マネージャー」を起動します。
f:id:FriendsNow:20170814003930p:plain

「プロトコル」の「TCP/IP」を有効にし、SQL Server のサービスを再起動します。
f:id:FriendsNow:20170814004028p:plain

Ericom Connect インストール

EricomConnect.exe を実行します。
f:id:FriendsNow:20170814004233p:plain

「Custom」を選択します。
f:id:FriendsNow:20170814004509p:plain

インストールするコンポーネントを選択します。 本例では RDS を別建てし ESG*2 をインストールしないことを前提としています。
f:id:FriendsNow:20170814004524p:plain

インストール後「Ericom Connect Configuration Tool」が自動で起動するので「Configuration Analyzer」をクリックします。
f:id:FriendsNow:20170814004616p:plain

「Connect Administrator」の項にドメイン管理者パスワードを入力し、「Analyze」をクリックします。
f:id:FriendsNow:20170814004628p:plain

全ての項目が緑色になることを確認し、「Return to Configuration Tool」をクリックします。
f:id:FriendsNow:20170814004643p:plain

「New Grid」をクリックします。
f:id:FriendsNow:20170814004655p:plain

「Grid Name」に任意のグリッド名を入力、Server User のパスワードを任意の値に変更し「Initialize Database..」をクリックします。
f:id:FriendsNow:20170814004726p:plain

「Completed」の表示を確認後、Configuration Tool を終了します。
f:id:FriendsNow:20170814004804p:plain

"https://「Connect サーバーアドレス」:8022/admin" にアクセスし、Connect サーバー管理者でログインします。
f:id:FriendsNow:20170814004817p:plain

管理コンソール画面が表示されます。
f:id:FriendsNow:20170814004901p:plain

RDS サーバーインストールの事前作業

「リモートデスクトップセッションホスト」と「リモートデスクトップライセンス」をインストールします。
f:id:FriendsNow:20170814005022p:plain

「このコンピュータへのリモート接続を許可する」をチェックします。
f:id:FriendsNow:20170814005050p:plain

ユーザの選択で本例では「Domain Users」を選択します。
f:id:FriendsNow:20170814005105p:plain

RDS サーバーへのセッションを、1ユーザで複数セッション接続可能になるように設定します。「ファイル名を指定して実行」にて「gpedit.msc」と入力し、「OK」をクリックします。
f:id:FriendsNow:20170814005123p:plain

ローカルグループポリシーエディターで、「コンピュータの構成」 > 「管理用テンプレート」 > 「Windowsコ ンポーネント」 > 「リモートデスクトップサービス」 > 「リモートデスクトップセッションホスト」 > 「接続」の「リモートデスクトップサービスユーザーに対してリモートデスクトップサービスセッションを1つに制限する」をダブルクリックします。
f:id:FriendsNow:20170814005145p:plain

「無効」にチェックを入れ、「OK」をクリックします。
f:id:FriendsNow:20170814005208p:plain

リモートデスクトップライセンスサーバーを有効化します。「リモートデスクトップライセンスマネージャー」を起動します。
f:id:FriendsNow:20170814005240p:plain

「サーバーのアクティブ化」を選択します。
f:id:FriendsNow:20170814005253p:plain

「ライセンスのインストール ウィザードを開始する」のチェックを外し、「完了」をクリックします。*3
f:id:FriendsNow:20170814005417p:plain

「ファイル名を指定して実行」を起動して「gpedit.msc」と入力し、「OK」をクリックします。
f:id:FriendsNow:20170814005431p:plain

「コンピューターの構成」 > 「管理用テンプレート」 > 「Windows コンポーネント」 > 「リモートデスクトップサービス」 > 「リモートデスクトップセッションホスト」 > 「ライセンス」の「リモートデスクトップライセンスモードの設定」のポリシーをダブルクリックします。
f:id:FriendsNow:20170814005530p:plain

リモートデスクトップライセンスモードを「有効」にし、「接続ユーザ数」を指定し「OK」をクリックします。
f:id:FriendsNow:20170814005556p:plain

次に、リモートデスクトップライセンスサーバーを指定します。
f:id:FriendsNow:20170814005710p:plain

ライセンスサーバーを使用するを有効にし、ライセンスサーバーを指定します。
f:id:FriendsNow:20170814005723p:plain

「gpupdate /force」コマンドを実行し、実行結果にエラーが無いことを確認します。
f:id:FriendsNow:20170814005756p:plain

RemoteAgent のインストール

EricomConnectRemoteHost_x64.exe を実行します。
f:id:FriendsNow:20170814005908p:plain

パラメータはデフォルトを使用します。
f:id:FriendsNow:20170814005922p:plain

インストール後「RemoteAgent Configuration」が自動で起動するので、Connect サーバ導入時に設定したグリッド名を設定します。
f:id:FriendsNow:20170814005940p:plain

Starting service メッセージが表示されることを確認します。
f:id:FriendsNow:20170814005957p:plain

Connect 管理コンソールにログインして、「リソースサーバーのステータス」に RDS が登録されていることを確認します。
f:id:FriendsNow:20170814010025p:plain

「サービス」でグリッドに接続されているサーバの一覧に RDS が登録されていることを確認します。
f:id:FriendsNow:20170814010035p:plain

アプリケーションの公開設定

Connect 管理コンソールにログオンし、「リソース」 > 「アプリケーション追加」をクリックします。
f:id:FriendsNow:20170814010056p:plain

サーバ一覧で、rd01 を選択し、公開するアプリケーション(本例では chrome)を選択し「追加」をクリックします。
f:id:FriendsNow:20170814010119p:plain

公開した「chrome」のアイコンが表示されることを確認します。
f:id:FriendsNow:20170814010135p:plain

「グループ」 > 「グループ追加」をクリックします。
f:id:FriendsNow:20170814010147p:plain

グループ名を設定し、公開するアプリケーションにチェックを入れ「作成」をクリックします。
f:id:FriendsNow:20170814010202p:plain

公開アプリケーションを使用できるユーザを割り当てます。「ユーザ」タブで 「Active Directory オブジェクトを追加」をクリックします。
f:id:FriendsNow:20170814010311p:plain

ドメイン上のグループを指定し「追加」をクリックします。
f:id:FriendsNow:20170814010334p:plain

「Domain Users」に所属しているユーザがアプリケーションを使用可能となります。
f:id:FriendsNow:20170814010359p:plain

「半角/全角」キーの利用を許可する場合、「設定」 > 「デフォルト」 > 「スキャンコードの有効化」を「はい」に変更します。
f:id:FriendsNow:20170814010414p:plain

「Access Portal の言語」と「Access Portal キーボード」に「jajp」と入力し、「保存」をクリックします。
f:id:FriendsNow:20170814010424p:plain

接続確認

AccessPortal を使用したブラウザ接続

クライアント端末から、"http://「Connect サーバーアドレス」:8033/" にアクセスし、「Launch AcceessPortal」をクリックします。
f:id:FriendsNow:20170814010453p:plain

アカウント情報を入力し、「ログイン」をクリックします。
f:id:FriendsNow:20170814010505p:plain

左ペインの公開アプリケーション(本例では chrome)をクリックします。
f:id:FriendsNow:20170814010519p:plain

ローカルブラウザ内にアプリケーションが起動します。
f:id:FriendsNow:20170814010527p:plain

AccessPad を使用したブラウザ接続

クライアント端末から、"http://「Connect サーバーアドレス」:8033/" にアクセスし、「Windows AccessPad (x64)」をクリックします。
f:id:FriendsNow:20170814010540p:plain

EricomAccessPadClient64.exe をインターネット経由でダウンロードしますのでインストールします。
f:id:FriendsNow:20170814010558p:plain

AccessPad インストール時、「Use Local Windows credentials to SSO..」にチェックを入れてインストールすると、Windows のアカウントで自動ログインができるようになります。*4
f:id:FriendsNow:20170830224521p:plain

インストール直後だけパスワードを入力する必要があります。以後は端末再起動後もログイン作業は省略されます。
f:id:FriendsNow:20170830224532p:plain

AccessPad を起動し、サーバー、アカウント情報を入力後、「ログイン」をクリックします。サーバー欄は "「Connect サーバアドレス」:8011"と入力します。
f:id:FriendsNow:20170814010611p:plain

公開アプリケーション(本例では chrome)をクリックします。
f:id:FriendsNow:20170814010629p:plain

アプリケーションが起動します。
f:id:FriendsNow:20170814010640p:plain

以上

*1:Ericom Connect は、SQL Server 2012 以降 または SQL Server 2012 Express 以降が必要です。

*2:Ericom Connect Secure Gateway

*3:120日間の猶予期間がある一時ライセンスが使用可能となります。

*4:管理者権限でインストール必要があります。

UCS へ ESXi6.5 をインストールした際に発生した問題について

問題

Cisco の UCS C220 M4S に VMware ESXi6.5(Custom)をインストールしたところ、ネットワークアダプタへ割り当てるデバイス名(vmnicN:N は整数)が予期せぬ形となる問題に遭遇しました。
KB2091560を参考に、デバイス名の割り当てを変更する等色々試しましたが正攻法では回避できず、以下の対策でのみ解決することができました。本対策の妥当性については、今後メーカへ確認予定です。

ESXi6.5 新規インストール後の問題

ESXi のバージョン確認

~ # esxcli system version get
   Product: VMware ESXi
   Version: 6.5.0
   Build: Releasebuild-5310538
   Update: 0
   Patch: 19

インターフェース構成の確認

~ # esxcfg-nics -l
Name    PCI          Driver      Link Speed      Duplex MAC Address       MTU    Description
M1-1 -> vmnic0  0000:06:00.0 igbn        Up   1000Mbps   Full   a0:36:9f:8d:05:4c 1500   Intel Corporation I350 Gigabit Network Connection
M1-2 -> vmnic1  0000:06:00.1 igbn        Down 0Mbps      Half   a0:36:9f:8d:05:4d 1500   Intel Corporation I350 Gigabit Network Connection
M2-1 -> vmnic2  0000:81:00.0 igbn        Up   1000Mbps   Full   a0:36:9f:8f:7a:60 1500   Intel Corporation I350 Gigabit Network Connection
M2-2 -> vmnic3  0000:81:00.1 igbn        Down 0Mbps      Half   a0:36:9f:8f:7a:61 1500   Intel Corporation I350 Gigabit Network Connection
M2-3 -> vmnic4  0000:81:00.2 igbn        Down 0Mbps      Half   a0:36:9f:8f:7a:62 1500   Intel Corporation I350 Gigabit Network Connection
M2-4 -> vmnic5  0000:81:00.3 igbn        Up   1000Mbps   Full   a0:36:9f:8f:7a:63 1500   Intel Corporation I350 Gigabit Network Connection
LOM1 -> vmnic6  0000:01:00.0 igbn        Up   1000Mbps   Full   00:35:1a:10:44:0e 1500   Intel Corporation I350 Gigabit Network Connection
LOM2 -> vmnic7  0000:01:00.1 igbn        Up   1000Mbps   Full   00:35:1a:10:44:0f 1500   Intel Corporation I350 Gigabit Network Connection
M1-3 -> vmnic8  0000:06:00.2 igbn        Down 0Mbps      Half   a0:36:9f:8d:05:4e 1500   Intel Corporation I350 Gigabit Network Connection
M1-4 -> vmnic9  0000:06:00.3 igbn        Up   1000Mbps   Full   a0:36:9f:8d:05:4f 1500   Intel Corporation I350 Gigabit Network Connection

通常では以下のとおり割り当てられますが、上記のとおり想定外の割り当てとなります。

  • LOM1 -> vmnic0(LOM1 はオンボード NIC1 の略称)
  • LOM2 -> vmnic1(LOM2 はオンボード NIC2 の略称)
  • M1-1~4 -> vmnic2~5(M1 はスロット1に挿入されたメザニンカードの略称)
  • M1-2~4 -> vmnic6~9(M2 はスロット2に挿入されたメザニンカードの略称)

ネットワークアダプタとエイリアス名の割り当てを表示(上記同様にバラバラです。)

~ # localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias list | grep vmnic | grep -v logical
M1-1 -> pci       p0000:06:00.0        vmnic0
M1-2 -> pci       p0000:06:00.1        vmnic1
M2-1 -> pci       p0000:81:00.0        vmnic2
M2-2 -> pci       p0000:81:00.1        vmnic3
M2-3 -> pci       p0000:81:00.2        vmnic4
M2-4 -> pci       p0000:81:00.3        vmnic5
LOM1 -> pci       s00000000.00         vmnic6
LOM2 -> pci       s00000000.01         vmnic7
M1-3 -> pci       s00000000.02         vmnic8
M1-3 -> pci       s00000000.03         vmnic9

回避策

本事象は、ESXi5.1では発生せず、またKB2091560にも記載があるとおり、ESXi のアップデートをしてもアップデート前に割り当てたデバイス名は維持されるため、ESXi6.5 を新規インストールせず、5.1からアップデートします。(以下 KB 抜粋)

Upgrades from one release of ESXi to the next, including autodeploy configurations, do not change the aliases previously assigned to the system's ports. This includes upgrading from prior releases to ESXi 5.5 and later.
ESXi5.1 新規インストール後の状態

ESXi のバージョン確認

~ # esxcli system version get
   Product: VMware ESXi
   Version: 5.1.0
   Build: Releasebuild-2323236
   Update: 3

インターフェース構成の確認

~ # esxcfg-nics -l
Name    PCI          Driver      Link Speed      Duplex MAC Address       MTU    Description
LOM1 -> vmnic0  0000:01:00.0 igbn        Up   1000Mbps   Full   00:35:1a:10:44:0e 1500   Intel Corporation I350 Gigabit Network Connection
LOM2 -> vmnic1  0000:01:00.1 igbn        Up   1000Mbps   Full   00:35:1a:10:44:0f 1500   Intel Corporation I350 Gigabit Network Connection
M1-1 -> vmnic2  0000:06:00.0 igbn        Up   1000Mbps   Full   a0:36:9f:8d:05:4c 1500   Intel Corporation I350 Gigabit Network Connection
M1-2 -> vmnic3  0000:06:00.1 igbn        Down 0Mbps      Half   a0:36:9f:8d:05:4d 1500   Intel Corporation I350 Gigabit Network Connection
M1-3 -> vmnic4  0000:06:00.2 igbn        Down 0Mbps      Half   a0:36:9f:8d:05:4e 1500   Intel Corporation I350 Gigabit Network Connection
M1-4 -> vmnic5  0000:06:00.3 igbn        Up   1000Mbps   Full   a0:36:9f:8d:05:4f 1500   Intel Corporation I350 Gigabit Network Connection
M2-1 -> vmnic6  0000:81:00.0 igbn        Up   1000Mbps   Full   a0:36:9f:8f:7a:60 1500   Intel Corporation I350 Gigabit Network Connection
M2-2 -> vmnic7  0000:81:00.1 igbn        Down 0Mbps      Half   a0:36:9f:8f:7a:61 1500   Intel Corporation I350 Gigabit Network Connection
M2-3 -> vmnic8  0000:81:00.2 igbn        Down 0Mbps      Half   a0:36:9f:8f:7a:62 1500   Intel Corporation I350 Gigabit Network Connection
M2-4 -> vmnic9  0000:81:00.3 igbn        Up   1000Mbps   Full   a0:36:9f:8f:7a:63 1500   Intel Corporation I350 Gigabit Network Connection

上記のとおり想定どおりの割り当てとなります。

ESXi5.1 から 6.0U2 へアップデート

ESXi5.1 から 6.5 のアップデートパスはないため、まずは 6.0U2 へアップデートします。
VMware のサイトからアップデートファイルをダウンロードし、SCP 等を利用して対象のホストへ転送します。
本例では、以下のパスへ配置します。

vmfs/volumes/datastore1/update/Vmware-ESXi-6.0.0-3620759-Custom-Cisco-6.0.2.2-Bundle.zip

アップデートファイルを確認

~ # esxcli software sources profile list -d /vmfs/volumes/datastore1/update/Vmware-ESXi-6.0.0-3620759-Custom-Cisco-6.0.2.2-Bundle.zip
Name                                            Vendor  Acceptance Level
----------------------------------------------  ------  ----------------
Vmware-ESXi-6.0.0-3620759-Custom-Cisco-6.0.2.2  Cisco   PartnerSupported

ESXi5.1 から 6.0U2 へアップデート実行

~ # esxcli software profile update -p Vmware-ESXi-6.0.0-3620759-Custom-Cisco-6.0.2.2 -d /vmfs/volumes/datastore1/update/Vmware-ESXi-6.0.0-3620759-Custom-Cisco-6.0.2.2-Bundle.zip
Update Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed:
<...snip...>

再起動

~ # reboot
ESXi5.1 から 6.0U2 アップデート後の状態

ESXi のバージョン確認

~ # esxcli system version get
   Product: VMware ESXi
   Version: 6.0.0
   Build: Releasebuild-3620759
   Update: 2
   Patch: 34
ESXi6.0U2 から 6.5 へアップデート

アップデートファイルを確認

~ #  esxcli software sources profile list -d /vmfs/volumes/datastore1/update/Vmware-ESXi-6.5.0-4564106-Custom-Cisco-6.5.0.2.zip
Name                                            Vendor  Acceptance Level
----------------------------------------------  ------  ----------------
Vmware-ESXi-6.5.0-4564106-Custom-Cisco-6.5.0.2  Cisco   PartnerSupported

ESXi6.0U2 から 6.5 へアップデート実行

~ # esxcli software profile update -p Vmware-ESXi-6.5.0-4564106-Custom-Cisco-6.5.0.2 -d /vmfs/volumes/datastore1/update/Vmware-ESXi-6.5.0-4564106-Custom-Cisco-6.5.0.2.zip
 [DependencyError]
 VIB Emulex_bootbank_scsi-be2iscsi_10.2.250.0-1OEM.500.0.0.472629 requires com.vmware.iscsi_linux-9.2.0.0, but the requirement cannot be satisfied within the ImageProfile.
 VIB QLogic_bootbank_scsi-qla4xxx_634.5.26.0-1OEM.500.0.0.472560 requires com.vmware.driverAPI-9.2.0.0, but the requirement cannot be satisfied within the ImageProfile.
 VIB Emulex_bootbank_scsi-be2iscsi_10.2.250.0-1OEM.500.0.0.472629 requires com.vmware.driverAPI-9.2.0.0, but the requirement cannot be satisfied within the ImageProfile.
 VIB QLogic_bootbank_scsi-qla4xxx_634.5.26.0-1OEM.500.0.0.472560 requires com.vmware.iscsi_linux-9.2.0.0, but the requirement cannot be satisfied within the ImageProfile.
 VIB Emulex_bootbank_scsi-be2iscsi_10.2.250.0-1OEM.500.0.0.472629 requires vmkapi_2_0_0_0, but the requirement cannot be satisfied within the ImageProfile.
 VIB QLogic_bootbank_scsi-qla4xxx_634.5.26.0-1OEM.500.0.0.472560 requires vmkapi_2_0_0_0, but the requirement cannot be satisfied within the ImageProfile.
 Please refer to the log file for more details.
 <...snip...>

依存関係のエラーがでましたが、本例では Emulex や Qlogic 社製のアダプタは使用していないので、以下のコマンドで強制的にアップデートを実行しました。

~ # esxcli software profile update -d /vmfs/volumes/datastore1/update/Vmware-ESXi-6.5.0-4564106-Custom-Cisco-6.5.0.2.zip -p Vmware-ESXi-6.5.0-4564106-Custom-Cisco-6.5.0.2 -f
Update Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed:
 <...snip...>

再起動

~ # reboot
ESXi6.0U2 から 6.5 アップデート後の状態

ESXi のバージョン確認

~ # esxcli system version get
   Product: VMware ESXi
   Version: 6.5.0
   Build: Releasebuild-4564106
   Update: 0
   Patch: 0

インターフェース構成の確認

~ # esxcfg-nics -l
Name    PCI          Driver      Link Speed      Duplex MAC Address       MTU    Description
LOM1 -> vmnic0  0000:01:00.0 igbn        Up   1000Mbps   Full   00:35:1a:10:44:0e 1500   Intel Corporation I350 Gigabit Network Connection
LOM2 -> vmnic1  0000:01:00.1 igbn        Up   1000Mbps   Full   00:35:1a:10:44:0f 1500   Intel Corporation I350 Gigabit Network Connection
M1-1 -> vmnic2  0000:06:00.0 igbn        Up   1000Mbps   Full   a0:36:9f:8d:05:4c 1500   Intel Corporation I350 Gigabit Network Connection
M1-2 -> vmnic3  0000:06:00.1 igbn        Down 0Mbps      Half   a0:36:9f:8d:05:4d 1500   Intel Corporation I350 Gigabit Network Connection
M1-3 -> vmnic4  0000:06:00.2 igbn        Down 0Mbps      Half   a0:36:9f:8d:05:4e 1500   Intel Corporation I350 Gigabit Network Connection
M1-4 -> vmnic5  0000:06:00.3 igbn        Up   1000Mbps   Full   a0:36:9f:8d:05:4f 1500   Intel Corporation I350 Gigabit Network Connection
M2-1 -> vmnic6  0000:81:00.0 igbn        Up   1000Mbps   Full   a0:36:9f:8f:7a:60 1500   Intel Corporation I350 Gigabit Network Connection
M2-2 -> vmnic7  0000:81:00.1 igbn        Down 0Mbps      Half   a0:36:9f:8f:7a:61 1500   Intel Corporation I350 Gigabit Network Connection
M2-3 -> vmnic8  0000:81:00.2 igbn        Down 0Mbps      Half   a0:36:9f:8f:7a:62 1500   Intel Corporation I350 Gigabit Network Connection
M2-4 -> vmnic9  0000:81:00.3 igbn        Up   1000Mbps   Full   a0:36:9f:8f:7a:63 1500   Intel Corporation I350 Gigabit Network Connection

上記のとおり想定どおりの割り当てが維持されます。

ネットワークアダプタとエイリアス名の割り当てを表示(上記同様に維持されます。)

~ # localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias list | grep vmnic | grep -v logical
LOM1 -> pci       s00000000.00         vmnic0
LOM2 -> pci       s00000000.01         vmnic1
M1-1 -> pci       p0000:06:00.0        vmnic2
M1-2 -> pci       p0000:06:00.1        vmnic3
M1-3 -> pci       s00000000.02         vmnic4
M1-4 -> pci       s00000000.03         vmnic5
M2-1 -> pci       p0000:81:00.0        vmnic6
M2-2 -> pci       p0000:81:00.1        vmnic7
M2-3 -> pci       p0000:81:00.2        vmnic8
M2-4 -> pci       p0000:81:00.3        vmnic9

ランサムウェアについて

ランサムウェアとは

ランサムウェアは機器、ネットワーク、データセンターに感染し、ユーザーや組織が身代金を支払うまで、システムをロックさせ使用できない状態にするタイプのマルウェアです。
ランサムウェアは通常、いくつかあるパターンのうち1つを使って実行されます。
Crypto ランサムウェアは、オペレーティングシステムに感染し、機器が起動できなくなるようにします。
他にも、ドライブやファイル、ファイル名を暗号化するランサムウェアもあります。悪意のあるものにはタイマーが付いたバージョンもあり、身代金が支払われるまでファイルを削除していきます。
すべてにおいて言えるのは、ブロックした、あるいは暗号化したシステム、ファイル、データのロック解除や解放と引き換えに、身代金を支払うよう要求してくる、ということです。
出典:ランサムウェアから身を守るための10の措置

感染後、ユーザーの機器のスクリーン上に以下のようなメッセージが表示されるケースが多いということです。
f:id:FriendsNow:20170709230920p:plain

WannaCry について

概要

2017年5月に世界各地で爆発的な被害を与えたワーム活動を行うランサムウェアです。*1
感染すると主要なデータファイルを暗号化し、解除するためにビットコインを支払うよう指示されます。

WannaCry 感染によるユーザ表示画面
f:id:FriendsNow:20170709230656p:plain

感染経路

ランサムウェアのファイル自身は Windows 実行形式ファイルになります。メールや不正なウェブサイト経由で拡散しています。CVE-2017-0145(SMBv1の脆弱性)を利用して LAN 内、そしてインターネット上のランダムな宛先に対して広範囲に感染活動を広げます。
感染後の更なる感染活動が、大きな被害を生み出したポイントになっています。

WannaCry の被害状況(2017.6.28時点)
f:id:FriendsNow:20170628154926p:plain

特徴

  • ファイル共有機能の脆弱性が修正されていない Windows が対象
  • ネットワークベースの攻撃、バックドア等を利用して、社内 LAN、インターネットを通じて拡散
  • Tor*2を利用し、C2サーバへ接続
  • 日本語を含む27の言語に対応した脅迫文
  • Bitcoin で300~600米ドルを要求
  • イギリスの医療機関やロシアを始め、世界中で感染被害が報告
  • キルスイッチを搭載(詳細は以下のとおり)

対策

  • Windows Update で MS17-010 (2017年3月公開) を適用する。
  • SMBv1を無効化する。
  • UTM をインターネットの出口に設置し、IPS、AntiVirus を有効にする。(インターネット側からの感染活動については、 ルータやファイアウォールで445ポートをブロックするだけで防げますが、ローカルからインターネットアクセスした際の戻りで発生する感染活動には対応できないため、推奨)

キルスイッチについて

WannaCry の活動を停止するトリガーをさします。トリガーは以下のドメインにアクセスできるかどうかです。

www[.]iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea[.]com

WannaCry は、Windows 端末に感染後、上述のドメインにアクセスし、アクセスできなければ活動を開始。アクセスできる場合には活動を停止します。WannaCry が出回った当初は未登録のドメインだったので、IPアドレスが存在せず、感染が拡大しましたが、ある研究者が上記ドメインを取得したため、一部の環境を除いて無効化されたようです。
なぜ、ウィルス製作者がこのような機能を実装したか原因は不明ですが、サンドボックス回避のためと考えられています。(サンドボックスはウイルスが要求したアドレス解決に対して(未登録のドメインであっても)必ずダミー用サーバーのIPアドレスを返すため。)

参考:ITPro

以上

*1:日本国内では、9日間で合計1万6436件の攻撃を確認

*2:The Onion Router:TCP/IPにおける接続経路の匿名化を実現する規格及びソフトウェアの名称

プロキシ ARP について

プロキシ ARP とは

プロキシ ARP とは、ホスト(通常はルータ)が、別のマシンに宛てられた ARP 要求に応答する技法です。 ルータは自分の ID を「偽装する」ことによって、「実際の」送信先にパケットをルーティングする責任を引き受けます。 プロキシ ARP を使用することで、ルーティングやデフォルトゲートウェイの設定を必要とせずに、サブネット上のマシンがリモートサブネットに到達できるようになります。
参考:Cisco トラブルシューティングテクニカルノーツ

元々、サブネットマスクを認識しない旧式のホストのために使用されていた機能です。

f:id:FriendsNow:20170620122815p:plain:w600

プロキシ ARP の実装例

インターフェースに以下の設定を行うことで、有効化します。Cisco ではデフォルトで有効となっています。

Router(config)# interface gigabitEthernet 0/1
Router(config-if)# ip proxy-arp

プロキシ ARP の注意点

サブネットを誤っていたり、Default Gateway なしでも通信が可能となることから、「予期せぬ通信」が発生する可能性があり、(あくまで個人的な意見ですが)特に理由がない場合は無効化を推奨します。

以上

Cross-Stack Etherchannel について

StackWise 機能とは

StackWise 機能は、2台以上の Catalyst を1台の論理スイッチとして運用するクラスタ技術です。最大で9台のスイッチから構成され、そのうち1台がマスターとなり全体の管理を行います。マスター以外のスイッチはメンバーと呼ばれます。詳細については、以下を参照ください。
Cisco StackWise および StackWise Plus テクノロジー

Cross-Stack EtherChannelについて

Stack 構成のスイッチ群において、筐体跨ぎで Link Aggregation を構成する事が可能です。Cisco はこれを Cross-Stack EtherChannel と呼んでいます。注意点として、Cross-Stack EtherChannel では、PAgP をサポートしません。LACP は、IOS 12.2(25)SEC 以降ではサポートします。
IOS バージョンが不明な際等は、on 設定が無難です。
なお、Cross-Stack EtherChannel で PAgP を設定すると、以下のエラーが出力されます。

%With PAgP enabled, all ports in the Channel should belong to the same switch
Command rejected (Port-channel"Number", "Interface Port"): Invalid etherchnl mode

以上

BGP 設定例

概要

BGP を使った冗長化設定例になります。
動作確認は R5 と R6 の Loopback インターフェース間の Ping 疎通により行っています。

検証環境

  • CSR1000V を VMware Workstation 上に構築
  • IOS は 15.4(1)S2を使用

f:id:FriendsNow:20170506114903p:plain

通信フロー

正常系

f:id:FriendsNow:20170506115004p:plain

故障系-1

f:id:FriendsNow:20170506120026p:plain

故障系-2

f:id:FriendsNow:20170506120234p:plain

故障系-3

f:id:FriendsNow:20170506120245p:plain

設定例

R1

hostname R1
!
interface GigabitEthernet1
 ip address 10.1.13.1 255.255.255.0
 negotiation auto
!
interface GigabitEthernet2
 ip address 10.1.12.1 255.255.255.0
 negotiation auto
!
interface GigabitEthernet3
 ip address 172.16.15.1 255.255.255.0
 negotiation auto
!
router ospf 1
 redistribute bgp 65001 metric 100 metric-type 1 subnets
 network 172.16.15.0 0.0.0.255 area 0
!
router bgp 65001
 bgp log-neighbor-changes
 timers bgp 10 30
 neighbor 10.1.12.2 remote-as 65001
 neighbor 10.1.13.3 remote-as 65002
 !
 address-family ipv4
  bgp redistribute-internal
  network 192.168.5.0
  neighbor 10.1.12.2 activate
  neighbor 10.1.12.2 next-hop-self
  neighbor 10.1.13.3 activate
  neighbor 10.1.13.3 route-map LP in
  neighbor 10.1.13.3 route-map MED out
  neighbor 10.1.13.3 filter-list 1 out
 exit-address-family
!
ip as-path access-list 1 permit ^$
ip as-path access-list 2 permit ^65002_
!
access-list 1 permit 192.168.5.0 0.0.0.255
!
route-map LP permit 10
 match as-path 2
 set local-preference 200
!
route-map MED permit 10
 match ip address 1
 set metric 110
!

R2

hostname R2
!
interface GigabitEthernet1
 ip address 10.1.24.2 255.255.255.0
 negotiation auto
!
interface GigabitEthernet2
 ip address 10.1.12.2 255.255.255.0
 negotiation auto
!
interface GigabitEthernet3
 ip address 172.16.25.2 255.255.255.0
 negotiation auto
!
router ospf 1
 network 172.16.25.0 0.0.0.255 area 0
!
router bgp 65001
 bgp log-neighbor-changes
 timers bgp 10 30
 neighbor 10.1.12.1 remote-as 65001
 neighbor 10.1.24.4 remote-as 65002
 !
 address-family ipv4
  network 192.168.5.0
  neighbor 10.1.12.1 activate
  neighbor 10.1.12.1 next-hop-self
  neighbor 10.1.24.4 activate
  neighbor 10.1.24.4 route-map LP in
  neighbor 10.1.24.4 route-map MED out
  neighbor 10.1.24.4 filter-list 1 out
  distance bgp 20 100 200
 exit-address-family
!
ip as-path access-list 1 permit ^$
ip as-path access-list 2 permit ^65002_
!
access-list 1 permit 192.168.5.0 0.0.0.255
!
route-map LP permit 10
 match as-path 2
 set local-preference 150
!
route-map MED permit 10
 match ip address 1
 set metric 120
!

R3

hostname R3
!
interface GigabitEthernet1
 ip address 10.1.13.3 255.255.255.0
 negotiation auto
!
interface GigabitEthernet2
 ip address 10.1.34.3 255.255.255.0
 negotiation auto
!
interface GigabitEthernet3
 ip address 172.16.36.3 255.255.255.0
 negotiation auto
!
router ospf 1
 redistribute bgp 65002 metric 100 metric-type 1 subnets
 network 172.16.36.0 0.0.0.255 area 0
!
router bgp 65002
 bgp log-neighbor-changes
 timers bgp 10 30
 neighbor 10.1.13.1 remote-as 65001
 neighbor 10.1.34.4 remote-as 65002
 !
 address-family ipv4
  bgp redistribute-internal
  network 192.168.6.0
  neighbor 10.1.13.1 activate
  neighbor 10.1.13.1 route-map LP in
  neighbor 10.1.13.1 route-map MED out
  neighbor 10.1.13.1 filter-list 1 out
  neighbor 10.1.34.4 activate
  neighbor 10.1.34.4 next-hop-self
 exit-address-family
!
ip as-path access-list 1 permit ^$
ip as-path access-list 2 permit ^65001_
!
access-list 1 permit 192.168.6.0 0.0.0.255
!
route-map LP permit 10
 match as-path 2
 set local-preference 200
!
route-map MED permit 10
 match ip address 1
 set metric 110
!

R4

hostname R4
!
interface GigabitEthernet1
 ip address 10.1.24.4 255.255.255.0
 negotiation auto
!
interface GigabitEthernet2
 ip address 10.1.34.4 255.255.255.0
 negotiation auto
!
interface GigabitEthernet3
 ip address 172.16.46.4 255.255.255.0
 negotiation auto
!
router ospf 1
 network 172.16.46.0 0.0.0.255 area 0
!
router bgp 65002
 bgp log-neighbor-changes
 timers bgp 10 30
 neighbor 10.1.24.2 remote-as 65001
 neighbor 10.1.34.3 remote-as 65002
 !
 address-family ipv4
  network 192.168.6.0
  neighbor 10.1.24.2 activate
  neighbor 10.1.24.2 route-map LP in
  neighbor 10.1.24.2 route-map MED out
  neighbor 10.1.24.2 filter-list 1 out
  neighbor 10.1.34.3 activate
  neighbor 10.1.34.3 next-hop-self
  distance bgp 20 100 200
 exit-address-family
!
ip as-path access-list 1 permit ^$
ip as-path access-list 2 permit ^65001_
!
access-list 1 permit 192.168.6.0 0.0.0.255
!
route-map LP permit 10
 match as-path 2
 set local-preference 150
!
route-map MED permit 10
 match ip address 1
 set metric 120
!

R5

hostname R5
!
interface Loopback1
 ip address 192.168.5.5 255.255.255.0
 ip ospf network point-to-point
!
interface GigabitEthernet1
 ip address 172.16.15.5 255.255.255.0
 negotiation auto
!
interface GigabitEthernet2
 ip address 172.16.25.5 255.255.255.0
 negotiation auto
!
router ospf 1
 network 172.16.15.0 0.0.0.255 area 0
 network 172.16.25.0 0.0.0.255 area 0
 network 192.168.5.0 0.0.0.255 area 0
!
ip route 192.168.6.0 255.255.255.0 172.16.25.2 200
!

R6

hostname R6
!
interface Loopback1
 ip address 192.168.6.6 255.255.255.0
 ip ospf network point-to-point
!
interface GigabitEthernet1
 ip address 172.16.36.6 255.255.255.0
 negotiation auto
!
interface GigabitEthernet2
 ip address 172.16.46.6 255.255.255.0
 negotiation auto
!
router ospf 1
 network 172.16.36.0 0.0.0.255 area 0
 network 172.16.46.0 0.0.0.255 area 0
 network 192.168.6.0 0.0.0.255 area 0
!
ip route 192.168.5.0 255.255.255.0 172.16.46.4 200168.6.0 255.255.255.0 172.16.25.2 200
!

設定のポイント

R1(R3)

  • IBGP の経路情報を OSPF へ再配送
 address-family ipv4
  bgp redistribute-internal

R2(R4)

  • IBGP の AD 値をデフォルトの200から100へ変更*1
 address-family ipv4
  distance bgp 20 100 200

共通

  • 他の AS の経路情報を配送しない。
 address-family ipv4
  neighbor 10.1.13.3 filter-list 1 out
!
ip as-path access-list 1 permit ^$

動作確認

正常系

R1(R3)は、対向へ経路情報を配信

R1#show ip bgp neighbors 10.1.13.3 advertised-routes
BGP table version is 4, local router ID is 192.168.1.221
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  192.168.5.0      172.16.15.5              2         32768 i

Total number of prefixes 1

R1(R3)は、対向から経路情報を受信

R1#show ip bgp neighbors 10.1.13.3 routes
BGP table version is 4, local router ID is 192.168.1.221
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  192.168.6.0      10.1.13.3              110    200      0 65002 i

Total number of prefixes 1

R1(R3)は、LAN 内のネットワークについて OSPF 経由の経路を使用

R1#show ip route 192.168.5.0 longer-prefixes
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

O     192.168.5.0/24 [110/2] via 172.16.15.5, 06:44:10, GigabitEthernet3

R1(R3)は、対向のネットワークについて BGP 経由の経路を使用

R1#show ip route 192.168.6.0 longer-prefixes
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

B     192.168.6.0/24 [20/110] via 10.1.13.3, 00:29:35

R2(R4)は、対向のネットワークについて R1(R3)経由の経路を使用(LocPrf により優先)

R2#show ip bgp
BGP table version is 3, local router ID is 192.168.1.222
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>i 192.168.5.0      10.1.12.1                2    100      0 i
 *   192.168.6.0      10.1.24.4              120    150      0 65002 i
 *>i                  10.1.12.1              110    200      0 65002 i

故障系-1

R1(R3)は、対向のネットワークについて R2(R4)経由の経路へ変更

R1#show ip bgp
BGP table version is 8, local router ID is 192.168.1.221
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  192.168.5.0      172.16.15.5              2         32768 i
 *>i 192.168.6.0      10.1.12.2              120    150      0 65002 i

R2(R4)は、対向のネットワークについて R4(R2)経由の経路へ変更

R2#show ip bgp
BGP table version is 4, local router ID is 192.168.1.222
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>i 192.168.5.0      10.1.12.1                2    100      0 i
 *>  192.168.6.0      10.1.24.4              120    150      0 65002 i

故障系-2

R1(R3)は、LAN 内のネットワークについて BGP 経由の経路へ変更

R1#show ip route 192.168.5.0 longer-prefixes
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

B     192.168.5.0/24 [200/2] via 10.1.12.2, 00:13:30

R2(R4)は、LAN 内のネットワークについて OSPF 経由の経路へ変更

R2#show ip route 192.168.5.0 longer-prefixes
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

O     192.168.5.0/24 [110/2] via 172.16.25.5, 00:24:05, GigabitEthernet3

故障系-3

R2(R4)は、LAN 内のネットワークについて OSPF 経由の経路へ変更

R2#show ip route 192.168.5.0 longer-prefixes
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

O     192.168.5.0/24 [110/2] via 172.16.25.5, 00:24:05, GigabitEthernet3

R2(R4)は、対向のネットワークについて R4(R2)経由の経路へ変更

R2#show ip route 192.168.6.0 longer-prefixes
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

B     192.168.6.0/24 [20/120] via 10.1.24.4, 00:06:25

R3は、対向のネットワークについて R4 経由の経路へ変更

R3#show ip bgp
BGP table version is 8, local router ID is 192.168.1.223
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>i 192.168.5.0      10.1.34.4              120    150      0 65001 i
 *>  192.168.6.0      172.16.36.6              2         32768 i

R5(R6)は、対向のネットワークについて R2(R4)経由の経路へ変更

R5#show ip static route
Codes: M - Manual static, A - AAA download, N - IP NAT, D - DHCP,
       G - GPRS, V - Crypto VPN, C - CASA, P - Channel interface processor,
       B - BootP, S - Service selection gateway
       DN - Default Network, T - Tracking object
       L - TL1, E - OER, I - iEdge
       D1 - Dot1x Vlan Network, K - MWAM Route
       PP - PPP default route, MR - MRIPv6, SS - SSLVPN
       H - IPe Host, ID - IPe Domain Broadcast
       U - User GPRS, TE - MPLS Traffic-eng, LI - LIIN
       IR - ICMP Redirect
Codes in []: A - active, N - non-active, B - BFD-tracked, D - Not Tracked, P - permanent

Static local RIB for default

M  192.168.6.0/24 [200/0] via 172.16.25.2 [A]

以上

*1:OSPF(AD110)経由で学習した経路より IBGP 経由で学習した経路を優先するため。

ASA と VyOS で IPsec

VyOS とは

VyOS は Vyattaの無償版である Vyatta Core よりフォークされたオープンソースのネットワーク OS です。
Cisco の ASA(HA 構成)と VyOS 間で IPsec を確立する際の設定例になります。

検証環境

  • VyOS1.1.7 及び、CentOS6.8 を VMware Workstation 上に構築
  • VMware ESXi5.5 を VMweare Workstation 上に構築し、ESXi5.5 上に ASAv を構築*1

f:id:FriendsNow:20160920135254p:plain

ASA 設定例

HA 関連の最終設定
※HA の具体的な設定方法は、こちらをご参照ください。

<...snip...>
interface GigabitEthernet0/0
 nameif inside
 security-level 100
 ip address 192.168.10.1 255.255.255.0 standby 192.168.10.2
!
interface GigabitEthernet0/1
 nameif outside
 security-level 0
 ip address 10.1.2.1 255.255.255.0 standby 10.1.2.2
!
interface GigabitEthernet0/2
 description LAN Failover Interface
!
interface GigabitEthernet0/3
 description STATE Failover Interface
<...snip...>
failover
failover lan interface failover GigabitEthernet0/2
failover link state GigabitEthernet0/3
failover interface ip failover 172.16.1.1 255.255.255.0 standby 172.16.1.2
failover interface ip state 172.16.2.1 255.255.255.0 standby 172.16.2.2
<...snip...>

HA の確認

ciscoasa# show failover
Failover On
Failover unit Primary
Failover LAN Interface: failover GigabitEthernet0/2 (up)
Unit Poll frequency 1 seconds, holdtime 15 seconds
Interface Poll frequency 5 seconds, holdtime 25 seconds
Interface Policy 1
Monitored Interfaces 3 of 61 maximum
Version: Ours 9.2(0)2, Mate 9.2(0)2
Last Failover at: 02:57:55 UTC Sep 19 2016
        This host: Primary - Active
                Active time: 27 (sec)
                slot 0: empty
                  Interface inside (192.168.10.1): Normal (Monitored)
                  Interface outside (10.1.2.1): Normal (Monitored)
                  Interface management (192.168.1.101): Normal (Monitored)
        Other host: Secondary - Standby Ready
                Active time: 12455 (sec)
                  Interface inside (192.168.10.2): Normal (Monitored)
                  Interface outside (10.1.2.2): Normal (Monitored)
                  Interface management (192.168.1.102): Normal (Monitored)
<...snip...>
ルートの設定
route outside 10.1.1.0 255.255.255.0 10.1.2.254 1
route outside 192.168.20.0 255.255.255.0 10.1.2.254 1
IPsec の設定

IKE ポリシーの定義及び有効化

crypto ikev1 policy 10
 authentication pre-share
 encryption aes
 hash sha
 group 2
 lifetime 86400
crypto ikev1 enable outside

Tunnel Group (LAN-to-LAN プロファイル)の作成

tunnel-group 10.1.1.2 type ipsec-l2l
tunnel-group 10.1.1.2 ipsec-attributes
 ikev1 pre-shared-key cisco

セレクタ ACL の設定

object-group network local-network
 network-object 192.168.10.0 255.255.255.0
object-group network remote-network
 network-object 192.168.20.0 255.255.255.0
access-list asa-router-vpn extended permit ip object-group local-network object-group remote-network

NAT 除外設定

nat (inside,outside) source static local-network local-network destination static remote-network remote-network no-proxy-arp route-lookup

IKE トランスフォーム設定

crypto ipsec ikev1 transform-set ESP-AES-SHA esp-aes esp-sha-hmac

Crypto MAP の設定とインターフェースへの適用

crypto map outside_map 10 match address asa-router-vpn
crypto map outside_map 10 set peer 10.1.1.2
crypto map outside_map 10 set ikev1 transform-set ESP-AES-SHA
crypto map outside_map interface outside

IPsec 関連の最終設定

<...snip...>
object-group network local-network
 network-object 192.168.10.0 255.255.255.0
object-group network remote-network
 network-object 192.168.20.0 255.255.255.0
access-list asa-router-vpn extended permit ip object-group local-network object-group remote-network
<...snip...>
nat (inside,outside) source static local-network local-network destination static remote-network remote-network no-proxy-arp route-lookup
<...snip...>
crypto ipsec ikev1 transform-set ESP-AES-SHA esp-aes esp-sha-hmac
crypto map outside_map 10 match address asa-router-vpn
crypto map outside_map 10 set pfs
crypto map outside_map 10 set peer 10.1.1.2
crypto map outside_map 10 set ikev1 transform-set ESP-AES-SHA
crypto map outside_map 10 set security-association lifetime seconds 28800
crypto map outside_map interface outside
crypto ikev1 enable outside
crypto ikev1 policy 10
 authentication pre-share
 encryption aes
 hash sha
 group 2
 lifetime 86400
<...snip...>
tunnel-group 10.1.1.2 type ipsec-l2l
tunnel-group 10.1.1.2 ipsec-attributes
 ikev1 pre-shared-key *****

IPsec の確認

ciscoasa# show crypto isakmp sa
IKEv1 SAs:
   Active SA: 1
    Rekey SA: 0 (A tunnel will report 1 Active and 1 Rekey SA during rekey)
Total IKE SA: 1
1   IKE Peer: 10.1.1.2
    Type    : L2L             Role    : initiator
    Rekey   : no              State   : MM_ACTIVE

ciscoasa# show crypto ipsec sa
interface: outside
    Crypto map tag: outside_map, seq num: 10, local addr: 10.1.2.1
      access-list asa-router-vpn extended permit ip 192.168.10.0 255.255.255.0 192.168.20.0 255.255.255.0
      local ident (addr/mask/prot/port): (192.168.10.0/255.255.255.0/0/0)
      remote ident (addr/mask/prot/port): (192.168.20.0/255.255.255.0/0/0)
      current_peer: 10.1.1.2
      #pkts encaps: 21281, #pkts encrypt: 21281, #pkts digest: 21281
      #pkts decaps: 21281, #pkts decrypt: 21281, #pkts verify: 21281
      #pkts compressed: 0, #pkts decompressed: 0
      #pkts not compressed: 21281, #pkts comp failed: 0, #pkts decomp failed: 0
      #pre-frag successes: 0, #pre-frag failures: 0, #fragments created: 0
      #PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0
      #TFC rcvd: 0, #TFC sent: 0
      #Valid ICMP Errors rcvd: 0, #Invalid ICMP Errors rcvd: 0
      #send errors: 0, #recv errors: 0

packet-tracer での確認

ciscoasa# packet-tracer input inside icmp 192.168.10.100 0 8 192.168.20.100
Phase: 1
Type: ROUTE-LOOKUP
Subtype: Resolve Egress Interface
Result: ALLOW
Config:
Additional Information:
in   192.168.20.0    255.255.255.0   via 10.1.2.254, outside
!...上記ルーティングテーブルにより転送されている事を確認
Phase: 2
Type: UN-NAT
Subtype: static
Result: ALLOW
Config:
nat (inside,outside) source static local-network local-network destination static remote-network remote-network no-proxy-arp route-lookup
Additional Information:
NAT divert to egress interface outside
Untranslate 192.168.20.100/0 to 192.168.20.100/0
!...上記 NAT 設定により、暗号化対象のフローは NAT 対象外となっている事を確認
Phase: 3
Type: NAT
Subtype:
Result: ALLOW
Config:
nat (inside,outside) source static local-network local-network destination static remote-network remote-network no-proxy-arp route-lookup
Additional Information:
Static translate 192.168.10.100/0 to 192.168.10.100/0
<...snip...>
Phase: 8
Type: VPN
Subtype: encrypt
Result: ALLOW
Config:
Additional Information:
!...VPN により暗号化され、通信が許可されている事を確認
<...snip...>
Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: allow
!...最終的に該当通信を許可している事を確認

VyOS 設定例

IKE ポリシーの設定

set vpn ipsec ike-group IKE-1W lifetime 86400
set vpn ipsec ike-group IKE-1W proposal 1 dh-group 2
set vpn ipsec ike-group IKE-1W proposal 1 encryption aes128
set vpn ipsec ike-group IKE-1W proposal 1 hash sha1

Phase2ポリシーの設定

set vpn ipsec esp-group ESP-1W lifetime 28800
set vpn ipsec esp-group ESP-1W mode tunnel
set vpn ipsec esp-group ESP-1W pfs dh-group2
set vpn ipsec esp-group ESP-1W proposal 1 encryption aes128
set vpn ipsec esp-group ESP-1W proposal 1 hash sha1

インターフェースでの IPsec 有効化

set vpn ipsec ipsec-interfaces interface eth2

NAT-T 有効化

set vpn ipsec nat-traversal enable

IPsec ピアの設定

set vpn ipsec site-to-site peer 10.1.2.1 authentication mode pre-shared-secret
set vpn ipsec site-to-site peer 10.1.2.1 authentication pre-shared-secret cisco
set vpn ipsec site-to-site peer 10.1.2.1 default-esp-group ESP-1W
set vpn ipsec site-to-site peer 10.1.2.1 ike-group IKE-1W
set vpn ipsec site-to-site peer 10.1.2.1 local-address 10.1.1.2
set vpn ipsec site-to-site peer 10.1.2.1 tunnel 1 esp-group ESP-1W
set vpn ipsec site-to-site peer 10.1.2.1 tunnel 1 local prefix 192.168.20.0/24
set vpn ipsec site-to-site peer 10.1.2.1 tunnel 1 remote prefix 192.168.10.0/24

設定の有効化と保存

commit
save

IPsec 関連の最終設定

show | commands | grep vpn
set vpn ipsec esp-group ESP-1W lifetime '28800'
set vpn ipsec esp-group ESP-1W mode 'tunnel'
set vpn ipsec esp-group ESP-1W pfs 'dh-group2'
set vpn ipsec esp-group ESP-1W proposal 1 encryption 'aes128'
set vpn ipsec esp-group ESP-1W proposal 1 hash 'sha1'
set vpn ipsec ike-group IKE-1W lifetime '86400'
set vpn ipsec ike-group IKE-1W proposal 1 dh-group '2'
set vpn ipsec ike-group IKE-1W proposal 1 encryption 'aes128'
set vpn ipsec ike-group IKE-1W proposal 1 hash 'sha1'
set vpn ipsec ipsec-interfaces interface 'eth2'
set vpn ipsec nat-traversal 'enable'
set vpn ipsec site-to-site peer 10.1.2.1 authentication mode 'pre-shared-secret'
set vpn ipsec site-to-site peer 10.1.2.1 authentication pre-shared-secret 'cisco'
set vpn ipsec site-to-site peer 10.1.2.1 default-esp-group 'ESP-1W'
set vpn ipsec site-to-site peer 10.1.2.1 ike-group 'IKE-1W'
set vpn ipsec site-to-site peer 10.1.2.1 local-address '10.1.1.2'
set vpn ipsec site-to-site peer 10.1.2.1 tunnel 1 esp-group 'ESP-1W'
set vpn ipsec site-to-site peer 10.1.2.1 tunnel 1 local prefix '192.168.20.0/24'
set vpn ipsec site-to-site peer 10.1.2.1 tunnel 1 remote prefix '192.168.10.0/24'

IPsec の確認

vyos@vyos02# run show vpn ike sa
Peer ID / IP                            Local ID / IP
------------                            -------------
10.1.2.1                                10.1.1.2
    State  Encrypt  Hash    D-H Grp  NAT-T  A-Time  L-Time
    -----  -------  ----    -------  -----  ------  ------
    up     aes128   sha1    2        no     11316   86400

vyos@vyos02# run show vpn ipsec sa
Peer ID / IP                            Local ID / IP
------------                            -------------
10.1.2.1                                10.1.1.2
    Tunnel  State  Bytes Out/In   Encrypt  Hash    NAT-T  A-Time  L-Time  Proto
    ------  -----  -------------  -------  ----    -----  ------  ------  -----
    1       up     1.7M/1.7M      aes128   sha1    no     11319   28800   all

冗長試験

正常時

①ASA のフェイルオーバ状況を確認する。*2

ciscoasa# failover exec active show fail
Failover On
Failover unit Primary
Failover LAN Interface: failover GigabitEthernet0/2 (up)
Unit Poll frequency 1 seconds, holdtime 15 seconds
Interface Poll frequency 5 seconds, holdtime 25 seconds
Interface Policy 1
Monitored Interfaces 3 of 61 maximum
Version: Ours 9.2(0)2, Mate 9.2(0)2
Last Failover at: 02:57:55 UTC Sep 19 2016
        This host: Primary - Active 		<--- プライマリ(ASA01)が Active
                Active time: 12055 (sec)
                slot 0: empty
                  Interface inside (192.168.10.1): Normal (Monitored)
                  Interface outside (10.1.2.1): Normal (Monitored)
                  Interface management (192.168.1.101): Normal (Monitored)
        Other host: Secondary - Standby Ready	<--- セカンダリ(ASA02)が Standby
                Active time: 12455 (sec)
                  Interface inside (192.168.10.2): Normal (Monitored)
                  Interface outside (10.1.2.2): Normal (Monitored)
                  Interface management (192.168.1.102): Normal (Monitored)

②CentOS01 から CentOS02 へ Ping を実行し、通信状況を確認する。

CentOS01の Ping 状況

# ping 192.168.20.100 -c 2
PING 192.168.20.100 (192.168.20.100) 56(84) bytes of data.
64 bytes from 192.168.20.100: icmp_seq=1 ttl=63 time=1.39 ms
64 bytes from 192.168.20.100: icmp_seq=2 ttl=63 time=1.45 ms
<...snip...>

ASA でパケットキャプチャ

ciscoasa# capture capout interface outside match esp any any
ciscoasa# show capture capout
<...snip...>
   1: 06:12:28.294433       10.1.2.1 > 10.1.1.2:  ip-proto-50, length 132
   2: 06:12:28.295227       10.1.1.2 > 10.1.2.1:  ip-proto-50, length 132
<...snip...>
ciscoasa# no capture capout interface outside match esp any any
故障時*3

①ASA のフェイルオーバ状況を確認する。*4

ciscoasa# failover exec active show fail
Failover On
Failover unit Secondary
Failover LAN Interface: failover GigabitEthernet0/2 (up)
Unit Poll frequency 1 seconds, holdtime 15 seconds
Interface Poll frequency 5 seconds, holdtime 25 seconds
Interface Policy 1
Monitored Interfaces 3 of 61 maximum
Version: Ours 9.2(0)2, Mate 9.2(0)2
Last Failover at: 06:27:56 UTC Sep 19 2016
        This host: Secondary - Active	<--- セカンダリ(ASA02)が Active へ遷移
                Active time: 40 (sec)
                slot 0: empty
                  Interface inside (192.168.10.1): Normal (Monitored)
                  Interface outside (10.1.2.1): Normal (Waiting)
                  Interface management (192.168.1.101): Normal (Monitored)
        Other host: Primary - Failed	<--- プライマリ(ASA01)が Failed へ遷移
                Active time: 12567 (sec)
                  Interface inside (192.168.10.2): Normal (Monitored)
                  Interface outside (10.1.2.2): No Link (Waiting)
                  Interface management (192.168.1.102): Normal (Monitored)

②CentOS01 から CentOS02 へ Ping を実行し、通信状況を確認する。

CentOS01の Ping 状況

# ping 192.168.20.100 -c 2
PING 192.168.20.100 (192.168.20.100) 56(84) bytes of data.
64 bytes from 192.168.20.100: icmp_seq=1 ttl=63 time=2.61 ms
64 bytes from 192.168.20.100: icmp_seq=2 ttl=63 time=12.6 ms
<...snip...>

ASA でパケットキャプチャ

ciscoasa# capture capout interface outside match esp any any
ciscoasa# show capture capout
<...snip...>
   1: 06:32:43.445243       10.1.2.1 > 10.1.1.2:  ip-proto-50, length 132
   2: 06:32:43.446067       10.1.1.2 > 10.1.2.1:  ip-proto-50, length 132
<...snip...>
ciscoasa# no capture capout interface outside match esp any any

参考:
Configure a Site-to-Site IPSec IKEv1 Tunnel Between an ASA and a Cisco IOS Router
IPSec Tunnel from ASA55xx to VyOS (or Vyatta)
packet-tracerを用いたトラブルシューティング

以上

*1:ASAv(OVA) のインストールは vCenter Server が必須。インストール後の起動には vCenter Server は不要

*2:SSH 経由のため、"failover exec"コマンドを使用し、active 側で確認コマンドを実行する。

*3:ASA01の Outside インターフェース(Ge0/1)で疑似故障発生時

*4:SSH 経由のため、"failover exec"コマンドを使用し、active 側で確認コマンドを実行する。

CentOS6.8への VMware tools インストール

事前に Perl をインストールしておきます。

[root@hostname ~]# yum install perl

対象の仮想マシンを選択し、"VMware Tools のインストール"を実行します。

任意のディレクトリにマウントします。本例では tmp にマウントします。

[root@hostname ~]# mount /dev/cdrom /tmp/

マウントしたファイルを、任意のディレクトリにコピーします。
本例では、vmware という名前のディレクトリを作成し、tmp にマウントされたファイルをコピーします。

[root@hostname ~]# mkdir ./vmware
[root@hostname ~]# cd ./vmware/
[root@hostname ~]# cp -p /tmp/VMwareTools-10.0.6-3595377.tar.gz .

コピーしたファイルを展開します。

[root@hostname ~]# tar zxvf ./VMwareTools-10.0.6-3595377.tar.gz

展開後、vmware-install.pl を実行します。*1

[root@hostname ~]# cd ./vmware-tools-distrib/
[root@hostname ~]# ./vmware-install.pl

対話形式はすべて Enter で問題ありません。

以下のエラーが出力され、インストールに失敗する場合があります。

Creating a new initrd boot image for the kernel.
vmware-tools-thinprint start/running
initctl: Job failed to start
Unable to start services for VMware Tools
Execution aborted.

その際は、"fuse-libs"をインストール後、再度"vmware-install.pl"を実行してみてください。

[root@hostname ~]# yum -y install fuse-libs
[root@hostname ~]# ./vmware-install.pl

以上

*1:Perl を事前にインストールしておく必要があります。

NetApp クォータ設定について

クォータとは

ボリューム内のリソース使用量を追跡し、使用量を制限する機能です。
例えば、ボリュームを CIFS 共有している場合、ボリューム内のディスク使用量や、ファイル数をユーザー単位で制限することが可能です。

クォータの設定

以下の前提条件で、ディスク使用量を制限する設定例になります。

  • NetApp(cDOT)を AD ドメイン環境(example.com)に参加させます。
  • ボリューム(vol1)で CIFS を有効にし、「移動ユーザープロファイル領域」として使用します。
  • ボリューム(vol2)で CIFS を有効にし、「フォルダリダイレクト領域」として使用します。
  • AD ドメイン上の user01及び、user02の上記ディスク使用量を300MBに制限します。

クォータポリシー(quota1)を作成します。

volume quota policy create -vserver svm1 -policy-name quota1

作成したクォータポリシーを SVM(svm1)に割り当てます。

vserver modify -vserver svm1 -quota-policy quota1

vol1とvol2にアクセス可能な全ユーザーを対象に「300MB」のディスク使用量制限を適用します。

volume quota policy rule create -vserver svm1 -policy-name quota1 -volume vol1 -type user -target "" -disk-limit 300MB -qtree ""
volume quota policy rule create -vserver svm1 -policy-name quota1 -volume vol2 -type user -target "" -disk-limit 300MB -qtree ""

ボリュームのクォータを有効化します。

volume quota on -vserver svm1 -volume vol1 -foreground
volume quota on -vserver svm1 -volume vol2 -foreground

クォータレポートを表示します。
ボリュームに AD ドメイン上のユーザーでアクセスすると、各ユーザーの使用状況が表示されます。
なお、ユーザーは「Domain Users」に所属している必要があり、「Domein Admins」や「Administratros」に所属していると、クォータ制限が効かないため注意です。

volume quota report
Vserver: svm1

                                    ----Disk----  ----Files-----   Quota
Volume   Tree      Type    ID        Used  Limit    Used   Limit   Specifier
-------  --------  ------  -------  -----  -----  ------  ------   ---------
vol1               user    *           0B  300MB       0       -   *
vol1               user    BUILTIN\Administrators
                                  194.1MB      -     173       -
vol1               user    EXAMPLE\user01
                                  223.8MB  300MB      10       -   *
vol1               user    root        0B      -       2       -
vol1               user    EXAMPLE\user02
                                    852KB  300MB     122       -   *
vol2               user    *           0B  300MB       0       -   *
vol2               user    BUILTIN\Administrators
                                      8KB      -       5       -
vol2               user    EXAMPLE\user01
                                       0B  300MB       4       -   *
vol2               user    EXAMPLE\user02
                                      8KB  300MB       5       -   *
9 entries were displayed.

この状態で「移動ユーザープロファイル領域」に300MB以上のデーターを置くと、サインアウトの際、以下のエラーが出力されます。
f:id:FriendsNow:20160820225644p:plain

イベントを見ると、容量不足でディスクの書き込みに失敗しています。
f:id:FriendsNow:20160820225654p:plain

また、「フォルダリダイレクト領域」に300MB以上のデータを置こうとすると、ディスク容量不足で以下のエラーが出力されます。
f:id:FriendsNow:20160820225705p:plain

なお、クォータ設定を無効化する際は、以下の手順で実施します。

volume quota off -vserver svm1 -volume vol1 -foreground
volume quota policy rule delete -policy-name quota1 *
vserver modify -vserver svm1 -quota-policy default
volume quota policy delete -vserver svm1 -policy-name quota1

以上