睿诚科技协会

Solaris 10网络配置核心步骤有哪些?

核心概念

在 Solaris 10 中,网络配置围绕几个关键组件和文件展开。

Solaris 10网络配置核心步骤有哪些?-图1
(图片来源网络,侵删)

接口名称

Solaris 10 中的网络接口命名遵循特定规则:

  • 物理接口:
    • hme0: 千兆以太网 (较老的 Sun 机器)
    • e1000g0: Intel 千兆以太网 (非常常见)
    • bge0: Broadcom 千兆以太网
    • nge0: NVIDIA/NetGear 千兆以太网
  • 虚拟接口:
    • hme0:1, e1000g0:2: 在同一个物理接口上配置的多个 IP 地址(别名接口)。

关键配置文件

所有网络配置的持久化存储都在以下几个文件中:

  • /etc/hostname.<interface>: 最重要的文件,它定义了哪个接口应该在系统启动时被配置。

    • 如果文件内容为 dhcp,则该接口通过 DHCP 获取 IP 地址。
    • 如果文件内容为静态 IP 地址(如 168.1.100)或主机名(如果配置了 DNS),则会进行相应配置。
    • 如果文件不存在或为空,则该接口在启动时不会被配置。
  • /etc/inet/hosts: 本地主机名到 IP 地址的静态映射文件,相当于 Linux 中的 /etc/hosts

    Solaris 10网络配置核心步骤有哪些?-图2
    (图片来源网络,侵删)
  • /etc/netmasks: 定义网络子网掩码的文件。168.1.0 255.255.255.0,对于 CIDR 表示法(如 /24),这个文件通常不是必须的,但 Solaris 10 的某些旧工具可能仍依赖它。

  • /etc/nsswitch.conf: 名称服务切换配置文件,它决定了系统在查找主机名、IP 地址、用户等信息时,应该首先查询哪个源(如 files, dns, ldap)。hosts: files dns 表示先查 /etc/hosts 文件,再查 DNS。

  • /etc/defaultrouter: 指定默认网关,文件中只包含一行,即默认网关的 IP 地址,168.1.1

  • /etc/hostname6.<interface>: 用于 IPv6 地址配置的文件,内容与 IPv4 类似。

    Solaris 10网络配置核心步骤有哪些?-图3
    (图片来源网络,侵删)
  • /etc/inet/ipnodes: 与 /etc/inet/hosts 类似,但同时支持 IPv4 和 IPv6 地址的映射。

网络服务

网络服务由 Solaris Service Management Facility (SMF) 统一管理,SMF 是 Solaris 10 引入的一个重大改进,用于替代传统的启动脚本(/etc/rc*)。

  • 网络物理层: network/physical (svc:/network/physical:default)
  • 网络接口: network/loopback (svc:/network/loopback:default), network/initial
  • DHCP 客户端: network/dhcp (svc:/network/dhcp:default)
  • 路由守护进程: route:default (svc:/network/routing/route:default)

网络配置步骤

场景 1: 配置静态 IP 地址

假设你要为 e1000g0 接口配置静态 IP 地址 168.1.100,子网掩码 255.255.0,默认网关 168.1.1

  1. 创建或编辑 hostname 文件:

    # 编辑 /etc/hostname.e1000g0 文件,写入静态IP地址
    echo "192.168.1.100" > /etc/hostname.e1000g0
  2. 设置子网掩码:

    • 方法 A (推荐,使用 netmask 命令):
      # 使用 ifconfig 命令立即设置,并写入配置
      ifconfig e1000g0 netmask 255.255.255.0 broadcast +
      # 将此设置持久化
      echo "192.168.1.100 netmask 255.255.255.0" >> /etc/hostname.e1000g0
    • 方法 B (使用 /etc/netmasks 文件):
      # 编辑 /etc/netmasks 文件,添加网络地址和掩码
      echo "192.168.1.0 255.255.255.0" >> /etc/netmasks
  3. 设置默认网关:

    # 编辑 /etc/defaultrouter 文件,写入网关地址
    echo "192.168.1.1" > /etc/defaultrouter
  4. 配置主机名解析:

    # 编辑 /etc/inet/hosts 文件,添加主机名和IP的映射
    echo "192.168.1.100  my-solaris-box" >> /etc/inet/hosts
  5. 重启网络服务使配置生效:

    # 1. 禁用并启用物理网络服务,这是最彻底的刷新方式
    svcadm disable network/physical
    svcadm enable network/physical
    # 或者,如果只是想重启单个接口
    ifconfig e1000g0 down
    ifconfig e1000g0 up
    # 2. 重启路由服务(如果修改了网关)
    svcadm restart route:default

