JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 管理:IP 服务     Oracle Solaris 11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分TCP/IP 管理

1.  规划网络部署

2.  使用 IPv6 地址的注意事项

3.  配置 IPv4 网络

网络配置(任务列表)

开始网络配置之前

在网络上配置组件系统

IPv4 自治系统拓扑

如何配置 IP 接口

设置系统配置模式

如何以本地文件模式配置系统

如何以网络客户机模式配置系统

如何设置网络配置服务器

配置 IPv4 路由器

如何配置 IPv4 路由器

路由表和路由类型

如何将静态路由添加到路由表

配置多宿主主机

如何创建多宿主主机

为单接口系统配置路由

如何在单接口主机上启用静态路由

如何在单接口系统上启用动态路由

将子网添加到网络

如何更改 IPv4 地址和其他网络配置参数

监视和修改传输层服务

如何记录所有传入 TCP 连接的 IP 地址

如何添加使用 SCTP 协议的服务

如何使用 TCP 包装控制对 TCP 服务的访问

4.  在网络上启用 IPv6

5.  管理 TCP/IP 网络

6.  配置 IP 隧道

7.  对网络问题进行故障排除

8.  IPv4 参考

9.  IPv6 引用

第 2 部分DHCP

10.  关于 DHCP(概述)

11.  管理 ISC DHCP 服务

12.  配置和管理 DHCP 客户机

13.  DHCP 命令和文件(参考)

第 3 部分IP 安全性

14.  IP 安全体系结构(概述)

15.  配置 IPsec(任务)

16.  IP 安全体系结构(参考)

17.  Internet 密钥交换(概述)

18.  配置 IKE(任务)

19.  Internet 密钥交换(参考资料)

20.  Oracle Solaris 中的 IP 过滤器(概述)

21.  IP 过滤器(任务)

第 4 部分网络性能

22.  集成负载平衡器概述

23.  配置集成负载平衡器(任务)

24.  虚拟路由器冗余协议(概述)

25.  VRRP 配置(任务)

26.  实施拥塞控制

第 5 部分IP 服务质量 (IP Quality of Service, IPQoS)

27.  IPQoS 介绍(概述)

28.  规划启用了 IPQoS 的网络(任务)

29.  创建 IPQoS 配置文件(任务)

30.  启动和维护 IPQoS(任务)

31.  使用流记帐和统计信息收集功能(任务)

32.  IPQoS 的详细介绍(参考)

词汇表

索引

在网络上配置组件系统

当您配置网络系统时,需要以下配置信息:


注 - 您可以在安装 Oracle Solaris 时配置网络。有关说明,请参见《安装 Oracle Solaris 11 系统》

本文档中的各个过程假定您要在安装 OS 后配置网络。


可参考下节中的图 3-1 配置网络组件系统。

IPv4 自治系统拓扑

具有多个路由器和网络的站点通常将其网络拓扑作为单个路由域或自治系统 (autonomous system, AS) 进行管理。

图 3-1 具有多个 IPv4 路由器的自治系统

image:在下面的上下文中,对自治系统的此拓扑图进行了说明。

图 3-1 显示了一个已划分为三个本地网络(即 10.0.5.0172.20.1.0192.168.5.0)的 AS。该网络由以下类型的系统组成:

如何配置 IP 接口

以下过程提供了一个执行 IP 接口基本配置的示例。

开始之前

