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 引入了兩個新命令來進行手動管理網絡: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 listTYPE PROFILE STATEncp Automatic onlinencu:phys net0 onlinencu:ip net0 onlineloc Automatic onlineloc NoNet offlineloc User online我們在這里不做過多講解,后面將有一節對此進行介紹。以上輸出顯示已經啟用了
Automatic
NCP。要切換到
DefaultFixed
NCP,從而啟用手動聯網,運行以下命令:root@solaris:~# netadm enable -p ncp DefaultFixedroot@solaris:~# netadm listnetadm: 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 Automaticroot@solaris:~# netadm listTYPE PROFILE STATEncp Automatic uninitializedncu:phys net0 uninitializedncu:ip net0 uninitializedloc Automatic uninitialized隨著系統開始配置數據鏈路并從 DHCP 服務器接收 IP 地址,我們很快會回到原始聯機狀態:
root@solaris:~# netadm listTYPE PROFILE STATEncp Automatic onlinencu:phys net0 onlinencu:ip net0 onlineloc Automatic onlineloc NoNet offlineloc User online手動網絡配置
在以下示例中,我們將手動配置服務器來獲得靜態 IPv4 地址 10.163.198.20。
首先,我們將切換到
DefaultFixed
NCP(如果尚未進行此操作):root@solaris:~# netadm enable -p ncp DefaultFixed在有多個物理網絡的計算機上,可以使用
dladm
確定如何將網絡接口名稱映射到物理接口。root@solaris:~# dladm show-physLINK MEDIA STATE SPEED DUPLEX DEVICEnet0 Ethernet up 1000 full e1000g0net1 Ethernet unknown 0 unknown pcn0創建靜態 IP 地址是分兩步進行,一是創建 IP 接口,二是創建 IP 地址。一個 IP 接口可以關聯多個 IP 地址。IP 地址對象的名稱采用這種形式接口/描述。
在清單 1 所示示例中,我們使用
acme
作為描述。root@solaris:~# ipadm create-ip net0root@solaris:~# ipadm show-ifIFNAME CLASS STATE ACTIVE OVERlo0 loopback ok yes ---net0 ip down no ---root@solaris:~# ipadm create-addr -T static -a 10.163.198.20/24 net0/acmeroot@solaris:~# ipadm show-ifIFNAME CLASS STATE ACTIVE OVERlo0 loopback ok yes ---net0 ip ok yes ---root@solaris:~# ipadm show-addrADDROBJ TYPE STATIC ADDRlo0/v4 static ok 127.0.0.1/8net0/acme static ok 10.163.198.20/24lo0/v6 static ok ::1/128清單 1. 配置靜態 IP 地址
然后我們可以添加持久性默認路由:
root@solaris:~# route -p add default 10.163.198.1add net default: gateway 10.163.198.1add 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/searchconfig/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/nameserverconfig/nameserver net_address 10.167.162.20 10.167.162.36進行配置更改之后,刷新 SMF 服務:
root@solaris:~# svcadm refresh svc:/network/dns/client不必設置每個名稱服務數據庫的屬性??梢允褂锰厥鈱傩?nbsp;
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: hostnameroot@solaris:~# svcadm refresh svc:/system/identity:noderoot@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:~# netcfgnetcfg> create ncp acme.corp.ncpnetcfg:ncp:acme.corp.ncp> create ncu phys net0Created ncu 'net0'. Walking properties ...activation-mode (manual) [manual|prioritized]> link-mac-addr> link-autopush> link-mtu> netcfg:ncp:acme.corp.ncp:ncu:net0> listncu:net0 type link class phys parent "acme.corp.ncp" activation-mode manual enabled truenetcfg:ncp:acme.corp.ncp:ncu:net0> endCommitted changesnetcfg:ncp:acme.corp.ncp> create ncu ip net0Created ncu 'net0'. Walking properties ...ip-version (ipv4,ipv6) [ipv4|ipv6]> ipv4ipv4-addrsrc (dhcp) [dhcp|static]> staticipv4-addr> 10.163.198.20/24ipv4-default-route> 10.163.198.1netcfg:ncp:acme.corp.ncp:ncu:net0> listncu: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,autoconfnetcfg:ncp:acme.corp.ncp:ncu:net0> endCommitted changesnetcfg:ncp:acme.corp.ncp> endnetcfg> end清單 2. 創建 NCP
現在我們需要創建位置配置文件,如清單 3 所示。我們通過其激活模式將位置配置文件與網絡配置文件關聯。只要 NCP 處于活動狀態,位置配置文件將自動激活。
由于 Acme 使用 NIS 名稱服務和 DNS 名稱服務的組合,因此我們需要提供自己的
/etc/nsswitch.conf
,即/etc/nsswitch.acme
。root@solaris:~# netcfgnetcfg> create loc acme.corp.locCreated loc 'acme.corp.loc'. Walking properties ...activation-mode (manual) [manual|conditional-any|conditional-all]> conditional-allconditions> ncp acme.corp.ncp is activenameservices (dns) [dns|files|nis|ldap]> dns,nisnameservices-config-file ("/etc/nsswitch.dns")> /etc/nsswitch.acmedns-nameservice-configsrc (dhcp) [manual|dhcp]> manualdns-nameservice-domain> dns-nameservice-servers> 10.167.162.20,10.167.162.36dns-nameservice-search> acme.com,uk.acme.com,us.acme.comdns-nameservice-sortlist> dns-nameservice-options> nis-nameservice-configsrc [manual|dhcp]> manualnis-nameservice-servers> 10.167.162.21default-domain> acme.comnfsv4-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> listloc: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> endCommitted changesnetcfg> end清單 3. 創建位置配置文件
現在我們可以激活 NCP 了,如清單 4 所示,并將自動激活位置配置文件。
root@solaris:~# netadm enable acme.corp.ncpEnabling ncp 'acme.corp.ncp'root@solaris:~# netadm listTYPE PROFILE STATEncp acme.corp.ncp onlinencu:phys net0 onlinencu:ip net0 onlinencp Automatic disabledloc acme.corp.loc onlineloc Automatic offlineloc NoNet offlineloc User disabled清單 4. 激活 NCP
編輯 NCP
使用
netcfg
編輯現有 NCP 有兩種方式。一種是使用set
命令設置各個屬性;另一種是使用walkprop
命令設置所有屬性。當您創建配置文件時,
netcfg
將自動執行walkprop
命令。在清單 5 所示示例中,我們向現有
acme.corp.loc
位置配置文件添加第三個 DNS 服務器。root@solaris:~# netcfgnetcfg> 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 -aloc: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-filenetcfg: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 管理:IP 服務Oracle Solaris 管理:命名服務和目錄服務Oracle Solaris 管理:網絡接口和網絡虛擬化下面是 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++ 代碼移植。
新聞熱點
疑難解答
圖片精選