系统管理指南:IP 服务

管理单个网络接口

安装 Oracle Solaris : 后,您可能会在系统上配置或管理接口以达到以下目的:

本节包含有关配置单个网络接口的信息(从 Solaris 10 1/06 发行版开始)。有关将接口配置到以下分组之一的信息,请参阅以下各节:

Procedure如何获取接口状态

从 Solaris 10 1/06 开始,此过程说明如何确定系统上当前可用的接口及其状态。此过程还显示当前已检测哪些接口。如果使用的是早期的 Solaris 10 3/05,请参阅如何获取有关特定接口的信息

  1. 在要配置接口的系统上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 确定当前在系统上安装了哪些接口。


    # dladm show-link
    

    此步骤使用 dladm 命令(该命令在 dladm(1M) 手册页中详述)。此命令报告它找到的所有接口驱动程序,而不管接口当前是否已配置。

  3. 确定当前在系统上已检测哪些接口。


    # ifconfig -a
    

    ifconfig 命令具有许多附加功能,其中包括检测接口。有关更多信息,请参阅 ifconfig(1M) 手册页。


示例 6–1 使用 dladm 命令获取接口的状态

以下示例说明 dladm 命令显示的状态。


# dladm show-link
ce0             type: legacy    mtu: 1500       device: ce0
ce1             type: legacy    mtu: 1500       device: ce1
bge0            type: non-vlan  mtu: 1500       device: bge0
bge1            type: non-vlan  mtu: 1500       device: bge1
bge2            type: non-vlan  mtu: 1500       device: bge2
 

dladm show-link 的输出指示本地主机可以使用四个接口驱动程序。可以针对 VLAN 配置 cebge 接口。但是,只有非 VLAN 类型的 GLDV3 接口才可以用于链路聚合。

以下示例说明 ifconfig -a 命令显示的状态。


# ifconfig -a
 lo0: flags=2001000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu
8232 index 1
         inet 127.0.0.1 netmask ff000000  
ce0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4>mtu 1500 index 3
         inet 192.168.84.253 netmask ffffff00 broadcast 192.168.84.255
        ether 0:3:ba:7:84:5e  
bge0: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4>mtu 1500 index 2
         inet 10.8.57.39 netmask ffffff00 broadcast 10.8.57.255
        ether 0:3:ba:29:fc:cc 

ifconfig -a 命令的输出仅显示两个接口(ce0bge0)的统计信息。此输出说明仅检测了 ce0bge0,而且它们可以由网络通信流量使用。可以在 VLAN 中使用这些接口。由于已检测 bge0,无法在聚合中再使用此接口。


Procedure如何在安装系统后配置物理接口

使用下一过程来配置接口。如果使用的是 Solaris 10 3/05 发行版,则应使用如何在安装后添加物理接口(仅适用于 Solaris 10 3/05)中的过程。

开始之前
  1. 在要配置接口的系统上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 确定当前在系统上安装了哪些接口。


    # dladm show-link
    
  3. 配置并检测每个接口。


    # ifconfig interface plumb up
    

    例如,对于 qfe0,请键入:


    # ifconfig qfe0 plumb up
    

    注 –

    使用 ifconfig 命令显式配置的接口在重新引导后不会继续存在。


  4. 将 IPv4 地址和网络掩码指定给接口。


    # ifconfig interface IPv4-address netmask+netmask
    

    例如,对于 qfe0,请键入:


    # ifconfig
    qfe0 192.168.84.3 netmask + 255.255.255.0
    

    注 –

    可以使用传统的 IPv4 表示法或 CIDR 表示法指定 IPv4 地址。


  5. 验证新配置的接口是否已检测并配置,或者是否带有 "UP" 标志。


    # ifconfig
    -a
    

    检查所显示的每个接口的状态行。确保状态行上的输出包含 UP 标志,例如:


    qfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4>
    mtu 1500 index 2
  6. (可选)要使接口配置在重新引导后继续存在,请执行以下步骤:

    1. 为要配置的每个接口创建 /etc/hostname.interface 文件。

      例如,要添加 qfe0 接口,请创建以下文件:


      # vi /etc/hostname.qfe0
      

      注 –

      如果为同一接口创建备用主机名文件,则备用文件也必须遵循命名格式 hostname.[0-9]*,如 hostname.qfe0.a123。诸如 hostname.qfe0.bakhostname.qfe0.old 之类的名称无效,且会在系统引导期间被脚本忽略。

      也请注意,一个给定的接口只能有一个相应的主机名文件。如果用有效的文件名为接口创建一个备用主机名文件,例如 /etc/hostname.qfe/etc/hostname.qfe.a123,则引导脚本会尝试同时引用这两个主机名文件的内容来进行配置,因而会产生错误。要避免这些错误,请为给定配置中不使用的主机名文件使用无效的文件名。


    2. 编辑 /etc/hostname.interface 文件。

      至少将接口的 IPv4 地址添加到该文件。可以使用传统的 IPv4 表示法或 CIDR 表示法指定接口的 IP 地址。还可以将网络掩码和其他配置信息添加到该文件。


      注 –

      有关如何将 IPv6 地址添加到接口,请参阅修改主机和服务器的 IPv6 接口配置


    3. 对于 Solaris 10 11/06 和 Oracle Solaris 10 的早期发行版,将新接口的项添加到 /etc/inet/ipnodes 文件中。

    4. 将新接口的项添加到 /etc/inet/hosts 文件中。

    5. 执行重新配置引导。


      # reboot -- -r
      
    6. 验证是否已配置在 /etc/hostname. interface 文件中创建的接口。


      # ifconfig -a
      

      有关示例,请参阅示例 6–2


