跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 管理:网络接口和网络虚拟化 Oracle Solaris 11 Information Library (简体中文) |
无法使用 ipadm create-addr 命令指定 IP 地址。
在 IP 地址配置过程中,显示消息 cannot create address object: Invalid argument provided(无法创建地址对象:提供了无效的参数)。
以下过程说明如何针对不同的 IP 配置需要来使用 ipadm 命令。虽然 ifconfig 命令仍然可用于配置接口,但 ipadm 命令应该是首选工具。有关 ipadm 命令及其优点的概述,请参见ipadm 命令。
注 - 通常情况下,IP 接口配置和数据链路配置是一起进行的。因此,在适用的情况下,下面的过程包括使用 dladm 命令的数据链路配置步骤。有关使用 dladm 命令配置和管理数据链路的更多信息,请参见第 8 章。
以下过程提供了执行 IP 接口的基本配置的示例。
开始之前
确定您是否要重命名系统上的数据链路。通常,您使用缺省情况下指定给数据链路的通用名称。要更改链路名称,请参见如何重命名数据链路。
有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"。
# dladm show-phys
此命令显示安装在您的系统上的物理网卡及其部分属性。有关此命令的更多信息,请参见如何显示有关数据链路物理属性的信息。
# dladm show-link
此命令显示数据链路和已为其设置的某些属性,包括已在其上创建链路的物理卡。
# ipadm create-interface-class interface
指您可以创建的以下三类接口之一:
指接口的名称。该名称与正在其上创建接口的链路的名称相同。
注 - 您必须创建 IP 接口,才能为其指定 IP 地址。
以下语法将静态地址指定给接口。参阅 ipadm(1M) 手册页,了解指定 IP 地址的其他选项。
# ipadm create-addr -T address-type -a address/prefixlen addrobj
指定分配给接口的 IP 地址的类型,它是以下项之一:static、dhcp 或 addrconf。Addrconf 指自动生成的 IPv6 地址。
指定要在接口上配置的 IP 地址。您可以仅指定本地地址,也可以同时指定本地地址和远程地址(在隧道配置的情况下)。通常情况下,仅指定本地地址。在这种情况下,您使用 -a 选项直接指定地址,如 -a address。该地址自动被视为本地地址。
如果您正在配置隧道,您可能需要提供系统的本地地址和目标系统的远程地址。在这种情况下,您必须指定 local 和 remote 以区分两个地址,如下所示:-a local=local-addr,remote= remote-addr。有关配置隧道的更多信息,请参见《Oracle Solaris 管理:IP 服务》中的第 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 文件中已定义。
指定使用 CIDR 表示法时 IPv4 地址中网络 ID 的长度。在地址 12.34.56.78/24 中,24 是 prefixlen。如果不包括 prefixlen,则根据在 name-service/switch 服务中为 netmask 列出的顺序计算网络掩码,或通过使用有类地址语义计算网络掩码。
指定在系统中使用的唯一 IP 地址或地址集的标识符。地址可以是 IPv4 或 IPv6 类型。标识符使用的格式为 interface/ user_specified_string。
interface 指为其指定该地址的 IP 接口。interface 变量必须反映在其上配置 IP 接口的数据链路的名称。
user-specified-string 指以字母开始且最大长度为 32 个字符的字母数字字符字符串。随后,您在使用任何 ipadm 子命令管理系统中的地址(如 ipadm show-addr 或 ipadm delete-addr)时,可以引用 addrobj 而不是数字 IP 地址。
您可以根据要检查的信息使用以下命令:
显示接口的总体状态。
# ipadm show-if [interface]
如果您不指定接口,则显示系统中所有接口的信息。
显示接口的地址信息。
# ipadm show-addr [addrobj]
如果您不指定 addrobj,则显示系统中所有地址对象的信息。
有关 ipadm show-* 子命令的输出的更多信息,请参见监视 IP 接口和地址。
此文件中的条目包含 IP 地址和相应的主机名。
注 - 此步骤仅适用于配置使用主机名的静态 IP 地址。如果您正在配置 DHCP 地址,不需要更新 /etc/hosts 文件。
示例 9-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
请注意,如果 campus01 已在 /etc/hosts 文件中定义,可以在指定以下地址时使用主机名:
# ipadm create-addr -T static -a campus01 net3/v4static
示例 9-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
在将这些地址指定给接口后,您可以通过 ipadm 命令设置特定于地址的属性。通过设置这些属性,您可以确定以下内容:
地址的 prefixlen。
IP 地址是否可用作传出数据包的源地址。
地址是属于全局区域还是非全局区域。
地址是否为专用地址。
要列出 IP 地址的属性,请使用以下语法:
# ipadm show-addrprop [-p property] [addrobj]
显示的信息取决于您使用的选项。
如果您既不指定属性也不指定地址对象,则显示所有现有地址的所有属性。
如果只指定某属性,则显示所有地址的该属性。
如果您只指定某地址对象,则显示该地址对象的所有属性。
注 - 一次只能设置一个地址属性。
此过程显示配置 IP 地址的属性的一般步骤。
有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"。
# ipadm show-addr
# ipadm show-addrprop -p property addrobj
如果您不知道该属性,可以发出常规的 ipadm show-addrprop 命令。使用此命令显示 IP 地址时,会同时显示其所有属性的当前设置。
# ipadm set-addrprop -p property=value addrobj
# ipadm show-addrprop -p property addrobj
示例 9-3 设置地址的 prefixlen 属性
prefixlen 属性指 IP 地址的网络掩码。以下示例更改 net3 的 IP 地址的 prefixlen 属性的长度。在本示例中,-t 选项用于在属性中只创建一个临时更改。如果重新引导系统,该属性的值将恢复为缺省设置。
# ipadm show-addr ADDROBJ TYPE STATE ADDR lo0/? static ok 127.0.0.1/8 net3/v4 static ok 192.168.84.3/24 # ipadm show-addrprop -p prefixlen net3/v4 ADDROBJ PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE net3/v4 prefixlen rw 24 24 24 1-30,32 # ipadm set-addrprop -t -p prefixlen=8 net3/v4 # ipadm show-addrprop -p prefixlen net3/v4 ADDROBJ PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE net3/v4 prefixlen rw 8 24 24 1-30,32
IP 接口与数据链路一样,具有您可以为特定网络设置定制的属性。对于每个接口,存在两组属性,分别适用于 IPv4 和 IPv6 协议。某些属性,如 MTU,对数据链路和 IP 接口都适用。因此,您可以有一个针对数据链路的 MTU 设置和一个针对在该链路上配置的接口的不同 MTU 设置。而且,在该 IP 接口上,您可以有分别适用于 IPv4 和 IPv6 数据包的不同 MTU 设置。
IP 转发是通常在网络方案中配置的 IP 接口属性。以下过程显示了步骤。
在网络中,一个主机可以接收发送到另一个主机系统的数据包。通过在作为接收方的本地系统中启用数据包转发,该系统可以将数据包转发到目标主机。缺省情况下,IP 转发被禁用。以下两个过程描述如何启用此功能。在 Oracle Solaris 早期发行版中,routeadm 命令用于启用数据包转发。在此过程中,ipadm 语法取代了 routeadm 命令。
在确定是使用基于接口的过程还是基于协议的过程时,请考虑以下事项。
如果希望可以选择数据包转发方式,则启用接口上的数据包转发。例如,您的系统可能有多个 NIC。其中部分 NIC 连接到外部网络,其他 NIC 连接到专用网络。因此,您只对部分接口(而不是所有接口)启用数据包转发。请参见如何通过设置接口属性启用 IP 数据包转发。
如果您要在系统内全局性地实现数据包转发,则启用协议的 forwarding 属性。对于第二种方法,请参见如何通过设置协议属性启用数据包转发。
注 - 这两种数据包转发方法不是互斥的。例如,可以全局性地启用数据包转发,然后定制每个接口的 forwarding 属性。因此,该特定系统仍可选择数据包转发。
此过程说明如何通过在特定接口上配置 IP 转发属性有选择性地启用数据包转发。
注 - 数据包转发涉及 IP 协议。因此,步骤中还包含区分 IP 协议版本。
有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"。
# ipadm show-ifprop -p forwarding [-m protocol-version] interface
其中 protocol-version 可以是 ipv4 或 ipv6。如果您不指定版本,则同时显示 IPv4 和 IPv6 协议的设置。
# ipadm set-ifprop forwarding=on -m protocol-version interface
# ipadm show-ifprop -p forwarding interface
# ipadm reset-ifprop -p forwarding -m protocol-version interface
示例 9-4 使接口仅转发 IPv4 数据包
以下示例说明如何实现选择性数据包转发,其中仅在 net0 接口中启用 IPv4 数据包转发。在系统的其他剩余接口中,数据包转发处于禁用状态,这是缺省设置。
# ipadm show-ifprop -p forwarding net0 IFNAME PROPERTY PROTO PERM CURRENT PERSISTENT DEFAULT POSSIBLE net0 forwarding ipv4 rw off off off on,off net0 forwarding ipv6 rw off -- off on,off
使用- p property 选项的 ipadm show-ifprop 命令语法仅提供有关特定属性的信息。
# ipadm set-ifprop -p forwarding=on -m ipv4 net0 # ipadm show-ifprop net0 IFNAME PROPERTY PROTO PERM CURRENT PERSISTENT DEFAULT POSSIBLE ... net0 forwarding ipv4 rw on on off on,off ...
不使用- p property 选项的 ipadm show-ifprop 命令语法显示接口的所有属性及其相应设置。
# ipadm reset-ifprop -p forwarding -m ipv4 net0 # ipadm show-ifprop -p forwarding -m ipv4 net0 IFNAME PROPERTY PROTO PERM CURRENT PERSISTENT DEFAULT POSSIBLE net0 forwarding ipv4 rw off off off on,off
ipadm reset-ifprop 命令语法将指定的属性重置为缺省设置。
此过程说明如何在系统中全局性地启用数据包转发。
有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"。
# ipadm show-prop -p forwarding protocol-version
其中 protocol-version 可以是 ipv4 或 ipv6。
注 - 要显示给定协议的所有有效的可调属性及其当前设置,请键入以下命令:
# ipadm show-prop protocol
其中 protocol 可以是 ip、ipv4、ipv6、udp、tcp、icmp 和 sctp。
此语法显示在示例 9-5 中。
# ipadm set-prop forwarding=on protocol-version
要显示协议的所有属性和当前设置,请键入以下命令:
# ipadm show-prop protocol
要显示协议的特定属性,请键入以下命令:
# ipadm show-prop -p property protocol
要显示特定协议版本的特定属性,请键入以下命令:
# ipadm show-prop -p property protocol-version
# ipadm reset-prop -p property protocol-version
示例 9-5 启用 IPv4 和 IPv6 数据包的转发
以下示例与前面关于在接口上转发数据包的示例相似。两者都使用 ipadm show-prop,显示协议的指定属性或所有属性的相应设置。
# ipadm show-prop -p forwarding ip PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE ipv4 forwarding rw off -- off on,off ipv6 forwarding rw off -- off on,off # # ipadm set-prop -p forwarding=on ipv4 # ipadm set-prop -p forwarding=on ipv6 # # ipadm show-prop ip PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE ipv4 forwarding rw on on off on,off ipv4 ttl rw 255 -- 255 1-255 ipv6 forwarding rw on on off on,off ipv6 hoplimit rw 255 -- 255 1-255#