确定是否要重命名系统中的数据链路。通常,您可使用缺省情况下指定给数据链路的通用名称。要更改链路名称,请参见《Oracle Solaris 管理:网络接口和网络虚拟化》中的"如何重命名数据链路"

  1. 成为管理员。

    有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"

  2. (可选)显示有关系统中当前数据链路的物理属性的信息。
    # dladm show-phys

    此命令显示系统中安装的物理网卡及其部分属性。有关此命令的更多信息,请参见《Oracle Solaris 管理:网络接口和网络虚拟化》中的"如何显示有关数据链路物理属性的信息"

  3. 显示有关系统中当前数据链路的信息。
    # dladm show-link

    此命令显示数据链路以及为数据链路设置的某些属性,包括用于创建链路的物理卡。

  4. 创建 IP 接口。
    # ipadm create-interface-class interface
    interface-class

    表示可以创建的三个接口类之一:

    • IP 接口。此接口类是您在执行网络配置时创建的最常见的接口类。要创建此接口类,请使用 create-ip 子命令。

    • STREAMS 虚拟网络接口驱动程序(VNI 接口)。要创建此接口类,请使用 create-vni 子命令。有关 VNI 设备或接口的更多信息,请参见 vni(7d) 手册页。

    • IPMP 接口。配置 IPMP 组时,将会使用此接口。要创建此接口类,请使用 create-ipmp 子命令。有关 IPMP 组的更多信息,请参见《Oracle Solaris 管理:网络接口和网络虚拟化》中的第 14  章 "IPMP 简介"

    interface

    表示接口的名称。该名称与用于创建接口的链路的名称相同。


    注 - 您必须先创建 IP 接口,然后才能为其指定 IP 地址。


  5. 使用有效的 IP 地址配置 IP 接口。

    以下语法将静态地址指定给接口。有关用于指定 IP 地址的其他选项,请参阅 ipadm(1M) 手册页。

    # ipadm create-addr -T address-type -a address/prefixlen addrobj
    -T address-type

    指定分配给接口的 IP 地址的类型,可为以下项之一:staticdhcpaddrconfAddrconf 表示自动生成的 IPv6 地址。

    -a

    指定要在接口上配置的 IP 地址。您可以在进行隧道配置时仅指定本地地址,也可以同时指定本地地址和远程地址。通常,您只需指定本地地址。在这种情况下,可以使用 -a 选项直接指定地址,例如:-a address。该地址将自动视为本地地址。

    如果您要配置隧道,则可能需要提供系统的本地地址和目标系统的远程地址。在这种情况下,您必须指定 localremote 以区分这两种地址,如下所示:-a local=local-addr,remote= remote-addr。有关配置隧道的更多信息,请参见Chapter 6, 配置 IP 隧道

    如果您要使用数字 IP 地址,请对 CIDR 表示法中的地址使用格式 address/ prefixlen,例如 1.2.3.4/24。有关 prefixlen 选项,请参见相应说明。

    您也可以选择对 address 指定主机名,而非数字 IP 地址。如果在 /etc/hosts 文件中为该主机名定义了对应的数字 IP 地址,则使用主机名是有效的。如果未在文件中定义数字 IP 地址,则该数值可通过使用在 name-service/switch 服务中为 host 指定的解析器顺序唯一获取。如果给定的主机名存在多项,则会生成错误。


    注 - 在引导过程中,首先会创建 IP 地址,然后再将命名服务联机。因此,您必须确保在 /etc/hosts 文件中定义用于网络配置的任何主机名。


    /prefixlen

    在使用 CIDR 表示法时指定作为 IPv4 地址一部分的网络 ID 的长度。在地址 12.34.56.78/24 中,24prefixlen。如果您不包含 prefixlen,则网络掩码根据 name-service/switch 服务中为 netmask 列出的序列或根据有类地址语义进行计算。

    addrobj

    为系统中使用的唯一 IP 地址或地址集指定标识符。地址可以是 IPv4 或 IPv6 类型。标识符使用格式 interface/ user_specified_string

    interface 表示为其指定了地址的 IP 接口。interface 变量必须反映配置了 IP 接口的数据链路的名称。

    user-specified-string 表示由字母数字字符组成的字符串,该字符串以字母开头且最大长度为 32 个字符。随后,当您使用任何 ipadm 子命令管理系统中的地址时,便可以引用 addrobj 来代替数字 IP 地址,例如 ipadm show-addripadm delete-addr

  6. (可选)显示有关新配置的 IP 接口的信息。

    您可以使用以下命令,具体取决于要查看的信息:

    • 显示接口的一般状态。

      # ipadm show-if [interface]

      如果您未指定接口,则会显示系统中所有接口的信息。

    • 显示接口的地址信息。

      # ipadm show-addr [addrobj]

      如果您未指定 addrobj,则会显示系统中所有地址对象的信息。

    有关 ipadm show-* 子命令的输出的更多信息,请参见《Oracle Solaris 管理:网络接口和网络虚拟化》中的"监视 IP 接口和地址"

  7. (可选)在 /etc/hosts 文件中为 IP 地址添加项。

    此文件中的项由 IP 地址和对应的主机名组成。


    注 - 仅当您要配置使用主机名的静态 IP 地址时,才需执行此步骤。如果您要配置 DHCP 地址,则不需要更新 /etc/hosts 文件。


示例 3-1 使用静态地址配置网络接口

# dladm show-phys
LINK     MEDIA        STATE     SPEED     DUPLEX     DEVICE
net3     Ethernet     up        100Mb     full       bge3

# dladm show-link
LINK     CLASS     MTU     STATE     BRIDGE   OVER
net3     phys      1500    up        --       --

# ipadm create-ip net3
# ipadm create-addr -T static -a 192.168.84.3/24 net3/v4static

# ipadm show-if
IFNAME   CLASS        STATE     ACTIVE     OVER
lo0      loopback     ok        yes        --
net3     ip           ok        yes        --

# ipadm show-addr
ADDROBJ     TYPE       STATE     ADDR
lo0/?       static     ok        127.0.0.1/8
net3/v4     static     ok        192.168.84.3/24