场景 2: 配置 DHCP

假设要让 e1000g0 接口通过 DHCP 自动获取 IP 地址。

  1. 创建或编辑 hostname 文件:

    # 编辑 /etc/hostname.e1000g0 文件,写入 dhcp
    echo "dhcp" > /etc/hostname.e1000g0
  2. 确保 SMF 的 DHCP 服务已启用:

    # 检查服务状态
    svcs network/dhcp
    # 如果状态是 disabled,则启用它
    svcadm enable network/dhcp
  3. 重启网络服务:

    svcadm restart network/physical

重启后,系统会自动通过 e1000g0 接口发起 DHCP 请求,获取 IP、子网掩码、网关和 DNS 服务器地址。


常用网络命令

Solaris 10 的网络命令与 Linux 非常相似,但有一些细微差别和 Solaris 特有的工具。

功能 Solaris 10 命令 Linux 命令 说明
配置接口 ifconfig ip addr / ifconfig ifconfig -a 查看所有接口;ifconfig e1000g0 192.168.1.100 netmask 255.255.255.0 up 配置接口。
查看路由表 netstat -rn ip route / netstat -rn -r 显示路由表,-n 以数字形式显示(不解析主机名)。
测试连通性 ping / ping ping / ping6 ping -s 1472 host 可以指定数据包大小。
跟踪路由 traceroute / traceroute6 traceroute / traceroute6 / mtr Solaris 的 traceroute 通常需要 root 权限。
DNS 查询 nslookup / dig / host nslookup / dig / host nslookup www.google.com
端口扫描 nc (netcat) / nmap nc (netcat) / nmap nc -zv host port 检查端口是否开放。
查看网络连接 netstat -an ss -tulpn / netstat -an -a 所有,-n 数字,-p 进程ID (Solaris可能需要额外选项)。
查看接口统计 netstat -i / kstat ifconfig / ip -s link kstat -s link 查看详细的内核网络统计信息。
网络诊断 snoop tcpdump snoop -d e1000g0 -v host 192.168.1.1 抓取指定接口的数据包。

故障排查

  1. 检查接口状态:

    # 查看所有接口的详细信息
    ifconfig -a
    # 查看特定接口
    ifconfig e1000g0

    检查 status 是否为 upinet 是否有正确 IP,netmask 是否正确。

  2. 检查网络服务状态:

    # 查看所有网络相关服务
    svcs | grep network
    # 查看特定服务详情
    svcs -v network/physical

    确保服务状态是 online,如果服务有 fault,使用 svcs -xv network/physical 查看错误原因。

  3. 检查路由表:

    netstat -rn

    确认默认路由(目标为 default0.0.0)存在且指向正确的网关。

  4. 检查名称解析:

    # 检查 /etc/nsswitch.conf 的 hosts 行
    grep "^hosts" /etc/nsswitch.conf
    # 手动测试 DNS 解析
    nslookup your-dns-server
    # 手动测试 hosts 文件解析
    grep your-hostname /etc/inet/hosts
  5. 检查防火墙: Solaris 10 自带 IP 过滤器,默认情况下可能是禁用的,但需要确认。

    # 检查 IP 过滤器状态
    ipfstat -i  # 查看入站规则
    ipfstat -o  # 查看出站规则
    ipfstat -s  # 查看统计信息
    # 临时禁用 IP 过滤器 (需要 root)
    ipf -D
    # 永久禁用需要编辑 /etc/ipf.conf 和 /etc/ipf.conf6,并重启 ipf 服务。
  6. 使用 snoop 抓包: 这是 Solaris 网络诊断的终极武器,如果以上步骤都无法解决问题,抓包分析是必不可少的。

    # 抓取 e1000g0 接口上所有去往或来自 192.168.1.1 的流量
    snoop -d e1000g0 -v host 192.168.1.1
    # 捕获并保存到文件
    snoop -d e1000g0 -o capture_file.cap
    # 稍后分析
    snoop -i capture_file.cap

Solaris 10 的网络管理虽然命令行操作较多,但其基于 SMF 的服务和清晰的配置文件结构使得系统非常稳定和可预测,掌握 ifconfignetstatsvcs 以及 /etc 目录下的几个核心配置文件,是管理和排查 Solaris 10 网络问题的关键,对于现代运维人员来说,了解这些经典系统的操作方式依然具有很高的价值。

分享:
扫描分享到社交APP
上一篇
下一篇