[toc] > **更新說明** > 2023/11 更新版本至 NIOS 9 根據 [Infoblox DNS 安全解決方案測試需求及說明](https://hackmd.io/@farmer87/infoblox_poc) 內容進行 POC 環境佈署。 # 佈署版本 | 項目 | 版本 | | --- | --- | | VMware ESXi | 7.0.3 build-20036589 | | Infoblox NIOS | nios-9.0.3-50212-ee11d5834df9-2023-11-23-00-01-55-fixed-500G.ova | | NIOS Grid Master VM | TE-V1516 | | NIOS Reporting VM | TR-V5005 | :::info - 目前佈署版本為 NIOS 9 ~~nios-8.6.3-51135 為最新版本,已經完成 hotfix 修補~~。 - 配置 Infoblox **Reporting** 設備時,需要選擇下列**指定機種進行安裝**: - **IB-V805** (TR-V805) - **IB-V1405** (TR-V1405) - **IB-V2205** (TR-V2205) - **IB-V4005** (TR-V4005) - **IB-V5005** (TR-V5005) ::: :::warning 請根據可提供硬體資源佈署對應 vNIOS 虛擬設備。 ::: # 佈署流程圖 ```mermaid graph TD; id1(佈署Infoblox虛擬機器)-->id2(開啟TE-V1516); id2(開啟TE-V1516)-->id3([重新配置網路]); id3([重新配置網路])-->id4(指派授權NIOS,DNS/DHCP,GRID); id4(指派授權NIOS,DNS/DHCP,GRID)-->id16(建立叢集); id16(建立叢集)-->id7(配置成員); id7(配置成員)-->id20[(完成)]; id11(佈署Infoblox虛擬機器)-->id12(開啟TR-V5005); id12(開啟TR-V5005)-->id13([重新配置網路]); id13([重新配置網路])-->id14(指派授權NIOS,GRID); id14(指派授權NIOS,GRID)-->id15(加入叢集); id15(加入叢集)-->id17(指派Reporting授權); id17(指派Reporting授權)-->id20[(完成)]; ``` :::info - 完成虛擬機器佈署後,可先**配置網路**,再根據配置角色**指派授權**。 - 指派授權時,可先根據功能屬性,**指派 NIOS 授權**,完成授權安裝後,**系統會自動重啟**,並根據指定的 NIOS 授權完成該機種屬性配置。 - Reporting 角色增加的 250GB 磁碟空間,完成 NIOS 授權指派並系統重啟後才會顯示。 - 要建立叢集或加入叢集都需先**指派 GRID 授權**。 - 先在 Grid Master 角色的虛擬機器上**完成 Grid 配置**,並設定欲**加入 Grid 成員資訊**,否則成員無法成功加入叢集。 - Grid 成員資料輸入需要 FQDN,但此時應該是不需要透過 DNS 服務達成。 - **Reporting subscription 授權** 必須要在成功加入 Gid 後才能進行指派動作。 - **Grid Master** 還需指派 **Response Policy Zones** 和 **Threat Analytics** 授權。 ::: # 佈署程序 ## 佈署 Infoblox 虛擬機器 使用 **ovftool 工具**進行 POC 環境佈署,並完成以下目標: - **佈署 2 台 Infoblox 虛擬機器** | VM | vCPU | RAM | Grid 角色 | | --- | :-: | :-: | --- | | TE-V1516 | 12 | 64 | Grid Master & DNS | | TR-V5005 | 8 | 64 | Grid Member(Reporting) | :::warning 因為測試主機資源有限,將 TR-V5005 的 RAM 調降至 32GB。 ::: - **自動新增 TR-V5005 虛擬機器 250GB 虛擬磁碟** - **開啟虛擬機器電源** :::info - 參考附錄-[**`setupPoc.sh`**](#setupPoc.sh) 執行後可自動達成上述目標。 - 佈署腳本程式採用 **ovftool** 和 **govc** 工具完成。 - 若佈署標的是 vCenter,可以應用 **vApp 選項** 套用參數自動配置 IP 屬性。但佈署標的是 ESXi 則無法應用 **vApp 選項**,雖然有方法可行,這邊就不深入了!直接完成佈署後續再透過 NIOS CLI 完成 IP 組態。 ::: ### 佈署結果 :::warning ::: **Grid Master: TE-V1516** ![螢幕快照 2024-01-11 08-32-34](https://hackmd.io/_uploads/SJ9nDh2ua.png) **Reporting: TR-V5005** ![螢幕快照 2024-01-11 08-35-27](https://hackmd.io/_uploads/HJZPu3h_6.png) ## 連線虛擬機器 確認佈署虛擬機器已正常開機,逐步完成設定程序。此階段請使用 VMware Remote Console 連線虛擬機器完成。 :::info 預設登入帳密資訊: **admin** / **infoblox** ::: ### 登入檢測 輸入以下命令確認佈署狀態。 - show version - show license - show status - show disk **TE-V1516** ![](https://hackmd.io/_uploads/SJmXUOM5h.png) **TR-V5005** ![](https://hackmd.io/_uploads/BkLNU_z93.png) :::warning **注意** **Reporting 虛擬機器** 在成功指派授權前,先前新增的 250GB 虛擬磁碟無法顯示。待指派授權完成重啟系統後,便可正常顯示存儲空間。 ![](https://hackmd.io/_uploads/BkpJwIA5h.png) ::: ## 配置網路 :::info :information_source: 若此時網路配置還未確認,可以先跳過此步驟,先進行[[**授權指派**]](#指派授權)作業。 ::: 預設佈署 IPv4 位址為 **192.168.1.2/255.255.255.0**,預設閘道為 **192.168.1.1**。輸入 **`show network`** 可檢視目前 IP 組態資訊。 ![](https://hackmd.io/_uploads/Bk4tBKM9n.png) POC 環境配置資訊如下。使用 **`set network`** 進行互動式配置。 | 項目 | 配置 | | --- | :-: | | TE-V1516 | 10.7.155.91 | | TR-V5005 | 10.7.155.92 | | Netmask | 255.255.255.0 | | Gateway | 10.7.155.254 | | VLAN Tag | Untagged(Default) 請根據實際環境調整 | | Configure IPv6 Network | no | | Become grid member | no | 以 **TE-1516** 作為設定範例。 ![](https://hackmd.io/_uploads/B1XZLtf9h.png) :::info :information_source: 完成網路設定,系統會重啟網路服務。 ::: ![](https://hackmd.io/_uploads/SkYHPtf53.png) 繼續完成 **TR-V5005** 網路組態。 ![](https://hackmd.io/_uploads/B1WiFl75h.png) ![](https://hackmd.io/_uploads/BJT-qe7c3.png) :::info - 若在完成 **Grid 授權指派**後才設定網路,使用 **`set network`** 設定網路時,會多一個 **Become grid member** 選項。 - Grid 成員加入必須先在 Grid Master 上完成**建立叢集**和**指定成員**。且 Grid 成員和 Grid Master 的網路必須能夠溝通。 ::: ### Remote Console 輸入 **`set remote_console`** 啟用 SSH 遠端連線功能。完成後可透過 SSH 連線進行後續設定,而不需要使用 VMware Remote Console。 ![](https://hackmd.io/_uploads/B1H8bKG9n.png) 接著使用 SSH 遠端連線 TE-1425。 ![](https://hackmd.io/_uploads/HkyxnpQ92.png) ## 指派授權 輸入 **`set temp_license`** 命令可以為 NIOS 設備產生並安裝 **60 天臨時授權**。使用 **`show license`** 命令檢視目前授權資訊。 請根據以下功能需求配置 POC 所需的授權。 | Appliance | Model | License Type| | --- | --- | --- | | NIOS Appliance | TE-1516 | NIOS, Grid, DNS, [DHCP] | | Reporting Appliance | TR-V5005 | NIOS, Grid | ### NIOS Appliance (TE-V1516) 指派 DNS, DHCP, Grid 授權。輸入 **set temp_license** > **2** > **y** > **y|n** 完成。 ![](https://hackmd.io/_uploads/HJ1CExQ5h.png) :::info - 指派 **Response Policy Zone** 授權,請選擇 **11**。 - 指派 **Threat Analytics** 授權,請選擇 **16**。 ::: 指派 NIOS 授權。輸入 **set temp_license** > **4** > **8** > **y** 完成。 :::danger ![](https://hackmd.io/_uploads/HyrfLlX92.png) ![](https://hackmd.io/_uploads/B1ISIl7cn.png) ::: :::info :information_source: 設定 **NIOS 授權**,系統會**重新啟動**,所以 NIOS Appliacne 也可以先選擇功能授權 (DNS, DHCP,Grid) 再選擇 NIOS 授權。 ::: 系統重啟並成功登入後,使用 **`show license`** 檢視授權資訊。 ![](https://hackmd.io/_uploads/SJ3qLeQc3.png) ### Reporting Appliance (TR-V5005) :::info :information_source: 對於 Reporting Appliance 請先選取 NIOS 授權。 ::: 指派 NIOS 授權。輸入 **set temp_license** > **4** > **16** > **y** 完成。 ![](https://hackmd.io/_uploads/By7jox7q3.png) ![](https://hackmd.io/_uploads/HyNpjxmq2.png) 系統重啟並成功登入後,再次輸入 **`show license`** 檢視授權資訊。 ![](https://hackmd.io/_uploads/rynHhgQ93.png) 輸入 **`set temp_license`** 命令完成功能授權指派。此時發現 **Reporting Appliance** 可以指派的授權僅剩下: - NIOS License(已指派) - **Grid License** - **Reporting subscription License** ![](https://hackmd.io/_uploads/rkgj2eQqn.png) :::warning - **Reporting subscription 授權** 必須要在成功加入 Gid 後才能進行指派動作。 ![](https://hackmd.io/_uploads/rJfC2gm92.png) - 佈署 **Reporting Appliance** 時新增的 250GB 磁碟空間,未指定 NIOS 授權時無法正常顯示。 ![](https://hackmd.io/_uploads/rJ_9F94oh.png) - 正確指派 NIOS 授權後,便會正常顯示 250GB 磁碟空間。 ![](https://hackmd.io/_uploads/SJNT95Nih.png) ::: :::danger 使用 **`reset all licenses`** 將會**清除數據庫、配置和網路設置**。並在重新恢復出廠預設值前**清除設備中的所有授權許可訊息**。 ::: ## 後續配置 完成 Grid 授權後,使用瀏覽器連線 Grid Master 的 IP 位址,就會顯示下列畫面,請按照畫面逐步完成第一次設定。 ![](https://hackmd.io/_uploads/B1VFaxmch.png) :::warning 若沒有指派 Grid 授權,第一次登入 Infoblox 虛擬機,會顯示 **System Manager** 登入畫面,而非 **Grid Manager** 登入畫面。 <img width=480 src='https://hackmd.io/_uploads/ByLTPcVs3.png'> ::: 確認 EULA。 ![](https://hackmd.io/_uploads/rkM26x7q2.png) 管理首頁。 ![](https://hackmd.io/_uploads/BkzNRemch.png) 完成 Grid Setup Wizard 設定。 ![](https://hackmd.io/_uploads/HJgqAlmc2.png) :::warning 未指派 Grid 授權,則會出現 **NIOS Setup Wizard** 設定畫面。 ![](https://hackmd.io/_uploads/BJ31tcNjh.png) ::: 使用下面兩個 Infoblox WAPI 可以完成 - 在 Grid Master 上設定 Grid 成員紀錄。 ![](https://hackmd.io/_uploads/ByPYReIs2.png) - 在 Grid 成員上啟用加入 Grid 程序。 ![](https://hackmd.io/_uploads/rJC5AgLj3.png) 之後的配置等下次有時間再做整理吧,暫時告一段落囉! :::warning - 建立 Grid 及加入成員步驟,初步可用 **Infoblox WAPI** 來達成,但是完成度還不高,暫時就不分享了。 - RPZ 相關設定應該也可以用 Infoblox WAPI 達成?只是這方面的資訊很少,研讀及測試成本過高,不過對於之後要自動化佈署及建置環境應該是還蠻有助益的。 - :construction: [使用 OVFTools 及 API 建置 Infoblox 基礎環境](https://hackmd.io/@farmer87/infoblox_poc_api_deployment) ::: # 清理 POC 環境 如果測試完成,可以直接透過 **`govc vm.destroy {vm}`** 的方式,將佈署的虛擬機器直接暴力刪除!可以參考 [**cleanPoc.sh**](#cleanPocsh) 程式範本達成。 執行命令輕鬆整理環境。 ![](https://hackmd.io/_uploads/BkXNIRBi3.png) 還給同事一個新的測試環境。 ![](https://hackmd.io/_uploads/HJkMURBs3.png) # 附錄 ## setupPoc.sh ```bash #!/bin/bash # function initPoc() { echo -e "\n[TASK] Initial POC Environment" ## nios ova nios_ova_basePath='/home/richard/Projects/infoblox/nios_ova' nios_ova_file="nios-8.6.3-51135-1241097029df-2023-06-23-03-50-26-ddi.ova" source_lactor="${nios_ova_basePath}/${nios_ova_file}" ## deployment diskmode='thin' portgroup='VM Network' ## infoblox grid master ib_gm_vmname="TE-V1425" ib_gm_deployment_option='1425' ## infoblox reporting ib_reporting_vmname="TR-V5005" ib_reporting_deployment_option='otherModel' ## 250GB vdisk for reporting disk_name='disk-1000-1' disk_size='250G' ## ESXi info esxi_user='root' esxi_pass='VMware1!VMware1!' esxi_ip='10.7.155.13' esxi_datacenter='ha-datacenter' esxi_datastore='datastore1' target_locator="$(urlencode ${esxi_user}):$(urlencode ${esxi_pass})@${esxi_ip}" datacenter='ha-datacenter' datastore='datastore1' } function initGovc () { echo -e "\n[TASK] Initial GOVC Environment" export GOVC_URL="https://${esxi_ip}" export GOVC_USERNAME="${esxi_user}" export GOVC_PASSWORD="${esxi_pass}" export GOVC_INSECURE="true" export GOVC_DATACENTER="${esxi_datacenter}" export GOVC_DATASTORE="${esxi_datastore}" } function deployVm () { vmName=${1} deployOption=${2} echo -e "\n[TASK] Deploying Infoblox VM \"${vmName}\"" /usr/bin/ovftool \ --acceptAllEulas \ --allowExtraConfig \ --noSSLVerify \ --skipManifestCheck \ --X:disableHostnameResolve \ --X:ignoreLinkLocalIp \ --X:injectOvfEnv \ --parallelThreads=22 \ --name="${vmName}" \ --datastore="${datastore}" \ --diskMode="${diskmode}" \ --net:"VM Network"="${portgroup}" \ --deploymentOption="${deployOption}" \ "${source_lactor}" \ vi://"${target_locator}" } function addDisk () { vmName=${1} echo -e "\n[TASK] Create 250GB vDisk and attach to VM \"${vmName}\"" govc vm.disk.create -vm ${vmName} -name ${vmName}/${disk_name} -size ${disk_size} } function powerOn () { vmName=${1} echo -e "\n[TASK] Power on VM \"${vmName}\"" govc vm.power -on ${vmName} } ## initial POC & GOVC environment initPoc initGovc ## deploy infoblox grid master deployVm ${ib_gm_vmname} ${ib_gm_deployment_option} ## deploy infoblox reporting deployVm ${ib_reporting_vmname} ${ib_reporting_deployment_option} ## create 250GB disk for infoblox reporting addDisk ${ib_reporting_vmname} sleep 10 ## power on VM(s) powerOn ${ib_gm_vmname} powerOn ${ib_reporting_vmname} ``` ## cleanPoc.sh ```bash #!/bin/bash # function initGovc () { echo -e "\n[TASK] Initial GOVC Environment" export GOVC_URL="https://${esxi_ip}" export GOVC_USERNAME="${esxi_user}" export GOVC_PASSWORD="${esxi_pass}" export GOVC_INSECURE="true" export GOVC_DATACENTER="${esxi_datacenter}" export GOVC_DATASTORE="${esxi_datastore}" } function destroyVm () { vmName=${1} echo -e "\n[TASK] Power Off and destroy Infoblox VM \"${vmName}\"" if govc find / -type m | grep ${vmName}; then echo -e " > Deleteing ......" govc vm.destroy ${vmName} else echo -e " > VM \"${vmName}\" NOT FOUND" fi } ## ESXi info esxi_ip='10.7.155.13' esxi_user='root' esxi_pass='VMware1!VMware1!' esxi_datacenter='ha-datacenter' esxi_datastore='datastore1' ## infoblox vm info ib_gm_vmname="TE-V1425" ib_reporting_vmname="TR-V5005" ## init govc initGovc ## delete infoblox poc environment destroyVm ${ib_gm_vmname} destroyVm ${ib_reporting_vmname} ``` ## 修改 ESXi 管理 IP 使用 DCUI 命令進行修改。 首先用 SSH 連線至 ESXi 管理介面,並輸入 **`dcui`** 命令進行 **Direct Console 使用者介面**。 ![image](https://hackmd.io/_uploads/BJ1kCY5_a.png) 按下 **F2** 調整組態。 ![螢幕快照 2024-01-09 17-12-22](https://hackmd.io/_uploads/rk280Kc_p.png) 輸入管理者驗證資訊,按下 **`Enter`** 登入。 ![image](https://hackmd.io/_uploads/BJUCCKcdT.png) ![螢幕快照 2024-01-09 17-18-42](https://hackmd.io/_uploads/H1dlx9qdT.png) ![螢幕快照 2024-01-09 17-20-54](https://hackmd.io/_uploads/ryAHg9c_T.png) ![螢幕快照 2024-01-09 17-24-03](https://hackmd.io/_uploads/SkXW-55OT.png) ![螢幕快照 2024-01-09 17-26-06](https://hackmd.io/_uploads/SJd8W5cup.png) ![螢幕快照 2024-01-09 17-26-52](https://hackmd.io/_uploads/SkI5W9cOp.png)