# vi /etc/hosts
# Internet host table
# 127.0.0.1       localhost
10.0.0.14       myhost
192.168.84.3    campus01

请注意,如果已在 /etc/hosts 文件中定义了 campus01,则可以在指定以下地址时使用该主机名:

# ipadm create-addr -T static -a campus01 net3/v4static

示例 3-2 使用 IP 地址自动配置网络接口

此示例与上一示例使用相同的网络设备,但将 IP 接口配置为从 DHCP 服务器接收其地址。

# dladm show-phys 
LINK     MEDIA        STATE     SPEED     DUPLEX     DEVICE
net3     Ethernet     up        100Mb     full       bge3

# dladm show-link
LINK     CLASS     MTU     STATE     BRIDGE   OVER
net3     phys      1500    up        --       --

# ipadm create-ip net3

# ipadm create-addr -T dhcp net3/dhcp

# ipadm show-if
IFNAME   CLASS        STATE     ACTIVE     OVER
lo0      loopback     ok        yes        --
net3     ip           ok        yes        --

# ipadm show-addr net3/dhcp
ADDROBJ     TYPE       STATE     ADDR
net3/dhcp   dhcp       ok        10.8.48.242/24

# ipadm show-addr
ADDROBJ     TYPE       STATE     ADDR
lo0/?       static     ok        127.0.0.1/8
net3/dhcp   dhcp       ok        10.8.48.242/24

设置系统配置模式

本节介绍了将系统设置为以本地文件模式网络客户机模式运行的过程。以本地文件模式运行时,系统会从本地目录中的文件获取所有 TCP/IP 配置信息。在网络客户机模式下,配置信息通过远程网络配置服务器提供给网络中的所有系统。

通常,网络中的服务器是以本地文件模式运行的,例如以下服务器:

客户机可在任意一种模式下运行。因此,在网络中,您可以组合这些用于配置不同系统的模式,如下图所示。

图 3-2 IPv4 网络拓扑方案中的系统

image:该图显示了一个样例网络,其中包含一个为四个系统提供服务的网络服务器。

图 3-2 显示了 192.9.200 网络中的系统。

有关这两种配置模式的更详细概述,请参阅《系统管理指南:IP 服务》中的"确定主机配置模式"

如何以本地文件模式配置系统

使用此过程可将任何系统配置为在本地文件模式下运行,例如《系统管理指南:IP 服务》中的"应该以本地文件模式运行的系统"中列出的系统。

  1. 使用指定的 IP 地址配置系统的 IP 接口。

    有关过程,请参阅如何配置 IP 接口

  2. 验证在 /etc/nodename 文件中设置的主机名是否正确。
  3. 验证 /etc/inet/hosts 文件中的项是否最新。

    Oracle Solaris 安装程序为主网络接口、回送地址和在安装过程中配置的任何其他接口(如果适用)创建项。

    此文件还必须包含缺省路由器的名称和路由器的 IP 地址。

    1. (可选)为安装后添加到系统的任何网络接口添加 IP 地址和对应名称。
    2. (可选)如果 /usr 文件系统是 NFS 挂载的,则添加文件服务器的一个或多个 IP 地址。
  4. 将系统的全限定域指定为 nis/domain SMF 服务的属性。

    例如,可以将 deserts.worldwide.com 指定为 nis/domain SMF 服务的 domainname 属性的值。

  5. /etc/defaultrouter 文件中键入路由器的名称。
  6. 添加网络掩码信息(如果适用)。

    注 - 如果您使用的是 DHCP 服务,请跳过此步骤。


    1. /etc/inet/netmasks 文件中键入网络号和网络掩码。

      要创建项,请使用格式 network-number netmask。例如,对于 C 类网络号 192.168.83,请键入:

      192.168.83.0 255.255.255.0

      对于 CIDR 地址,将网络前缀转换为等效的用点分十进制表示法表示的项。网络前缀及其点分十进制等效项可以在表 1-1 中找到。例如,使用以下内容可以表示 CIDR 网络前缀 192.168.3.0/22

      192.168.3.0     255.255.252.0
    2. 在交换机的 SMF 属性中更改网络掩码查找顺序,以便首先搜索本地文件,然后刷新实例。
      # svccfg -s name-service/switch setprop config/host = astring: "files nis"
      # svccfg -s name-service/switch:default refresh
  7. 重新引导系统。

如何以网络客户机模式配置系统

对要在网络客户机模式下配置的每个主机执行以下过程。

开始之前

