http://www.Oracle.com/technetwork/cn/articles/servers-storage-admin/s11-network-config-1632927-zhs.html
Oracle Solaris 11 網(wǎng)絡(luò)架構(gòu)與先前版本的 Oracle Solaris 相比有了很大的變化。不但實現(xiàn)方式發(fā)生了變化,而且網(wǎng)絡(luò)接口的名稱以及管理和配置這些接口的命令和方法也有了變化。
引入這些變化是為了給網(wǎng)絡(luò)管理帶來更統(tǒng)一的集成式體驗,特別是當(dāng)管理員添加如鏈路聚合、橋接、負載平衡或虛擬網(wǎng)絡(luò)等較復(fù)雜的配置時。除了傳統(tǒng)的固定網(wǎng)絡(luò)配置之外,Oracle Solaris 11 還引入了使用網(wǎng)絡(luò)配置文件的自動網(wǎng)絡(luò)配置。
Oracle Solaris 11 引入了兩個新命令來進行手動管理網(wǎng)絡(luò):dladm 和 ipadm,二者結(jié)合使用可以取代ifconfig。與 ifconfig 不同,由 dladm 和 ipadm 所做的更改在重新啟動后持久保存。它們有著通用、一致的命令格式,并且與 ifconfig 不同,它們的輸出可以解析,從而可在腳本中使用。
dladm 可執(zhí)行數(shù)據(jù)鏈路(第 2 層)管理,配置物理鏈路、聚合、VLAN、IP 隧道和 InfiniBand 分區(qū)。它還管理鏈路層屬性。
ipadm 可配置 IP 接口、IP 地址和 TCP/IP 協(xié)議屬性。它還可取代 ndd 來進行網(wǎng)絡(luò)層和傳輸層調(diào)優(yōu)。
數(shù)據(jù)鏈路名稱不再與物理接口相同,它們可能是虛擬設(shè)備。它們改為使用通用名稱,如 net0 或 net1,管理員也可以為它們指定描述性名稱。這就使得在更改基礎(chǔ)硬件時不會影響網(wǎng)絡(luò)配置。
此外,Oracle Solaris 11 添加了使用網(wǎng)絡(luò)配置文件自動配置網(wǎng)絡(luò)的功能。配置文件由兩個管理命令(netadm 和 netcfg)管理,用一個實體描述網(wǎng)絡(luò)接口、名稱服務(wù)、路由和 IP 過濾器和 IPsec 策略的配置。
Oracle Solaris 11 使用基于配置文件的網(wǎng)絡(luò)配置,其配置模式有兩種:手動配置和自動配置。
根據(jù)您在安裝過程中所選的模式,系統(tǒng)激活 DefaultFixed 網(wǎng)絡(luò)配置文件 (NCP) 或 Automatic NCP。
Automatic NCP 使用 DHCP 來從連接的任何以太網(wǎng)接口獲取基本網(wǎng)絡(luò)配置(IP 地址、路由器和 DNS 服務(wù)器)。如果失敗,它將嘗試連接已知網(wǎng)絡(luò)列表中信號最好的無線網(wǎng)絡(luò)。
DefaultFixed NCP 有效地禁用了自動網(wǎng)絡(luò)配置,需要使用 dladm 和 ipadm 手動配置網(wǎng)絡(luò)接口以及使用 Oracle Solaris Service Management Facility (SMF) 配置名稱服務(wù)。
與使用 DefaultFixed NCP 并手動配置網(wǎng)絡(luò)相比,創(chuàng)建自己的 NCP 可以更輕松地管理 Oracle Solaris 11 聯(lián)網(wǎng)。
對于要使用 Oracle Solaris Dynamic Reconfiguration 重新配置的系統(tǒng)或使用了可熱交換接口的情形,應(yīng)用使用 DefaultFixed NCP。IP 多路徑傳送必須使用這種配置方式,這是因為使用 Automatic NCP 時不支持 IP 多路徑傳送。
可以使用 netadm 查看系統(tǒng)上哪些網(wǎng)絡(luò)配置文件是活動的:
root@solaris:~# netadm listTYPE PROFILE STATEncp Automatic onlinencu:phys net0 onlinencu:ip net0 onlineloc Automatic onlineloc NoNet offlineloc User online我們在這里不做過多講解,后面將有一節(jié)對此進行介紹。以上輸出顯示已經(jīng)啟用了
AutomaticNCP。要切換到
DefaultFixedNCP,從而啟用手動聯(lián)網(wǎng),運行以下命令: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.要切換回
AutomaticNCP,使用以下命令:root@solaris:~# netadm enable -p ncp Automaticroot@solaris:~# netadm listTYPE PROFILE STATEncp Automatic uninitializedncu:phys net0 uninitializedncu:ip net0 uninitializedloc Automatic uninitialized隨著系統(tǒng)開始配置數(shù)據(jù)鏈路并從 DHCP 服務(wù)器接收 IP 地址,我們很快會回到原始聯(lián)機狀態(tài):
root@solaris:~# netadm listTYPE PROFILE STATEncp Automatic onlinencu:phys net0 onlinencu:ip net0 onlineloc Automatic onlineloc NoNet offlineloc User online手動網(wǎng)絡(luò)配置
在以下示例中,我們將手動配置服務(wù)器來獲得靜態(tài) IPv4 地址 10.163.198.20。
首先,我們將切換到
DefaultFixedNCP(如果尚未進行此操作):root@solaris:~# netadm enable -p ncp DefaultFixed在有多個物理網(wǎng)絡(luò)的計算機上,可以使用
dladm確定如何將網(wǎng)絡(luò)接口名稱映射到物理接口。root@solaris:~# dladm show-physLINK MEDIA STATE SPEED DUPLEX DEVICEnet0 Ethernet up 1000 full e1000g0net1 Ethernet unknown 0 unknown pcn0創(chuàng)建靜態(tài) IP 地址是分兩步進行,一是創(chuàng)建 IP 接口,二是創(chuàng)建 IP 地址。一個 IP 接口可以關(guān)聯(lián)多個 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. 配置靜態(tài) 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 的名稱服務(wù)配置
名稱服務(wù)配置現(xiàn)在通過 SMF 服務(wù)而不是通過
/etc中的配置文件來存儲和配置。這個變化是 Oracle Solaris 11 中更廣泛配置變化中的一部分,它提供了更大程度的管理可審計性和對系統(tǒng)配置的控制,尤其是在系統(tǒng)更新期間。SMF 服務(wù)
svc:/network/dns/client管理過去位于/etc/resolv.conf中的配置信息。SMF 服務(wù)svc:/system/name-service/switch管理過去位于/etc/nsswitch.conf中的配置信息。在兩種情況下,配置信息還存儲在老式文件中,以便與可能讀取它們的其他應(yīng)用程序兼容。您不 應(yīng)直接編輯這些老式文件。對屬性的更改只有在刷新、重新啟動或啟用服務(wù)后才會反映到老式文件中。注:指定列表和字符串作為 SMF 屬性時要求用引號將它們括起來或轉(zhuǎn)義括號和引號以防止 shell 解釋它們。
示例:使用 SMF 配置 DNS 客戶端
在以下示例中,我們對
svc:/network/dns/clientSMF 服務(wù)使用svccfg命令配置域名服務(wù) (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 服務(wù):
root@solaris:~# svcadm refresh svc:/network/dns/client不必設(shè)置每個名稱服務(wù)數(shù)據(jù)庫的屬性。可以使用特殊屬性
config/default提供默認值。不能使用默認值的項可以單獨定制。示例:使用 SMF 配置
/etc/switch.conf在以下示例中,我們使用名稱服務(wù)切換機制讓系統(tǒng)可以搜索 DNS、LDAP、NIS 或本地文件源來查找命名信息。再次對
svc:/system/name-service/switchSMF 服務(wù)使用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項的名稱相同。設(shè)置主機名
在 Oracle Solaris 11 中,已經(jīng)刪除
/etc/nodename并代之以svc:/system/identity:node服務(wù)的config/nodename屬性。為設(shè)置主機名,我們再次使用
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這種設(shè)置主機名的方式適用于自動和手動網(wǎng)絡(luò)配置。
/etc/hosts的變化在 Oracle Solaris 11 中,主機
/etc/hosts中的項現(xiàn)與localhost中的一樣。在先前版本的 Oracle Solaris 中,此項與第一個網(wǎng)絡(luò)接口關(guān)聯(lián)。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注:有些應(yīng)用程序安裝程序可能會因
/etc/hosts文件中的變化而失敗。如果遇到這種情況,可能需要直接編輯/etc/hosts。使用配置文件的自動網(wǎng)絡(luò)配置
在 Oracle Solaris 11 中,網(wǎng)絡(luò)配置文件有助于聚合分散在先前版本 Oracle Solaris 多個不同配置文件中的網(wǎng)絡(luò)配置。切換網(wǎng)絡(luò)配置文件將導(dǎo)致由單個管理操作應(yīng)用的不同網(wǎng)絡(luò)配置的一系列更改。
雖然由于兼容問題,保留了傳統(tǒng)配置文件,但您不 應(yīng)直接編輯任何這些文件,這是因為在配置文件激活或系統(tǒng)重新啟動時將覆蓋任何修改。
網(wǎng)絡(luò)配置文件
網(wǎng)絡(luò)配置文件至少包含網(wǎng)絡(luò)配置文件 (NCP) 和位置配置文件,并且還可能包含外部網(wǎng)絡(luò)修飾器 (ENM) 和已知無線網(wǎng)絡(luò) (WLAN)。
NCP 將一組數(shù)據(jù)鏈路和 IP 接口定義為網(wǎng)絡(luò)配置單元 (NCU)。位置配置文件定義只能在基本 IP 配置之后配置的其他配置,如名稱服務(wù)、IP 篩選器規(guī)則和 IPsec 策略。
ENM 是在激活或取消激活配置文件時直接修改網(wǎng)絡(luò)配置的應(yīng)用程序或服務(wù)。例如,配置虛擬私有網(wǎng)絡(luò) (VPN) 需要 ENM。本文不介紹 ENM 的使用或無線網(wǎng)絡(luò)的配置。
配置文件有手動或自動激活模式。當(dāng)自動配置文件處于活動狀態(tài)時,外部網(wǎng)絡(luò)事件會使 Oracle Solaris 重新評估哪個是“最佳”自動配置文件并使該配置文件進入活動狀態(tài)。外部事件包括連接或斷開以太網(wǎng)電纜、獲得或失去 DHCP 租約或發(fā)現(xiàn)無線網(wǎng)絡(luò)??傆幸粋€活動 NCP 和位置配置文件。無法通過禁用當(dāng)前配置文件來禁用聯(lián)網(wǎng)。
創(chuàng)建網(wǎng)絡(luò)配置文件
未經(jīng)過修改的
Automatic配置文件一般不適用于大多數(shù)企業(yè)網(wǎng)絡(luò),無論這些網(wǎng)絡(luò)是靜態(tài)的還是通過 DHCP 提供的配置信息多于Automatic配置文件使用的信息的。如果網(wǎng)絡(luò)具有靜態(tài)分配的 IP 地址,則需要創(chuàng)建一個 NCP 和一個位置配置文件。
在本例中,我們將以一個杜撰的 Acme 公司的典型企業(yè)網(wǎng)絡(luò)為例。它有靜態(tài)分配的網(wǎng)絡(luò)地址,使用 NIS 和 DNS 組合,不使用 IPv6。
要在 Acme 網(wǎng)絡(luò)上配置系統(tǒng),我們需要創(chuàng)建一個 NCP 和一個位置配置文件。
示例:創(chuàng)建 NCP
要創(chuàng)建 NCP 及其 NCU,我們使用
netcfg。對于物理鏈路,我們接受netcfg提供的默認值。對于 IP 配置,我們希望采用 IPv4 尋址和靜態(tài) 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. 創(chuàng)建 NCP
現(xiàn)在我們需要創(chuàng)建位置配置文件,如清單 3 所示。我們通過其激活模式將位置配置文件與網(wǎng)絡(luò)配置文件關(guān)聯(lián)。只要 NCP 處于活動狀態(tài),位置配置文件將自動激活。
由于 Acme 使用 NIS 名稱服務(wù)和 DNS 名稱服務(wù)的組合,因此我們需要提供自己的
/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. 創(chuàng)建位置配置文件
現(xiàn)在我們可以激活 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編輯現(xiàn)有 NCP 有兩種方式。一種是使用set命令設(shè)置各個屬性;另一種是使用walkprop命令設(shè)置所有屬性。當(dāng)您創(chuàng)建配置文件時,
netcfg將自動執(zhí)行walkprop命令。在清單 5 所示示例中,我們向現(xiàn)有
acme.corp.loc位置配置文件添加第三個 DNS 服務(wù)器。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 服務(wù)器
list命令只顯示已經(jīng)設(shè)置的屬性;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. 顯示所有屬性
總結(jié)
在 Oracle Solaris 11 中,網(wǎng)絡(luò)配置發(fā)生了很大變化,引入了網(wǎng)絡(luò)配置文件和實現(xiàn)了對數(shù)據(jù)中心中不同網(wǎng)絡(luò)結(jié)構(gòu)的整合管理。通過使用網(wǎng)絡(luò)配置文件,管理員可以簡化復(fù)雜配置并將其作為一組更改進行應(yīng)用。
另請參見
有關(guān) Oracle Solaris 11 網(wǎng)絡(luò)管理的更多信息,請參見以下管理指南:
Oracle Solaris 管理:IP 服務(wù)Oracle Solaris 管理:命名服務(wù)和目錄服務(wù)Oracle Solaris 管理:網(wǎng)絡(luò)接口和網(wǎng)絡(luò)虛擬化下面是 Oracle Solaris 11 的一些其他資源:
下載 Oracle Solaris 11訪問 Oracle Solaris 11 產(chǎn)品文檔訪問所有 Oracle Solaris 11 方法文章通過 Oracle Solaris 11 培訓(xùn)和支持了解更多信息查看官方 Oracle Solaris 博客查看 The Observatory 和 OTN Garage 博客中的 Oracle Solaris 提示和技巧通過 Facebook 和 Twitter 關(guān)注 Oracle Solaris關(guān)于作者
Andrew Walton 是 Oracle ISV 組的高級工程師,在 UNIX 業(yè)界有著 20 多年的經(jīng)驗,曾就職于 Silicon Graphics、Sun 和 Oracle。他專注于應(yīng)用程序性能調(diào)優(yōu)以及 C 和 C++ 代碼移植。
新聞熱點
疑難解答
圖片精選