示例 6–2 添加持久性接口配置

该示例说明如何将接口 qfe0qfe1 配置为主机。这些接口在重新引导后仍继续存在。


# dladm show-link
eri0    type: legacy    mtu: 1500       device: eri0 
qfe0    type: legacy    mtu: 1500       device: qfe0 
qfe1    type: legacy    mtu: 1500       device: qfe1 
qfe2    type: legacy    mtu: 1500       device: qfe2 
qfe3    type: legacy    mtu: 1500       device: qfe3 
bge0    type: non-vlan  mtu: 1500       device: bge0
# vi /etc/hostname.qfe0
192.168.84.3 netmask 255.255.255.0
# vi /etc/hostname.qfe1 
192.168.84.72 netmask 255.255.255.0
# vi /etc/inet/hosts
# Internet host table 
# 
127.0.0.1       localhost 
10.0.0.14       myhost
192.168.84.3       interface-2 
192.168.84.72       interface-3
For Solaris 10 11/06 and earlier releases:# vi /etc/inet/ipnodes
10.0.0.14 myhost
192.168.84.3       interface-2 
192.168.84.72       interface-3

此时,可以重新引导系统。


# reboot -- -r

引导系统后,验证接口配置。


ifconfig -a
# ifconfig -a lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu
8232 index 1
         inet 127.0.0.1 netmask ff000000  
eri0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
         inet 10.0.0.14netmask ff000000 broadcast 10.255.255.255
         ether 8:0:20:c1:8b:c3  
qfe0:flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3  
      inet 192.168.84.3 netmask ffffff00 broadcast 192.255.255.255
      ether 8:0:20:c8:f4:1d  
qfe1: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4>mtu 1500 index 4
         inet 192.168.84.72 netmask ffffff00 broadcast 10.255.255.255
        ether 8:0:20:c8:f4:1e 

另请参见

Procedure如何删除物理接口

使用此过程可删除物理接口。如果使用的是早期的 Solaris 10 3/05,请参阅如何删除物理接口(仅适用于 Solaris 10 3/05)

  1. 在要删除接口的系统上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 删除物理接口。


    # ifconfig interface down unplumb 
    

    例如,要删除接口 qfe1,可键入:


    # ifconfig qfe1 down unplumb
    

ProcedureSPARC: 如何确保接口的 MAC 地址是唯一的

使用此过程配置 MAC 地址。

一些应用程序要求主机上的每个接口都具有唯一的 MAC 地址。但是,每个基于 SPARC 的系统都具有系统范围的 MAC 地址,缺省情况下所有接口都使用该地址。以下是在 SPARC 系统上可能希望为接口配置出厂安装的 MAC 地址的两种情况。

EEPROM 参数 local-mac-address? 确定 SPARC 系统上的所有接口使用系统范围的 MAC 地址还是其唯一 MAC 地址。以下过程说明如何使用 eeprom 命令检查 local-mac-address? 的当前值以及更改它的值(如有必要)。

  1. 在要配置接口的系统上,承担主管理员角色或成为超级用户。

    主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 确定系统上的所有接口当前是否都使用系统范围的 MAC 地址。


    # eeprom local-mac-address?
    local-mac-address?=false

    在此示例中,对 eeprom 命令的响应 local-mac-address?=false 表示所有接口确实使用了系统范围的 MAC 地址。local-mac-address?=false 的值必须先更改为 local-mac-address?=true,然后接口才能成为 IPMP 组的成员。对于聚合,也应该将 local-mac-address?=false 更改为 local-mac-address?=true

  3. 如有必要,请按如下所示更改 local-mac-address? 的值:


    # eeprom local-mac-address?=true
    

    重新引导系统时,具有出厂安装的 MAC 地址的接口现在使用这些出厂设置,而不是系统范围的 MAC 地址。没有出厂设置的 MAC 地址的接口继续使用系统范围的 MAC 地址。

  4. 检查系统上所有接口的 MAC 地址。

    查找多个接口具有相同 MAC 地址的情况。在此示例中,所有接口都使用系统范围的 MAC 地址 8:0:20:0:0:1


    ifconfig -a
    lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
          inet 127.0.0.1 netmask ff000000  
    hme0: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
          inet 10.0.0.112 netmask ffffff80 broadcast 10.0.0.127
          ether 8:0:20:0:0:1 
    ce0: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
          inet 10.0.0.114 netmask ffffff80 broadcast 10.0.0.127
          ether 8:0:20:0:0:1 
    ce1: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
          inet 10.0.0.118 netmask ffffff80 broadcast 10.0.0.127
          ether 8:0:20:0:0:1

    注 –

    仅当多个网络接口仍具有相同 MAC 地址时,才继续执行下一步。否则,转到最后一步。


  5. 如有必要,请手动配置其余的接口,以便所有接口都具有唯一的 MAC 地址。

    /etc/hostname.interface 文件中为特定接口指定唯一的 MAC 地址。

    在步骤 4 的示例中,需要用本地管理的 MAC 地址配置 ce0ce1。例如,要用本地管理的 MAC 地址 06:05:04:03:02 重新配置 ce1,可将以下行添加到 /etc/hostname.ce1 中:


    ether 06:05:04:03:02 
    

    注 –

    要防止手动配置的 MAC 地址与网络中的其他 MAC 地址冲突所带来的任何风险,必须始终配置本地管理的 MAC 地址,如 IEEE 802.3 标准定义的那样。


    也可以使用 ifconfig ether 命令为当前会话配置接口的 MAC 地址。但是,使用 ifconfig 直接进行的任何更改在重新引导后都不会保留。有关详细信息,请参阅 ifconfig(1M) 手册页。

  6. 重新引导系统。