网络客户机从网络配置服务器接收其配置信息。因此,在将系统配置为网络客户机之前,必须确保至少为网络设置了一个网络配置服务器。

  1. 成为管理员。

    有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"

  2. 使用指定的 IP 地址配置系统的 IP 接口。

    有关过程,请参阅如何配置 IP 接口

  3. 确保 /etc/inet/hosts 文件仅包含回送网络接口的 localhost 名称和 IP 地址。
    # cat /etc/inet/hosts
    # Internet host table
    #
    127.0.0.1       localhost
  4. 删除指定给 nis/domain SMF 服务的 domainname 属性的值。
  5. 确保客户机的 name-service/switch 服务中的搜索路径反映了网络的相同服务要求。

如何设置网络配置服务器

用于设置安装服务器和引导服务器的信息位于《安装 Oracle Solaris 11 系统》

  1. 成为管理员。

    有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"

  2. 按照如下所示打开 in.tftpd 守护进程:
    1. 导航到指定的网络配置服务器的根目录 (/):
    2. 创建 /tftpboot 目录:
      # mkdir /tftpboot

      此命令将系统配置为 TFTP、bootparams 和 RARP 服务器。

    3. 创建指向目录的符号链接。
      # ln -s /tftpboot/. /tftpboot/tftpboot
  3. /etc/inetd.conf 文件中添加 tftp 行。

    该行应显示如下:

    tftp dgram udp6 wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot

    此行可防止 in.tftpd 检索除位于 /tftpboot 中的文件之外的任何文件。

  4. /etc/hosts 数据库上,添加网络中所有客户机的主机名和 IP 地址。
  5. /etc/ethers 数据库上,为网络中以网络客户机模式运行的每个系统创建项。

    此数据库中的项使用以下格式:

    MAC Address     host name      #comment

    有关更多信息,请参见 ethers(4) 手册页。

  6. /etc/bootparams 数据库上,为网络中以网络客户机模式运行的每个系统创建项。

    有关编辑此数据库的信息,请参见 bootparams(4) 手册页。

  7. /etc/inetd.conf 项转换为服务管理工具 (Service Management Facility, SMF) 服务清单,并启用生成的服务。
    # /usr/sbin/inetconv
  8. 验证 in.tftpd 是否正常工作。
    # svcs network/tftp/udp6

    应该看到与如下所示类似的输出:

    STATE          STIME    FMRI
    online         18:22:21 svc:/network/tftp/udp6:default
管理 in.tftpd 守护进程

in.tftpd 守护进程由服务管理工具管理。可以使用 svcadm 命令对 in.tftpd 执行管理操作(如启用、禁用或重新启动)。启动和重新启动此服务的职责已委托给 inetd。使用 inetadm 命令可以进行配置更改以及查看 in.tftpd 的配置信息。使用 svcs 命令可以查询服务的状态。有关服务管理工具的概述,请参阅《Oracle Solaris 管理:常见任务》中的第 6  章 "管理服务(概述)"

配置 IPv4 路由器

路由器用于提供两个或多个网络之间的接口。因此,您必须为路由器的每个物理网络接口指定唯一的名称和 IP 地址。这样,每个路由器都有与其主网络接口关联的主机名和 IP 地址,以及其他每个网络接口的至少一个唯一名称和 IP 地址。

也可以使用以下过程将只有一个物理接口的系统(缺省情况下为主机)配置为路由器。如果某个单接口系统充当 PPP 链路上的一个端点,则可以将该系统配置为路由器,如《Oracle Solaris 管理:网络服务》中的"规划拨号 PPP 链路"中所述。

如何配置 IPv4 路由器

以下说明假定要在安装后配置路由器的接口。

开始之前

在将路由器以物理方式安装到网络上后,请将路由器配置为以本地文件模式运行,如如何以本地文件模式配置系统中所述。此配置可确保即使网络配置服务器关闭路由器也会引导。

  1. 成为管理员。

    有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"

  2. 对于系统中安装的每个 NIC,按照如何配置 IP 接口中所述配置 IP 接口。

    确保每个 IP 接口都配置有系统将路由其包的网络的 IP 地址。因此,如果系统为 192.168.5.010.0.5.0 网络提供服务,则必须为每个网络配置一个 NIC。


    注意

    注意 - 如果您要配置 IPv4 路由器以使用 DHCP,则必须完全了解 DHCP 管理。


  3. 将每个接口的主机名和 IP 地址添加到 /etc/inet/hosts 文件中。

    例如,假定您为路由器 1 的两个接口指定的名称分别为 krakatoakrakatoa-1/etc/inet/hosts 文件中的项将如下所示:

    192.168.5.1      krakatoa        #interface for network 192.168.5.0
    10.0.5.1         krakatoa-1      #interface for network 10.0.5.0
  4. 执行其余步骤,将此路由器配置为在本地文件模式下运行。

    请参见如何以本地文件模式配置系统

  5. 如果路由器连接到具有子网的任何网络,请将网络号和网络掩码添加到 /etc/inet/netmasks 文件中。

    例如,对于传统的 IPv4 地址表示法(如 192.168.5.0),应键入:

    192.168.5.0    255.255.255.0
  6. 在路由器上启用 IPv4 包转发。
    # ipadm set-prop -p forwarding=on ipv4
  7. (可选的)启动路由协议。

    使用以下命令语法之一:

    • # routeadm -e ipv4-routing -u

    • # svcadm enable route:default

      in.routed 守护进程关联的 SMF FMRI 是 svc:/network/routing/route

    当您启动路由协议时,路由守护进程 /usr/sbin/in.routed 将自动更新路由表(该过程称为动态路由)。有关路由类型的更多信息,请参见路由表和路由类型。有关 routeadm 命令的信息,请参见 routeadm(1M) 手册页。

