Solaris操作系统的以太网卡(以下简称网卡)设置,是一个老生常谈的话题。网上的相关资料也是汗牛充栋,数不胜数。但对刚刚接触Solaris的朋友来说,最需要的大概是一篇简明通俗、易读易用的操作指南。鉴于此,本文将网卡设置过程中涉及的一些基本操作和常见问题,进行了一下梳理和归纳,同时辅以作者在Solaris 10下进行网卡设置的亲身经历,希望能为读者朋友提供一个入门级的参考。
硬件环境:x86 PC,华硕主板,集成VIA rhine II Ethernet adapter
为使各位阅读起来更加容易,本文将内容划分为《驱动程序安装篇》、《网卡设置入门篇》、《网卡设置提高篇》三个部分。若文中有不当之处,希望大家批评指正。
一. 驱动程序安装篇
网卡要正常工作,肯定少不了网卡驱动程序的支持。对于一些常见型号的网卡,Solaris 10已经把它们的驱动程序放在安装包里面了。安装操作系统时会提示对网卡进行设置。如果你的网卡恰巧不在此列,那就只能自己动手丰衣足食了。
1. 如何知道网卡型号
1) 查看网卡上的标签信息
2) 在Windows的设备管理器中查看,或在命令行中执行ipconfig /all
3) 如果是品牌机,在产品说明书中查看配置信息
我的机器是自己攒的兼容机,网卡是主板上集成的,在Windows的设备管理器中看到的信息是VIA rhine II Fast Ethernet Adatper。
.2. 如何判断网卡在Solaris 10中是否有现成的驱动程序
1) 去SUN公司的网站上去查,地址是:,点Networking。如果没找到的话也不要灰心,点Next Page看看。
2) 另一种方法是,在安装Solaris 10的时候,如果安装程序自始至终都没有提示你进行网络设置,那就应该是没找到网卡的驱动程序。
在安装Solaris 10的过程中,没有任何一个环节提示我对网卡进行设置。进入Solaris系统后,运行ifconfig -a,只有一个本地自环网络lo0。看来只能自己安装了。
3. 下载驱动程序
到哪里去下载网卡的驱动程序?下面推荐几个驱动程序的来源:
1) 网卡厂家的网站
2) http://Solaris-x86.org/software/drivers/
3) http://homepage2.nifty.com/mrym3/taiyodo/eng/index.htm
4) http://www.mydrivers.com/
6) 用搜索引擎去搜
经过一番寻觅,我终于在下载到了VIA rhine II在Solaris下的驱动程序。是一个压缩文件rh-2.0.1.tar.gz,里边既有编译好的二进制驱动程序文件,同时包含源代码。
由于网卡目前还不能工作,无法通过网络上传驱动程序文件。
一般可使用如下三种存储介质来将驱动程序文件复制到Solaris的文件系统中。
1) CD/DVD
2) 软盘
3) USB存储设备
我在Windows下用Nero软件把rh-2.0.1.tar.gz刻录到一张空白光盘上(文件只有163K,有点浪费)。接下来以root用户登录Solaris 10,把rh-2.0.1.tar.gz文件从光盘复制到Solaris硬盘上,解压缩。
# cp /cdrom/cdrom0/rh-2.0.1.tar.gz /tmp
# gzip -dc rh-2.0.1.tar.gz | tar xvf -
在/tmp目录下生成一个rh-2.0.1目录。驱动程序文件rh就位于obj子目录下面。
5. 安装驱动程序
网卡驱动程序有多种发布方式,因而相应的安装方法也不尽相同。
1) pkg包:安装通过pkg文件方式发布的驱动程序,只需要执行一条命令就可以搞定了:
# pkgadd -d .
2) 安装脚本:有的网卡驱动程序通过单独的二进制文件方式发布,同时提供安装脚本和README文件。README里面有具体的安装方法。
3) 无安装脚本:需要使用最原始的驱动程序安装方法,即使用add_drv命令来安装。方法是,将驱动程序文件复制到/kernel/drv或/usr/kernel/drv目录下,再执行# /usr/sbin/add_drv -n -v -i ,。其中的","可在# prtconf -pv的结果中找到。
rh-2.0.1的安装方式是第二种,有现成的安装脚本文件add_drv.sh。我按照README里面的提示,执行
# cd /tmp/rh-2.0.1
# /usr/ccs/bin/make install
# ./add_drv.sh
Driver (rh) installed.
驱动程序安装成功。
6. 网卡命名规则
Solaris使用唯一的设备名来标识每一块物理网卡。网卡设备名的命名规则是即驱动程序名后面跟一个从0开始的数字。比如机器上装有3块均使用驱动程序iprb的网卡,则依次命名为iprb0,iprb1,iprb2。
按照这个规则,我的网卡设备名应该是rh0。敲入命令,查看当前已安装驱动程序的网卡
# dladm show-link
rh0 type: legacy mtu: 1500 device: rh0
果然有rh0。
Solaris 10操作系统的以太网卡设置(二)--网卡设置入门篇 2006/03/21
文/李凯
二. 网卡设置入门篇
上一篇我们介绍的是网卡驱动程序的安装过程,并成功安装了VIA rhine II网卡的驱动程序。本篇将以上一篇中安装的网卡rh0为例,对IP地址和子网掩码等一些基本的网络参数进行设置。
通常的设置方式有两种,一是使用ifconfig命令,二是通过创建和修改相关配置文件。使用ifconfig命令,可以使设置立即生效,但设置是临时的,每次系统重启后,需要重新进行设置。而创建和修改配置文件,可保存设置,系统每次启动时,会根据配置文件的内容自动对网卡进行设置。
1. 使用ifconfig命令对网卡进行设置
1) 激活网卡(# ifconfig plumb up)
激活网卡的意义在于将网卡驱动程序加载到Solaris系统的内核中,激活之后才可以进一步对网卡进行操作。
手动激活rh0,
# ifconfig rh0 plumb up
验证结果,
# ifconfig -a
lo0: flags=2001000849mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
rh0: flags=1000843mtu 1500 index 2
inet 0.0.0.0 netmask 0
ether 0:8:d:6e:8b:f1
可以看到rh0已被激活,但还没有分配地址。
2) 分配地址
网卡地址分配通常包括静态分配和dhcp动态分配两种方式。任选其一。
a) 静态分配地址(命令 # ifconfig <interface> <address> netmask <netmask>)
把IP: 129.158.215.204 , netmask: 255.255.255.0分配给rh0,
# ifconfig rh0 129.158.215.204 netmask 255.255.255.0
验证结果,
# ifconfig rh0
rh0: flags=1000843mtu 1500 index 2
inet 129.158.215.204 netmask ffffff00 broadcast 129.158.215.255
ether 0:8:d:6e:8b:f1
IP和子网掩码已生效。
b) 通过dhcp方式分配地址(命令 # ifconfig dhcp )
重新激活rh0,
# ifconfig rh0 unplumb down
# ifconfig rh0 plumb up
通过dhcp方式获得IP和子网掩码,
# ifconfig rh0 dhcp
验证结果,
# ifconfig rh0
rh0: flags=1004843mtu 1500 index 2
inet 129.158.215.247 netmask ffffff00 broadcast 129.158.215.255
ether 0:8:d:6e:8b:f1
已自动获取到IP和子网掩码。
2. 通过配置文件对网卡进行设置
和网卡基本设置相关的配置文件放在/etc/inet和/etc目录下,包括
/etc/hosts -> /etc/inet/hosts (文件中的每一行记录表示hostname和ip地址的对应关系)
/etc/hostname.(文件内容和文件的扩展名构成hostname和interface设备名的对应关系)
/etc/netmasks (文件中的每一行记录表示和netmask的对应关系)
/etc/dhcp.(dhcp)
1) 分配地址
同样包括静态分配和dhcp动态分配两种方式。任选其一。
a) 静态分配地址(文件 /etc/hosts , /etc/netmask , /etc/hostname.)
1> 自定义一个hostname,并指定IP地址
# vi /etc/hosts
加入一行记录:129.158.215.204 myhostname loghost
:x!保存退出。
2> 定义子网掩码
# vi /etc/netmasks
加入一行记录:129.158.215.0 255.255.255.0
:wq保存退出。
3> 将自定义的hostname关联到rh0
# vi hostname.rh0
加入一行记录:myhostname
:wq保存退出。
b) 通过dhcp方式分配地址(文件 /etc/hostaname., /etc/dhcp.)
1> 创建空文件hostname.rh0
# touch /etc/hostname.rh0
2> 创建文件dhcp.rh0
# touch /etcdhcp.rh0
需要的话还可以在该文件中填入超时时间(秒),比如:30
2) 重启系统
# reboot
3) 常见问题:
在/etc/hosts文件中修改了IP地址,重启后,发现机器的IP地址还是原来的,是怎么回事?
问题可能出在/etc/inet/ipnodes文件。该文件的语法跟/etc/hosts相同,但优先级高于/etc/hosts。如果/etc/inet/ipnodes文件中保留了原来的IP地址,那么/etc/hosts中相同hostname的IP设置将被忽略。将ipnodes文件中的IP地址一行删掉,或改成新的IP地址,重启后,问题就消失了。
3. sys-unconfig
如果觉得使用ifconfig命令和手工修改配置文件太麻烦,可运行sys-unconfig命令,以交互方式对系统重新进行设置。执行
# sys-unconfig
重启后,系统会提示对网卡进行设置,并将设置结果自动保存到配置文件中。
Solaris 10操作系统的以太网卡设置(三)--网卡设置提高篇 2006/03/21
文/李凯
三. 网卡设置提高篇
在上一篇里,我们以网卡rh0为例,设置了IP地址和子网掩码等一些基本的网络参数。本篇将在前一篇的基础上,对网卡设置中涉及的路由、DNS、逻辑网卡等进一步进行设置。
1. 网关设置
1) 添加网关
a) 可以使用route命令添加缺省网关,即时生效
# route add default <网关地址>
b) 还可以将网关地址保存在/etc/defaultrouter中
# vi /etc/defaultrouter
在文件中加入网关的IP地址或hostname(必须在/etc/hosts中已经配置)
:wq!保存退出
# reboot
2) 查看缺省网关
# netstat -r
2. dns设置
1) 创建/etc/resolv.conf文件
# vi /etc/resolv.conf
将dns的IP地址填在文件中
:wq保存退出。
domain machinename
nameserver 10.198.22.23
2) 修改/etc/nsswitch.conf文件
# vi /etc/nsswitch.conf
找到"hosts: files"一行,在后面加dns,即修改为
hosts: files dns
3) 重新plumb网卡或reboot
4) 验证dns是否生效
# ping www.google.com
或
# nslookup www.google.com
3. 域名设置
1) 创建/etc/defaultdomain文件
# vi /etc/defaultdomain
在该文件中加入domainname,比如prc.SUN.com
:wq保存退出
2) 在/etc/hosts加入一行新的记录(格式为.)
# vi /etc/hosts
加入一行新的记录,比如
129.158.2.104 myhostname.prc.SUN.com
:wq保存退出
4. 逻辑网卡
如果想为一块物理网卡设置多个IP地址,可通过添加逻辑网卡(或叫虚拟网卡)来实现。比如为rh0增加一个逻辑地址129.158.215.207,与前面IP地址设置的方式和方法完全相同,网卡的名字为rh0:1,如果添加更多的逻辑网卡,rh0:后面的数字依次增加。
具体方法参见前一篇《二. 网卡设置入门篇》。
-------------------------------------------------------------------------------------------------