如何在 Oracle Solaris 11 中配置網路
http://www.oracle.com/technetwork/cn/articles/servers-storage-admin/s11-network-config-1632927-zhs.html
Oracle Solaris 11 網路架構與先前版本的 Oracle Solaris 相比有了很大的變化。不但實現方式發生了變化,而且網路介面的名稱以及管理和配置這些介面的命令和方法也有了變化。
引入這些變化是為了給網路管理帶來更統一的整合式體驗,特別是當管理員新增如鏈路聚合、橋接、負載平衡或虛擬網路等較複雜的配置時。除了傳統的固定網路配置之外,Oracle Solaris 11 還引入了使用網路配置檔案的自動網路配置。
Oracle Solaris 11 網路配置新特性
Oracle Solaris 11 引入了兩個新命令來進行手動管理網路:dladm
和 ipadm
,二者結合使用可以取代ifconfig
。與 ifconfig
不同,由 dladm
和 ipadm
所做的更改在重新啟動後持久儲存。它們有著通用、一致的命令格式,並且與 ifconfig
不同,它們的輸出可以解析,從而可在指令碼中使用。
dladm
可執行資料鏈路(第 2 層)管理,配置物理鏈路、聚合、VLAN、IP 隧道和 InfiniBand 分割槽。它還管理鏈路層屬性。
ipadm
可配置 IP 介面、IP 地址和 TCP/IP 協議屬性。它還可取代 ndd
來進行網路層和傳輸層調優。
資料鏈路名稱不再與物理介面相同,它們可能是虛擬裝置。它們改為使用通用名稱,如 net0
或 net1
,管理員也可以為它們指定描述性名稱。這就使得在更改基礎硬體時不會影響網路配置。
此外,Oracle Solaris 11 新增了使用網路配置檔案自動配置網路的功能。配置檔案由兩個管理命令(netadm
和 netcfg
)管理,用一個實體描述網路介面、名稱服務、路由和 IP 過濾器和 IPsec 策略的配置。
手動和自動網路模式
Oracle Solaris 11 使用基於配置檔案的網路配置,其配置模式有兩種:手動配置和自動配置。
根據您在安裝過程中所選的模式,系統啟用 DefaultFixed
網路配置檔案 (NCP) 或 Automatic
NCP。
Automatic
NCP 使用 DHCP 來從連線的任何乙太網介面獲取基本網路配置(IP 地址、路由器和 DNS 伺服器)。如果失敗,它將嘗試連線已知網路列表中訊號最好的無線網路。
DefaultFixed
NCP 有效地禁用了自動網路配置,需要使用 dladm
和 ipadm
手動配置網路介面以及使用 Oracle Solaris Service Management Facility (SMF) 配置名稱服務。
與使用 DefaultFixed
NCP 並手動配置網路相比,建立自己的 NCP 可以更輕鬆地管理 Oracle Solaris 11 聯網。
對於要使用 Oracle Solaris Dynamic Reconfiguration 重新配置的系統或使用了可熱交換介面的情形,應用使用 DefaultFixed
NCP。IP 多路徑傳送必須使用這種配置方式,這是因為使用 Automatic
NCP 時不支援 IP 多路徑傳送。
可以使用 netadm
檢視系統上哪些網路配置檔案是活動的:
root@solaris:~# netadm list
TYPE PROFILE STATE
ncp Automatic online
ncu:phys net0 online
ncu:ip net0 online
loc Automatic online
loc NoNet offline
loc User online
我們在這裡不做過多講解,後面將有一節對此進行介紹。以上輸出顯示已經啟用了 Automatic
NCP。
要切換到 DefaultFixed
NCP,從而啟用手動聯網,執行以下命令:
root@solaris:~# netadm enable -p ncp DefaultFixed
root@solaris:~# netadm list
netadm: DefaultFixed NCP is enabled; automatic network management is not available.
'netadm list' is only supported when automatic network management is active.
要切換回 Automatic
NCP,使用以下命令:
root@solaris:~# netadm enable -p ncp Automatic
root@solaris:~# netadm list
TYPE PROFILE STATE
ncp Automatic uninitialized
ncu:phys net0 uninitialized
ncu:ip net0 uninitialized
loc Automatic uninitialized
隨著系統開始配置資料鏈路並從 DHCP 伺服器接收 IP 地址,我們很快會回到原始聯機狀態:
root@solaris:~# netadm list
TYPE PROFILE STATE
ncp Automatic online
ncu:phys net0 online
ncu:ip net0 online
loc Automatic online
loc NoNet offline
loc User online
手動網路配置
在以下示例中,我們將手動配置伺服器來獲得靜態 IPv4 地址 10.163.198.20。
首先,我們將切換到 DefaultFixed
NCP(如果尚未進行此操作):
root@solaris:~# netadm enable -p ncp DefaultFixed
在有多個物理網路的計算機上,可以使用 dladm
確定如何將網路介面名稱對映到物理介面。
root@solaris:~# dladm show-phys
LINK MEDIA STATE SPEED DUPLEX DEVICE
net0 Ethernet up 1000 full e1000g0
net1 Ethernet unknown 0 unknown pcn0
建立靜態 IP 地址是分兩步進行,一是建立 IP 介面,二是建立 IP 地址。一個 IP 介面可以關聯多個 IP 地址。IP 地址物件的名稱採用這種形式介面/描述。
在清單 1 所示示例中,我們使用 acme
作為描述。
root@solaris:~# ipadm create-ip net0
root@solaris:~# ipadm show-if
IFNAME CLASS STATE ACTIVE OVER
lo0 loopback ok yes ---
net0 ip down no ---
root@solaris:~# ipadm create-addr -T static -a 10.163.198.20/24 net0/acme
root@solaris:~# ipadm show-if
IFNAME CLASS STATE ACTIVE OVER
lo0 loopback ok yes ---
net0 ip ok yes ---
root@solaris:~# ipadm show-addr
ADDROBJ TYPE STATIC ADDR
lo0/v4 static ok 127.0.0.1/8
net0/acme static ok 10.163.198.20/24
lo0/v6 static ok ::1/128
清單 1. 配置靜態 IP 地址
然後我們可以新增永續性預設路由:
root@solaris:~# route -p add default 10.163.198.1
add net default: gateway 10.163.198.1
add persistent net default: gateway 10.163.198.1
使用 SMF 的名稱服務配置
名稱服務配置現在通過 SMF 服務而不是通過 /etc
中的配置檔案來儲存和配置。這個變化是 Oracle Solaris 11 中更廣泛配置變化中的一部分,它提供了更大程度的管理可審計性和對系統配置的控制,尤其是在系統更新期間。
SMF 服務 svc:/network/dns/client
管理過去位於 /etc/resolv.conf
中的配置資訊。SMF 服務 svc:/system/name-service/switch
管理過去位於 /etc/nsswitch.conf
中的配置資訊。在兩種情況下,配置資訊還儲存在老式檔案中,以便與可能讀取它們的其他應用程式相容。您不 應直接編輯這些老式檔案。對屬性的更改只有在重新整理、重新啟動或啟用服務後才會反映到老式檔案中。
注:指定列表和字串作為 SMF 屬性時要求用引號將它們括起來或轉義括號和引號以防止 shell 解釋它們。
示例:使用 SMF 配置 DNS 客戶端
在以下示例中,我們對 svc:/network/dns/client
SMF 服務使用 svccfg
命令配置域名服務 (DNS)。這使我們能夠通過主機名查詢 IP 地址或反之:
root@solaris:~# svccfg -s svc:/network/dns/client setprop
config/search='("uk.acme.com" "us.acme.com" "acme.com")'
root@solaris:~# svccfg -s svc:/network/dns/client listprop config/search
config/search astring "uk.acme.com" "us.acme.com" "acme.com"
root@solaris:~# svccfg -s svc:/network/dns/client setprop
config/nameserver=net_address: '(10.167.162.20 10.167.162.36)'
root@solaris:~# svccfg -s svc:/network/dns/client listprop config/nameserver
config/nameserver net_address 10.167.162.20 10.167.162.36
進行配置更改之後,重新整理 SMF 服務:
root@solaris:~# svcadm refresh svc:/network/dns/client
不必設定每個名稱服務資料庫的屬性。可以使用特殊屬性 config/default
提供預設值。不能使用預設值的項可以單獨定製。
示例:使用 SMF 配置 /etc/switch.conf
在以下示例中,我們使用名稱服務切換機制讓系統可以搜尋 DNS、LDAP、NIS 或本地檔案源來查詢命名資訊。再次對svc:/system/name-service/switch
SMF 服務使用 svccfg
命令:
root@solaris:~# svccfg -s svc:/system/name-service/switch setprop config/default = "files nis"
root@solaris:~# svccfg -s svc:/system/name-service/switch setprop config/host = "files dns nis"
root@solaris:~# svccfg -s svc:/system/name-service/switch setprop config/password = "files nis"
root@solaris:~# svcadm refresh svc:/system/name-service/switch
注:config/host
屬性定義 /etc/nsswitch.conf
中的 hosts
和 ipnodes
項,而 config/password
屬性定義 passwd
項。其餘屬性與其 /etc/nsswitch.conf
項的名稱相同。
設定主機名
在 Oracle Solaris 11 中,已經刪除 /etc/nodename
並代之以 svc:/system/identity:node
服務的 config/nodename
屬性。
為設定主機名,我們再次使用 svccfg
:
root@solaris:~# svccfg -s svc:/system/identity:node setprop config/nodename = astring: hostname
root@solaris:~# svcadm refresh svc:/system/identity:node
root@solaris:~# svcadm restart identity:node
這種設定主機名的方式適用於自動和手動網路配置。
/etc/hosts
的變化
在 Oracle Solaris 11 中,主機 /etc/hosts
中的項現與 localhost
中的一樣。在先前版本的 Oracle Solaris 中,此項與第一個網路介面關聯。
root@solaris:~# cat /etc/hosts
#
# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# Internet host table
#
::1 solaris localhost
127.0.0.1 solaris localhost loghost
注:有些應用程式安裝程式可能會因 /etc/hosts
檔案中的變化而失敗。如果遇到這種情況,可能需要直接編輯 /etc/hosts
。
使用配置檔案的自動網路配置
在 Oracle Solaris 11 中,網路配置檔案有助於聚合分散在先前版本 Oracle Solaris 多個不同配置檔案中的網路配置。切換網路配置檔案將導致由單個管理操作應用的不同網路配置的一系列更改。
雖然由於相容問題,保留了傳統配置檔案,但您不 應直接編輯任何這些檔案,這是因為在配置檔案啟用或系統重新啟動時將覆蓋任何修改。
網路配置檔案
網路配置檔案至少包含網路配置檔案 (NCP) 和位置配置檔案,並且還可能包含外部網路修飾器 (ENM) 和已知無線網路 (WLAN)。
NCP 將一組資料鏈路和 IP 介面定義為網路配置單元 (NCU)。位置配置檔案定義只能在基本 IP 配置之後配置的其他配置,如名稱服務、IP 篩選器規則和 IPsec 策略。
ENM 是在啟用或取消啟用配置檔案時直接修改網路配置的應用程式或服務。例如,配置虛擬私有網路 (VPN) 需要 ENM。本文不介紹 ENM 的使用或無線網路的配置。
配置檔案有手動或自動啟用模式。當自動配置檔案處於活動狀態時,外部網路事件會使 Oracle Solaris 重新評估哪個是“最佳”自動配置檔案並使該配置檔案進入活動狀態。外部事件包括連線或斷開乙太網電纜、獲得或失去 DHCP 租約或發現無線網路。總有一個活動 NCP 和位置配置檔案。無法通過禁用當前配置檔案來禁用聯網。
建立網路配置檔案
未經過修改的 Automatic
配置檔案一般不適用於大多數企業網路,無論這些網路是靜態的還是通過 DHCP 提供的配置資訊多於Automatic
配置檔案使用的資訊的。
如果網路具有靜態分配的 IP 地址,則需要建立一個 NCP 和一個位置配置檔案。
在本例中,我們將以一個杜撰的 Acme 公司的典型企業網路為例。它有靜態分配的網路地址,使用 NIS 和 DNS 組合,不使用 IPv6。
要在 Acme 網路上配置系統,我們需要建立一個 NCP 和一個位置配置檔案。
示例:建立 NCP
要建立 NCP 及其 NCU,我們使用 netcfg
。對於物理鏈路,我們接受 netcfg
提供的預設值。對於 IP 配置,我們希望採用 IPv4 定址和靜態 IP 地址分配,如清單 2 所示。
root@solaris:~# netcfg
netcfg> create ncp acme.corp.ncp
netcfg:ncp:acme.corp.ncp> create ncu phys net0
Created ncu 'net0'. Walking properties ...
activation-mode (manual) [manual|prioritized]>
link-mac-addr>
link-autopush>
link-mtu>
netcfg:ncp:acme.corp.ncp:ncu:net0> list
ncu:net0
type link
class phys
parent "acme.corp.ncp"
activation-mode manual
enabled true
netcfg:ncp:acme.corp.ncp:ncu:net0> end
Committed changes
netcfg:ncp:acme.corp.ncp> create ncu ip net0
Created ncu 'net0'. Walking properties ...
ip-version (ipv4,ipv6) [ipv4|ipv6]> ipv4
ipv4-addrsrc (dhcp) [dhcp|static]> static
ipv4-addr> 10.163.198.20/24
ipv4-default-route> 10.163.198.1
netcfg:ncp:acme.corp.ncp:ncu:net0> list
ncu:net0
type interface
class ip
parent "acme.corp.ncp"
enabled true
ip-version ipv4
ipv4-addrsrc static
ipv4-addr "10.163.198.20/24"
ipv4-default-route "10.163.198.1"
ipv6-addrsrc dhcp,autoconf
netcfg:ncp:acme.corp.ncp:ncu:net0> end
Committed changes
netcfg:ncp:acme.corp.ncp> end
netcfg> end
清單 2. 建立 NCP
現在我們需要建立位置配置檔案,如清單 3 所示。我們通過其啟用模式將位置配置檔案與網路配置檔案關聯。只要 NCP 處於活動狀態,位置配置檔案將自動啟用。
由於 Acme 使用 NIS 名稱服務和 DNS 名稱服務的組合,因此我們需要提供自己的 /etc/nsswitch.conf
,即 /etc/nsswitch.acme
。
root@solaris:~# netcfg
netcfg> create loc acme.corp.loc
Created loc 'acme.corp.loc'. Walking properties ...
activation-mode (manual) [manual|conditional-any|conditional-all]> conditional-all
conditions> ncp acme.corp.ncp is active
nameservices (dns) [dns|files|nis|ldap]> dns,nis
nameservices-config-file ("/etc/nsswitch.dns")> /etc/nsswitch.acme
dns-nameservice-configsrc (dhcp) [manual|dhcp]> manual
dns-nameservice-domain>
dns-nameservice-servers> 10.167.162.20,10.167.162.36
dns-nameservice-search> acme.com,uk.acme.com,us.acme.com
dns-nameservice-sortlist>
dns-nameservice-options>
nis-nameservice-configsrc [manual|dhcp]> manual
nis-nameservice-servers> 10.167.162.21
default-domain> acme.com
nfsv4-domain>
ipfilter-config-file>
ipfilter-v6-config-file>
ipnat-config-file>
ippool-config-file>
ike-config-file>
ipsecpolicy-config-file>
netcfg:loc:acme.corp.loc> list
loc:acme.corp.loc
activation-mode conditional-all
conditions "ncp acme.corp.ncp is active"
enabled false
nameservices dns,nis
nameservices-config-file "/etc/nsswitch.acme"
dns-nameservice-configsrc manual
dns-nameservice-servers "10.167.162.20","10.167.162.36"
dns-nameservice-search "acme.com","uk.acme.com","us.acme.com"
nis-nameservice-configsrc manual
nis-nameservice-servers "10.167.162.21"
default-domain "acme.com"
netcfg:loc:acme.corp.loc> end
Committed changes
netcfg> end
清單 3. 建立位置配置檔案
現在我們可以啟用 NCP 了,如清單 4 所示,並將自動啟用位置配置檔案。
root@solaris:~# netadm enable acme.corp.ncp
Enabling ncp 'acme.corp.ncp'
root@solaris:~# netadm list
TYPE PROFILE STATE
ncp acme.corp.ncp online
ncu:phys net0 online
ncu:ip net0 online
ncp Automatic disabled
loc acme.corp.loc online
loc Automatic offline
loc NoNet offline
loc User disabled
清單 4. 啟用 NCP
編輯 NCP
使用 netcfg
編輯現有 NCP 有兩種方式。一種是使用 set
命令設定各個屬性;另一種是使用 walkprop
命令設定所有屬性。
當您建立配置檔案時,netcfg
將自動執行 walkprop
命令。
在清單 5 所示示例中,我們向現有 acme.corp.loc
位置配置檔案新增第三個 DNS 伺服器。
root@solaris:~# netcfg
netcfg> select loc acme.corp.loc
netcfg:loc:acme.corp.loc> list
loc:acme.corp.loc
activation-mode conditional-all
conditions "ncp acme.corp.ncp is active"
enabled false
nameservices dns,nis
nameservices-config-file "/etc/nsswitch.acme"
dns-nameservice-configsrc manual
dns-nameservice-servers "10.167.162.20","10.167.162.36"
dns-nameservice-search "acme.com", "uk.acme.com","us.acme.com"
nis-nameservice-configsrc manual
nis-nameservice-servers "10.167.162.21"
default-domain "acme.com"
netcfg:loc:acme.corp.loc>
清單 5. 新增 DNS 伺服器
list
命令只顯示已經設定的屬性;list -a
顯示配置檔案的所有屬性,如清單 6 所示。
netcfg:loc:acme.corp.loc> list -a
loc:acme.corp.loc
activation-mode conditional-all
conditions "ncp acme.corp.ncp is active"
enabled false
nameservices dns,nis
nameservices-config-file "/etc/nsswitch.acme"
dns-nameservice-configsrc manual
dns-nameservice-domain
dns-nameservice-servers "10.167.162.20","10.167.162.36"
dns-nameservice-search "acme.com", uk.acme.com","us.acme.com"
dns-nameservice-sortlist
dns-nameservice-options
nis-nameservice-configsrc manual
nis-nameservice-servers "10.167.162.21"
ldap-nameservice-configsrc
ldap-nameservice-servers
default-domain "acme.com"
nfsv4-domain
ipfilter-config-file
ipfilter-v6-config-file
ipnat-config-file
ippool-config-file
ike-config-file
ipsecpolicy-config-file
netcfg:loc:acme.corp.loc>
netcfg:loc:acme.corp.loc> set dns-nameservice-servers = "10.167.162.20","10.167.162.36","192.135.82.44"
netcfg:loc:acme.corp.loc> list
loc:acme.corp.loc
activation-mode conditional-all
conditions "ncp acme.corp.ncp is active"
enabled false
nameservices dns,nis
nameservices-config-file "/etc/nsswitch.dns"
dns-nameservice-configsrc manual
dns-nameservice-servers "10.167.162.20","10.167.162.36","192.135.82.44"
dns-nameservice-search "acme.com", uk.acme.com","us.acme.com"
nis-nameservice-configsrc manual
nis-nameservice-servers "10.167.162.21"
netcfg:loc:acme.corp.loc> verify
All properties verified
netcfg:loc:acme.corp.loc> commit
Committed changes
netcfg:loc:acme.corp.loc> end
netcfg> end
root@solaris:~#
清單 6. 顯示所有屬性
總結
在 Oracle Solaris 11 中,網路配置發生了很大變化,引入了網路配置檔案和實現了對資料中心中不同網路結構的整合管理。通過使用網路配置檔案,管理員可以簡化複雜配置並將其作為一組更改進行應用。
另請參見
有關 Oracle Solaris 11 網路管理的更多資訊,請參見以下管理指南:
下面是 Oracle Solaris 11 的一些其他資源:
- 下載 Oracle Solaris 11
- 訪問 Oracle Solaris 11 產品文件
- 訪問所有 Oracle Solaris 11 方法文章
- 通過 Oracle Solaris 11 培訓和支援瞭解更多資訊
- 檢視官方 Oracle Solaris 部落格
- 檢視 The Observatory 和 OTN Garage 部落格中的 Oracle Solaris 提示和技巧
- 通過 Facebook 和 Twitter 關注 Oracle Solaris
關於作者
Andrew Walton 是 Oracle ISV 組的高階工程師,在 UNIX 業界有著 20 多年的經驗,曾就職於 Silicon Graphics、Sun 和 Oracle。他專注於應用程式效能調優以及 C 和 C++ 程式碼移植。
相關文章
- Solaris 網路應用配置(轉)
- solaris 10 網路配置全過程(轉)
- Solaris 11 中 Oracle RAC 私網冗餘模式從HAIP到IPMPOracle模式AI
- oracle網路配置Oracle
- 九、Oracle網路配置Oracle
- solaris 網路設定
- 在Solaris 11上安裝Oracle 11.2.0.3Oracle
- 配置oracle網路環境Oracle
- 網路安裝solaris(轉)
- Solaris 10 網路卡相關配置
- oracle網路配置:三個配置檔案Oracle
- 安裝Oracle11106 for Solaris 10Oracle
- 實戰安裝oracle11g on solaris11Oracle
- 網路安裝Solaris 10(轉)
- solaris9網路安裝
- Solaris 11中配置基於link的IPMP
- Solaris下Oracle RAC 11.2.0.4 安裝方法Oracle
- Solaris 10上安裝Oracle 11gOracle
- 解除安裝Oracle11gr2 for SolarisOracle
- Oracle釋出Solaris 11 for Sparc/x86Oracle
- 如何在Rescue模式下配置網路和SSH登入模式
- 【Solaris】Virtualbox 安裝 Oracle Solaris 10(三) 安裝完成後初始配置Oracle
- oracle的網路配置檔案(轉)Oracle
- solaris DNS 配置DNS
- Solaris IPMP 配置
- 為SOLARIS 10 新增網路印表機
- 如何在solaris的oracle sqlplus中使用sqlplusOracleSQL
- 如何在solaris上安裝oracle817 --zt from yangtingkuiOracleUI
- 如何在Windows 11系統中將任意檔案(如bat/log等)固定在開始選單?WindowsBAT
- Solaris 10.5 安裝Oracle 11gR2Oracle
- Solaris 10下安裝Oracle11r2Oracle
- Oracle11gr2網路配置新增TRANSPORT_CONNECT_TIMEOUT引數Oracle
- solaris11進行dns客戶端配置詳解DNS客戶端
- Solaris網路管理:網路地址和掩碼(轉)
- solaris網路管理基礎培訓(轉)
- Solaris 10配置VNCServerVNCServer
- solaris的dns配置DNS
- Solaris下配置ASMASM