示例 3-3 配置网络的缺省路由器

此示例基于图 3-1。路由器 2 包含两个有线网络连接,一个是与网络 172.20.1.0 的连接,另一个是与网络 10.0.5.0 的连接。此示例说明如何配置路由器 2,使其成为 172.20.1.0 网络的缺省路由器。此示例还假定路由器 2 已配置为在本地文件模式下工作,如如何以本地文件模式配置系统中所述。

成为超级用户或承担等效角色后,可以确定系统接口的状态。

# dladm show-link
LINK     CLASS     MTU     STATE   BRIDGE   OVER
net0     phys      1500    up      --       --
net1     phys      1500    up      --       --
net2     phys      1500    up      --       --
# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
net0/v4           static   ok           172.20.1.10/24

只有 net0 配置有 IP 地址。要将路由器 2 设置为缺省路由器,应将 net1 接口以物理方式连接到 10.0.5.0 网络。

# ipadm create-ip net1
# ipadm create-addr -T static -a 10.0.5.10/24 net1/v4
# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
net0/v4           static   ok           172.20.1.10/24
net1/v4           static   ok           10.0.5.10/24

接下来,应使用有关新配置的接口和与该接口相连的网络的信息,更新以下网络数据库:

# vi /etc/inet/hosts
127.0.0.1       localhost
172.20.1.10        router2        #interface for network 172.20.1
10.0.5.10 router2-out #interface for network 10.0.5
# vi /etc/inet/netmasks
172.20.1.0    255.255.255.0 
10.0.5.0 255.255.255.0

最后,启用包转发以及 in.routed 路由守护进程。

# ipadm set-prop -p forwarding=on ipv4
# svcadm enable route:default

现在,在路由器 2 上启用了 IPv4 包转发和通过 RIP 的动态路由。但是,网络 172.20.1.0 的缺省路由器配置尚未完成。您需要执行以下操作:

路由表和路由类型

路由器和主机都维护路由表。路由表列出了系统知晓的网络的 IP 地址,包括系统本地缺省网络的 IP 地址。该表还列出了每个已知网络的网关系统的 IP 地址。网关是一个系统,可接收传出包并将它们转发到距本地网络一个跃点的位置。

以下是一个仅启用了 IPv4 的网络中某系统的简单路由表。

Routing Table: IPv4
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
default              172.20.1.10          UG       1    532   net0
224.0.0.0            10.0.5.100           U        1      0   net1
10.0.0.0             10.0.5.100           U        1      0   net1
127.0.0.1            127.0.0.1            UH       1     57   lo0

可以在 Oracle Solaris 系统上配置以下两种类型的路由:静态路由和动态路由。可以在单个系统上配置其中一种或两种路由类型。实现动态路由的系统依赖路由协议(如用于 IPv4 网络的 RIP 和用于 IPv6 网络的 RIPng),以路由网络通信流量以及更新表中的路由信息。对于静态路由,路由信息是通过 route 命令手动维护的。有关完整的详细信息,请参阅 route(1M) 手册页。

为本地网络或自治系统配置路由时,请考虑在特定的路由器和主机上支持哪种路由类型。

下表显示了不同的路由类型,以及各个路由类型分别最适用于哪种网络方案。

路由类型
最适用于
静态
小型网络、从缺省路由器获取其路由的主机,以及仅需要知晓接下来几个跃点上一个或两个路由器的缺省路由器。
动态
较大的互联网络、具有多个主机的本地网络中的路由器以及大型自治系统上的主机。动态路由是大多数网络中系统的最佳选择。
组合的静态和动态路由
将静态路由网络和动态路由网络连接在一起的路由器,以及将内部自治系统与外部网络连接在一起的边界路由器。将系统上的静态路由和动态路由组合在一起是一种常见的做法。

图 3-1 所示的 AS 将静态路由和动态路由组合在一起。


