网络管理-配置IP连通性
配置IP连通性
目标:
完成这一章,你能做以下事情:
为一块新安装的网卡配置软件和驱动程序。
以命令行的方式配置和浏览系统的主机名。
以命令行方式配置和浏览系统的IP地址。
安装一块新的网卡后,修改/etc/hosts文件。
1.网络图
系统管理员应该有一份包括他所管理的所有的LAN硬件的网络图。这个网络图中至少应该有:
局域网所在的建筑或房间的大概的尺寸
局域网电缆的类型,包括终结器的类型
转发器,集线器,网桥,路由器,和网关的位置
每个节点的位置,和每一个节点的:
主机名
IP地址
链路层地址
网卡的硬件地址
操作系统的信息
你可以使用一个在线的工作表格,其中包括所有不需要用图形方式来描述的信息:如主机名,真实的名字,LAN网卡类型,IP地址,链路层地址。LANIC地址 操作系统类型等等。
有的工具,如HP Open View提供了网络图的图形界面,并且可以使用一个网络管理系统和简单网络管理协议(SNMP)来对你的网络进行管理。HP Open View由几个子产品构成,每一个可以单独购买
HP Open View Network Node Manager
Hp Open View IT/Operations
2. 通过/etc/rc.config.d/netconf来配置IP网络
当系统启动的时候会执行脚本/sbin/init.d/hostname和/sbin/init.d/net。这两个启动脚本都会从配置文件/etc/rc.config.d/netconf中读取配置参数,并且使用这些参数来进行系统初试化。
这些脚本中执行的命令有:
hostname ??设置系统的主机名
ifconfig ??设置IP地址,子网掩码,和本地回路地址
route ??? 在系统的路由表中添加记录
3.配置网络连通性
系统启动的时候会使用/etc/rc.config.d/netconf文件来配置一个网卡的IP地址。文件中指明了IP地址和网卡名称(还有其它的相关信息)。
一个netconf文件的例子:
# netconf: configuration values for core networking subsystems
# @(#) $Revision: 1.6.119.6 $ $Date: 97/09/10 15:56:01 $
# HOSTNAME: Name of your system for uname -S and hostname
# OPERATING_SYSTEM: Name of operating system returned by uname -s
# ---- DO NOT CHANGE THIS VALUE ----
# LOOPBACK_ADDRESS: Loopback address
# ---- DO NOT CHANGE THIS VALUE ----
# IMPORTANT: for 9.x-to-10.0 transition, do not put blank lines between
# the next set of statements
HOSTNAME="v2500b"
OPERATING_SYSTEM=HP-UX
LOOPBACK_ADDRESS=127.0.0.1
# Internet configuration parameters. See ifconfig(1m), autopush(1m)
# INTERFACE_NAME: Network interface name (see lanscan(1m))
# IP_ADDRESS: Hostname (in /etc/hosts) or IP address in decimal-dot
# notation (e.g., 192.1.2.3)
# SUBNET_MASK: Subnetwork mask in decimal-dot notation, if different
# from default
# BROADCAST_ADDRESS: Broadcast address in decimal-dot notation, if
# different from default
# INTERFACE_STATE: Desired interface state at boot time.
# either up or down, default is up.
# DHCP_ENABLE Determines whether or not DHCP client functionality
# will be enabled on the network interface (see
# auto_parms(1M), dhcpclient(1M)). DHCP clients get
# their IP address assignments from DHCP servers.
# 1 enables DHCP client functionality; 0 disables it.
# For each additional network interfaces, add a set of variable assignments
# like the ones below, changing the index to "[1]", "[2]" et cetera.
# IMPORTANT: for 9.x-to-10.0 transition, do not put blank lines between
# the next set of statements
INTERFACE_NAME[0]=lan0
IP_ADDRESS[0]=192.1.1.2
SUBNET_MASK[0]=255.255.255.0
BROADCAST_ADDRESS[0]=""
INTERFACE_STATE[0]=up
DHCP_ENABLE[0]=0
:
:
4.ifconfig命令
ifconfig 命令被用来:
为一个网卡分配一个IP地址
设置本地环路界面
分配一个子网掩码(可选)
这个命令在系统启动的时候通过/sbin/init.d/net脚本自动执行的。也可以在任何时候以命令行的方式执行。
以下是这个命令的语法:
ifconfig interface addr_family [address] [ parameters]
其中
interface ??一个最大四位的字符串,最后一个字符是数字,例如lan0。这个字符串代表网卡。???????数字表示网卡的instance。对有的系统来说,网卡的instance是自动分配的。首先???????配置的网卡是lan0。而lo0指明这是本地回路。
add_family ? 对DARPA Internet协议来说,唯一支持的是inet(默认的),。
address ? ? 数字形式的IP地址
parameters ? 最重要的参数是up,down,arp,-arp,和netmask。
???????up ?激活这个网卡
???????down 关闭这个网卡
???????[-] arp
????????? 在OSI模型的第二层和第三层(链路层和网络层)之间禁用/使用地址解析协议
???????netmask subnet
????????? 子网位掩盖网络部分。并指明了在将网络分割为子网的时候所保留地址的数 ????????? 量。我们会在下一章中详细讨论。
如果你直接使用ifconfig interface命令而没有加上任何参数。会显示当前有效网卡的名字,IP地址,子网掩码,广播地址和其它信息。
# ifconfig lan0
lan0: flags=863<up,BROADCAST,RUNNING,MULTICAST>
??? inet 192.6.1.72 netmask ffffff00 broadcast 192.6.1.255
5.IP多路技术
www.acme.com ??? www.bob.com ????www.kcith.com
16.1.1.1 16.2.2.2 17.1.1.1
?????????????lan0
现在大多数的UNIX版本的TPC/IP协议堆栈都可以用一个LAN界面支持多个逻辑界面。逻辑界面让你可以在一个物理界面上配置多个IP地址。使用这个功能,你可以为一个物理网卡配置多个IP地址。
使用IP多路技术,一个单独的系统可以被看成是拥有不同的IP地址和主机名的多个系统,即使这个系统只有一块物理网卡。这个功能可以在一台机器上让不同应用使用多个instances。就象这些应用在单独的机器上运行一样。
举个例子,一个ISP需要为Acme,Bob和Keith三家公司提供website。使用IP多路复用,一个只有一块网卡的系统可以有三个不同的IP地址,每个属于不同的网站。从外部看来,就和Acme,Bob,和Keith公司的网站建立在不同的机器上一样。
分配给一个卡的IP地址可以在相同的子网内,也可以在不同的子网内。在这个例子里,两个IP地址是在同一个子网(16.1.1.1和16.2.2.2)而另外一个在不同的子网内(17.1.1.1)。
IP/Ethernet 对IP/IEEE 802.3
当一个网卡同时用作传输IP/Ethernet和IP/IEEE 802.3数据包的时候,也可以使用逻辑网卡。使用ethernet和IEEE 802.3发送IP包需要不同逻辑网卡。要同时发送两种包,你必须配置两个不同的IP地址。同时这两个IP地址必须在两个不同的子网内。
ifconfig和/etc/rc.config.d/netconf中使用的网卡名可以在网卡名后面加上逻辑instances号,例如(lan0:1)。语法为:
??nameX[:logical_instance]
其中
X ??
????????为逻辑单元号。表示网卡物理位置的一个数字的索引。
logical_instance
????????对应于指定的网卡的一个逻辑的索引号。默认为0,网卡名lan0和lan0:0代表的????????是相同的网卡。
第一个逻辑instance号(逻辑instance为0)代表这是第一个逻辑网卡。第一个instance必须在配置后面一个instance之前配置。例如,lan2:0(或者lan2)必须在lan2:1之前配置。一旦你配置第一个逻辑界面,你就可以以任意的顺序配置后面的逻辑网卡。
例子:
这个系统有两个物理网卡和三个逻辑网卡。使用ifconfig命令可以配置三个逻辑网卡:
# ifconfig lan0:0 inet 16.1.1.1
# ifconfig lan0:1 inet 16.2.2.2
# ifconfig lan1:0 inet 18.1.1.1
/etc/rc.config.d/netconf 文件如下:
INTERFACE_NAME[0]=lan0
IP_ADDRESS[0]=16.1.1.1
SUBNET_MASK[0]=255.0.0.0
BROADCAST_ADDRESS[0]=""
INTERFACE_STATE[0]=up
DHCP_ENABLE[0]=0
INTERFACE_NAME[1]=lan0:1
IP_ADDRESS[1]=16.2.2.2
SUBNET_MASK[1]=255.0.0.0
BROADCAST_ADDRESS[1]=""
INTERFACE_STATE[1]=up
DHCP_ENABLE[1]=0
INTERFACE_NAME[2]=lan1
IP_ADDRESS[2]=18.1.1.1
SUBNET_MASK[2]=255.0.0.0
BROADCAST_ADDRESS[2]=""
INTERFACE_STATE[2]=up
DHCP_ENABLE[2]=0
配置SNAP/IEEE 802.3界面
物理网卡1
16.1.1.1 lan0:0 17.1.1.1 snap0:0
(ethernet) ?????????(SNAP/IEEE802.3)
在这个例子中,系统有一个物理网卡,和两个逻辑网卡。其中一个逻辑网卡被SNAP/IEEE802.3使用。使用如下的ifconfig命令来配置:
# ifconfig lan0:0 inet 16.1.1.1
# ifconfig snap0:0 inet 17.1.1.1
/etc/rc.config.d/netconf中的配置如下:
INTERFACE_NAME[0]=lan0
IP_ADDRESS[0]=16.1.1.1
SUBNET_MASK[0]=255.0.0.0
BROADCAST_ADDRESS[0]=""
INTERFACE_STATE[0]=up
DHCP_ENABLE[0]=0
INTERFACE_NAME[1]=snap0:0
IP_ADDRESS[1]=17.1.1.1
SUBNET_MASK[1]=255.0.0.0
BROADCAST_ADDRESS[1]=""
INTERFACE_STATE[1]=up
DHCP_ENABLE[1]=0
注意snap0:0的IP地址不能和lan0:0的IP地址在同一个网段上。同时snap逻辑网卡(snap0:0)的逻辑instance号是0,不是1。对每个界面名字来说,逻辑instance号都是从0开始的。
5./etc/hosts文件
/etc/hosts文件可以将主机名和别名解析为IP地址。这样用户可以用便于记忆的字符名称来代替难记的IP地址。
配置LAN 9000连接不要求使用/etc/hosts文件。但是如果配置了这个文件,你就可以使用主机名代替IP地址立即使用预先配置好的网络服务。
如下是/etc/hosts文件的语法:
IP_address hostname [alias ...]
其中
IP_address ????节点的IP地址
hostname ?????ARPA主机名。同在/etc/rc.config.d/netconf文件中配置的一样。
alias ?????? 主机名的替代名。这是可选的。一个主机可以有几个别名。
当创建/etc/hosts文件的时候,必须遵守如下的规则:
一行的开头不可以是空白或者tab字符。
字段之间可以让多个空白字符或者tabs分割。
注释部分可以指明系统的属主,系统的类型,操作系统,版本,注释是用符号(#)开始的部分。
每一行只能有一个主机记录
在IP地址的第一位不能为0。
不要更改或者删除本地回路的记录。
在/etc/hosts中的本地IP地址要和/etc/rc.config.d/netconf文件中的一致。
注意:/etc/hosts文件的属主必须为bin,同时存取权限为04444(-r--r--r--)。
映射主机名为IP地址
当一个用户在一个网络请求中使用一个主机名的时候(例如 telnet sysA),主机名的解析依靠网络管理员是否配置了动态名称服务开关。如果已经配置了名称服务器,它会决定使用那种方式来解析主机名。如是使用NIS,DNS或者网络配置文件(如/etc/hosts文件)。
如果没有配置域名服务器,但是配置了NIS或者NIS+,这时系统会用NIS来解析主机名,如果DNS和NIS都没有配置,/etc/hosts文件会被使用。如果主机名和IP地址不能找到,你会得到错误信息:UNknown host 。
系统管理员可以配置名称服务的查询顺序。这个顺序被gethostbyname()和gethostbyaddr()库函数调用。管理员可以选择已存在的名称服务的任意一种组合,例如DNS,NIS,NIS+,和本地hosts文件。同时,管理员可以定义当第一个名称服务失效的时候使用哪一个服务的条件。这种特征被称为名称服务开关 。可以通过配置/etc/nsswitch.conf文件来实现这种选择。这会在下一章中讨论。NIS,NIS+,和DNS会在其它章讨论。