注 - 到同一目标的两个路由不会自动导致系统进行负载平衡或故障转移。如果您需要这些功能,请使用 IPMP,如《Oracle Solaris 管理:网络接口和网络虚拟化》中的第 14  章 "IPMP 简介"中所述。


如何将静态路由添加到路由表

  1. 查看路由表的当前状态。

    使用一般用户帐户运行以下形式的 netstat 命令:

    % netstat -rn

    输出将与如下所示类似:

    Routing Table: IPv4
      Destination           Gateway           Flags  Ref   Use   Interface
    -------------------- -------------------- ----- ----- ------ ---------
    192.168.5.125        192.168.5.10          U      1   5879   net0
    224.0.0.0            198.168.5.10          U      1  0       net0
    default              192.168.5.10          UG     1  91908
    127.0.0.1            127.0.0.1             UH     1  811302   lo0
  2. 成为管理员。

    有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"

  3. (可选的)刷新路由表中的现有项。
    # route flush
  4. 添加一个在系统重新引导后继续存在的路由。
    # route -p add -net network-address -gateway gateway-address
    -p

    创建一个在系统重新引导后必须继续存在的路由。如果希望路由仅对当前会话有效,则不要使用 -p 选项。

    -net network-address

    指定路由将转到具有 network-address 中地址的网络。

    -gateway gateway-address

    指示指定路由的网关系统具有 IP 地址 gateway-address

示例 3-4 将静态路由添加到路由表

以下示例说明如何将静态路由添加到图 3-1 的路由器 2。AS 的边界路由器 10.0.5.150 需要静态路由。

要查看路由器 2 上的路由表,请执行以下操作:

# netstat -rn
Routing Table: IPv4
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
default              172.20.1.10          UG        1    249 ce0
224.0.0.0            172.20.1.10          U         1      0 ce0
10.0.5.0             10.0.5.20            U         1     78 bge0
127.0.0.1            127.0.0.1            UH        1     57 lo0

路由表指示路由器 2 知晓的两个路由。缺省路由将路由器 2 的 172.20.1.10 接口用作其网关。在路由器 2 上运行的 in.routed 守护进程搜索到第二个路由 10.0.5.0。此路由的网关是 IP 地址为 10.0.5.20 的路由器 1。

要将另一个路由添加到网络 10.0.5.0(它将其网关作为边界路由器),请执行以下操作:

# route -p add -net 10.0.5.0/24 -gateway 10.0.5.150
add net 10.0.5.0: gateway 10.0.5.150

现在,路由表具有边界路由器(其 IP 地址为 10.0.5.150/24)的路由。

# netstat -rn
Routing Table: IPv4
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
default              172.20.1.10          UG        1    249 ce0
224.0.0.0            172.20.1.10          U         1      0 ce0
10.0.5.0             10.0.5.20            U         1     78 bge0
10.0.5.0             10.0.5.150           U         1    375 bge0
127.0.0.1            127.0.0.1            UH        1     57 lo0

配置多宿主主机

在 Oracle Solaris 中,具有多个接口的系统被视为多宿主主机。多宿主主机的接口可以与不同物理网络或同一物理网络中的多个子网连接。

如果一个系统的多个接口连接到同一子网,必须首先将这些接口配置到一个 IPMP 组中。否则,该系统无法成为多宿主主机。有关 SMF 的更多信息,请参见《Oracle Solaris 管理:网络接口和网络虚拟化》中的第 14  章 "IPMP 简介"

多宿主主机不会转发 IP 包,但可以配置为运行路由协议。通常,可以将以下类型的系统配置为多宿主主机:

如何创建多宿主主机

  1. 成为管理员。

    有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"

  2. 配置在 Oracle Solaris 安装过程中没有配置的其他每个网络接口。

    请参阅如何配置 IP 接口

  3. 如果启用了包转发,请将此服务禁用。
    # ipadm show-prop -p forwarding ipv4
    PROTO PROPERTY     PERM CURRENT      PERSISTENT   DEFAULT      POSSIBLE
    ipv4  forwarding   rw   on           --           off          on,off
    
    ipadm set-prop -p forwarding=off ipv4
  4. (可选的)为多宿主主机打开动态路由。

    使用以下命令语法之一:

    • # routeadm -e ipv4-routing -u

    • # svcadm enable route:default

      in.routed 守护进程关联的 SMF FMRI 是 svc:/network/routing/route

示例 3-5 配置多宿主主机

以下示例说明如何配置图 3-1 中所示的多宿主主机。在该示例中,系统具有主机名 hostc。此主机具有两个接口,这两个接口都已连接到网络 192.168.5.0

要开始操作,请显示系统接口的状态。

# dladm show-link
LINK     CLASS     MTU     STATE   BRIDGE   OVER
net0     phys      1500    up      --       --
net1     phys      1500    up      --       --

# ipadm show-addr
ADDROBJ        TYPE     STATE        ADDR
lo0/v4         static   ok           127.0.0.1/8
net0/v4        static   ok           192.168.5.82/24
 

dladm show-link 命令报告 hostc 具有两个数据链路。但是,只有 net0 配置有 IP 地址。要将 hostc 配置为多宿主主机,应使用同一 192.168.5.0 网络中的 IP 地址配置 net1。确保 net1 的底层物理 NIC 已实际连接到网络。

# ipadm create-ip net1
# ipadm create-addr -T static -a 192.168.5.85/24 bge0/v4
# ipadm show-addr
ADDROBJ        TYPE     STATE        ADDR
lo0/v4         static   ok           127.0.0.1/8
net0/v4        static   ok           192.168.5.82/24
net1/v4        static   ok           192.168.5.85/24

接下来,将 net1 接口添加到 /etc/hosts 数据库:

# vi /etc/inet/hosts
127.0.0.1           localhost
192.168.5.82        hostc    #primary network interface for host3
192.168.5.85 hostc-2 #second interface

接下来,关闭包转发(如果此服务正在 hostc 上运行):

# ipadm show-prop -p forwarding ipv4
PROTO PROPERTY     PERM CURRENT   PERSISTENT   DEFAULT      POSSIBLE
ipv4  forwarding   rw   on        --           off          on,off

# ipadm set-prop -p forwarding=off ipv4

# routeadm
              Configuration   Current              Current
                     Option   Configuration        System State
---------------------------------------------------------------
               IPv4 routing   enabled              enabled
               IPv6 routing   disabled             disabled

           Routing services   "route:default ripng:default"

routeadm 命令报告当前启用了通过 in.routed 守护进程的动态路由。

为单接口系统配置路由

单接口系统可以使用静态路由或动态路由进行配置。对于静态路由,主机必须依赖于缺省路由器的服务来获取路由信息。以下过程包含启用这两种路由类型的说明。

如何在单接口主机上启用静态路由

也可以使用以下过程在多宿主主机上配置静态路由。

  1. 成为管理员。

    有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"

  2. 使用系统所属网络的 IP 地址配置系统的 IP 接口。

    有关说明,请参见如何配置 IP 接口

  3. 使用文本编辑器创建 /etc/defaultrouter 文件,或添加系统将使用的路由器的 IP 地址以修改该文件。
  4. 在本地 /etc/inet/hosts 文件中添加缺省路由器的项。
  5. 确保路由已关闭。
    # routeadm
       Configuration   Current              Current
                         Option   Configuration        System State
    ---------------------------------------------------------------
                   IPv4 routing   enabled             disabled
                   IPv6 routing   disabled             disabled
    
               Routing services   "route:default ripng:default"
    
    # svcadm disable route:default
  6. 确保包转发已关闭。
    # # ipadm show-prop -p forwarding ipv4
    PROTO PROPERTY     PERM CURRENT   PERSISTENT   DEFAULT      POSSIBLE
    ipv4  forwarding   rw   on        --           off          on,off
    
    # ipadm set-prop -p forwarding=off ipv4

示例 3-6 在单接口系统上配置静态路由

以下示例说明如何为图 3-1 所示的 172.20.1.0 网络中的单接口系统 hostb 配置静态路由。hostb 需要将路由器 2 用作其缺省路由器。此示例假定您已配置了系统的 IP 接口。

首先,您应使用管理员权限登录 hostb。接下来,确定系统中是否存在 /etc/defaultrouter 文件:

# cd /etc
# ls | grep defaultrouter

# vi /etc/defaultrouter
172.20.1.10

IP 地址 172.20.1.10 属于路由器 2。

# vi /etc/inet/hosts
127.0.0.1           localhost
172.20.1.18         host2    #primary network interface for host2
172.20.1.10 router2 #default router for host2

# ipadm show-prop -p forwarding ipv4
PROTO PROPERTY     PERM CURRENT   PERSISTENT   DEFAULT      POSSIBLE
ipv4  forwarding   rw   on         --           off          on,off

# ipadm set-prop -p forwarding=off ipv4

# routeadm
   Configuration   Current              Current
                     Option   Configuration        System State
---------------------------------------------------------------
               IPv4 routing   enabled             disabled
               IPv6 routing   disabled             disabled

           Routing services   "route:default ripng:default"

# svcadm disable route:default

如何在单接口系统上启用动态路由

使用路由协议的动态路由是管理系统上的路由的最简便方法。

  1. 成为管理员。

    有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"

  2. 使用系统所属网络的 IP 地址配置系统的 IP 接口。

    有关说明,请参见如何配置 IP 接口

  3. 删除 /etc/defaultrouter 文件中的任何项。

    /etc/defaultrouter 文件为空会强制系统使用动态路由。

  4. 确保包转发已禁用。
    # ipadm set-prop -p forwarding=off ipv4
  5. 在系统上启用路由协议。

    使用以下命令之一:

    • # routeadm -e ipv4-routing -u

    • # svcadm enable route:default

示例 3-7 在单接口系统上运行动态路由

以下示例说明如何为图 3-1 所示的网络 192.168.5.0 中的单接口系统 hosta 配置动态路由。该系统将路由器 1 用作其缺省路由器。此示例假定您已配置了系统的 IP 接口。

首先,您应使用管理员权限登录 hosta。接下来,确定系统中是否存在 /etc/defaultrouter 文件。

# cd /etc
# ls | grep defaultrouter
defaultrouter

# cat defaultrouter
192.168.5.10

此文件正确包含项 192.168.5.10,该项即路由器 1 的 IP 地址。

# routeadm   Configuration   Current              Current
                     Option   Configuration        System State
---------------------------------------------------------------
               IPv4 routing   disabled             disabled
               IPv6 routing   disabled             disabled

           Routing services   "route:default ripng:default"

# svcadm enable route:default

# ipadm show-prop -p forwarding ipv4
PROTO PROPERTY     PERM CURRENT   PERSISTENT   DEFAULT      POSSIBLE
ipv4  forwarding   rw   on         --           off          on,off

# ipadm set-prop -p forwarding=off ipv4

将子网添加到网络

如果要将不使用子网的网络更改为使用子网的网络,请执行以下列表中的任务。该列表假定您已准备好子网架构。有关概述,请参见《系统管理指南:IP 服务》中的"什么是子网划分?"

以下过程与子网密切相关。如果您实现子网划分的时间远迟于初始配置网络而未划分子网后的时间,请执行以下过程实现更改。

如何更改 IPv4 地址和其他网络配置参数

此过程说明如何在以前安装的系统上修改 IPv4 地址、主机名和其他网络参数。使用此过程可以修改服务器或联网独立系统的 IP 地址。此过程不适用于网络客户机或设备。这些步骤创建一个在重新引导后继续存在的配置。


注 - 此操作说明仅适用于更改主网络接口的 IPv4 地址。要为系统添加其他接口,请参阅如何配置 IP 接口


在几乎所有情况下,以下步骤都使用传统的 IPv4 点分十进制表示法指定 IPv4 地址和子网掩码。另外,在此过程中也可以使用 CIDR 表示法在所有适用文件中指定 IPv4 地址。有关 CIDR 表示法的说明,请参见《系统管理指南:IP 服务》中的"CIDR 格式的 IPv4 地址"

  1. 成为管理员。

    有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"

  2. 使用 ipadm 命令修改 IP 地址。

    您不能使用 ipadm 命令直接修改 IP 地址。您应该首先删除表示想要修改的 IP 地址的地址对象。然后使用相同的地址对象名称来指定一个新地址。

    # ipadm delete-addr addrobj
    # ipadm create-addr -T static IP-address addrobj
  3. 如果适用,修改 /etc/inet/hosts 文件或等效的 hosts 数据库中的主机名。
  4. 如果适用,修改 system/identity: node SMF 服务中的主机名项:
    # svccfg -s svc:/system/identity:node setprop config/nodename = astring: hostname
  5. 如果子网掩码已更改,请修改 /etc/netmasks 文件中的子网项。
  6. 如果已更改子网地址,请在 /etc/defaultrouter 中将缺省路由器的 IP 地址更改为新子网缺省路由器的 IP 地址。
  7. 重新引导系统。
    # reboot -- -r

示例 3-8 更改 IP 地址和主机名

此示例说明如何更改主机名、主网络接口的 IP 地址和子网掩码。主网络接口 bge0 的 IP 地址从 10.0.0.14 更改为 192.168.34.100

# ipadm show-addr
ADDROBJ      TYPE     STATE   ADDR
lo0/v4       static   ok      127.0.0.1/8
bge0/v4      static   ok      10.0.0.14/24

# ipadm delete-addr bge0/v4
# ipadm create-addr -T static -a 192.168.34.100/24 bge0/v4
# svccfg -s svc:/system/identity:node setprop config/nodename = astring: mynewhostname

# ipadm show-addr
ADDROBJ         TYPE     STATE   ADDR
lo0/v4          static   ok      127.0.0.1/8
bge0/v4new      static   ok      192.168.34.100/24

# hostname
mynewhostname

另请参见

要更改主网络接口以外的接口的 IP 地址,请参阅《Oracle Solaris 管理:常见任务》 and 如何配置 IP 接口