第 5章 Linux网络基础本章学习目标本章主要让读者在使用 Internet之前对
Internet有一个大致的了解,以帮助读者对本书后续章节的学习。通过对本章的学习,
读者应该掌握以下主要内容:
什么是 Internet
Internet的由来和发展历程
Internet提供的主要服务有哪些
Internet在企业内部网的应用
我国在 Internet网络上的发展状况
5.1 TCP/IP协议
5.1.1 TCP/IP协议概述现在,随着 Internet 的迅速发展使得计算机网络的应用已经开始遍及到我们现实生活的方方面面,而在 Internet网络上所使用的协议正是 TCP/IP( Transmission Control
Protocol/Internet Protocol) 协议,即传输控制协议 /网际协议,在 20世纪 60年代后期开发出来了用于,异构,网络环境中的 TCP/IP协议 。 也就是说,TCP/IP协议可以在各种硬件和操作系统上实现,并且 TCP/IP协议已成为建立计算机局域网,广域网的首选协议,并将随着网络技术的进步和信息高速公路的发展而不断地完善 。
5.1.2 Internet 网际协议 ( IP)
在 TCP/IP体系中,网际协议是最主要的协议之一 。
1,IP地址在 TCP/IP网络中,每个主机都有唯一的地址,它是通过 IP
协议来实现的 。 IP协议要求在每次与 TCP/IP网络建立连接时,每台主机都必须为这个连接分配一个唯一的 32位地址,
因为在这个 32位 IP地址中,不但可以用来识别某一台主机,
而且还隐含着网际间的路径信息 。 需要强调指出的,这里的主机是指网络上的一个节点,不能简单地理解为一台计算机,实际上 IP地址是分配给计算机的网络适配器 ( 即网卡 ) 的,一台计算机可以有多个网络适配器,就可以有多个 IP地址,一个网络适配器就是一个节点 。
IP地址为 32位地址,一般以 5个字节表示 。 每个字节的数字又用十进制表示,即每个字节的数的范围是 0~255,且每个数字之间用点隔开,例如,192.168.101.5,这种记录方法称为,点 -分,十进制记号法 。 IP地址的结构如下所示:
网络类型 网络 ID 主机 ID
IP地址的 32位被分成了 3个字段:网络类型字段、网络 ID字段和主机 ID字段。网络类型字段用于标识网络的类型,到目前为止网络划分为 A~E五类;网络 ID则标识该主机所在的网络,由网络类型字段和网络 ID
字段构成网络标识;主机 ID是该主机在网络中的标识。 IP地址的基本分配原则是要为同一网络内的所有主机分配相同的网络标识号,同一网络内的不同主机必须分配不同的主机 ID号,以区分主机,不同网络内的每台主机必须具有不同的网络标识号,但是可以具有相同的主机标识号。按照 IP地址的结构和其分配原则,可以在 Internet上很方便的寻址:先按 IP地址中的网络标识号找到相应的网络,再在这个网络上利用主机 ID找到相应的主机。由此可看出 IP
地址并不只是一个计算机的代号,而是指出了某个网络上的某个计算机。
组建一个网络时,为了避免该网络所分配的 IP地址与其他网络上的 IP地址发生冲突,必须为该网络向 InterNIC
( Internet网络信息中心 ) 组织申请一个网络标识号,这也就是整个网络使用一个网络标识号,然后再给该网络上的每个主机设置一个唯一的主机号码,这样网络上的每个主机都拥有一个唯一的 IP地址 。 另外,国内用户可以通过中国互联网络信息中心 ( CNNIC) 来申请 IP地址和域名 。
当然,如果网络不想与外界通信,就不必申请网络标识号,
而自行选择一个网络标识号即可,只是网络内的主机的 IP
地址不可相同 。
2,IP地址的分类为了充分利用 IP地址空间,Internet委员会定义了五种 IP地址类型以适合不同容量的网络,即 A类至 E类,如图 5-1所示 。 其中 A,B,C三类由 InterNIC( Internet网络信息信心 )
在全球范围内统一分配,D,E类为特殊地址 。
0 网络地址 ID( 7BIT) 主机地址 ID(25BIT)
0 1 7 8 31
A类 IP地址
10 网络地址 ID( 15BIT) 主机地址 ID(16BIT)
0 1 2 15 16 31
B类 IP地址
110 网络 IP地址( 21BIT) 主机地址 ID( 16BIT)
012 3 23 24 31
C类 IP地址
1110 广播地址 ID( 28BIT)
0123 4 31
D类 IP地址
11110 保留用于将来和试验使用
01234 5 31
E类地址
( 1) A类地址 。
从图 5-1( a) 中可以看出,在 A类地址中,用第一个字节来表示网络类型和网络标识号,后面三个字节用来表示主机号码,其中第一个字节的最高位设为 0,用来与其他 IP地址类型区分 。 第一个字节剩余的 7位用来表示网络地址,最多可提供 27-2=126个网络标识号;这种 IP地址的后 3个字节用来表示主机,每个网络最多可提供大约 1678万 ( 225-2)
个主机地址 。 这类地址网络支持的主机数量非常大,只有大型网络才需要 A类地址,由于 Internet发展的历史原因,
A类地址早已被分配完毕 。
( 2) B类地址 。
从图 5-1( b) 中可以看出,在 B类地址中,用前两个字节来表示网络类型和网络标识号,后面两个字节标识主机号码,其中第一个字节的最高两位设为 10,用来与其他 IP地址区分开,第一个字节剩余的 6位和第二个字节 ( 共 15位 )
用来表示网络地址,最多可提供 215-2=16,385个网络标识号 。 这种 IP地址的后 2个字节用来表示主机号码,每个网络最多可提供大约 65,535( 216-2) 个主机地址 。 这类地址网络支持的主机数量较大,适用于中型网络,通常将此类地址分配给规模较大的单位 。
( 3) C类地址 。
从图 5-1( c) 中可以看出,在 C类地址中,用前 3个字节来表示网络类型和网络标识号,最后一个字节用来表示主机号码,其中第一个字节的最高位设为 110用来与其他 IP地址区分开,第一个字节剩余的 5位和后面两个字节 ( 共 21
位 ) 用来表示网络地址,最多可提供约 200万 ( 221-2) 个网络标识号 。 最后 1个字节用来表示主机号码,每个网络最多可提供 254( 28-2) 个主机地址 。 这类地址网络支持的主机数量较少,适用于小型网络,通常将此类地址分配给规模较小的单位,如公司,院校等单位 。
D类地址是多播地址,主要是留给 Internet体系结构委员会
IAB( Internet Architecture Board) 使用 。 E类地址保留在今后使用 。 目前大量使用的 IP地址仅有 A,B和 C类三种 IP
地址 。
例如:一个 IP地址为 130.12.5.35,其用二进制表示为
10000010 00001100 00000100 00100010,把其与图 5-1相比较可以看出,此 IP地址属于 B类网络,其网络 ID号为 0000010
00001100B,即 525,主机号为 00000100 00100010,即为 1058。
( 5) 特殊的 IP地址 。
① 如果网络 ID为 127,主机地址任意,这种地址是用来做循环测试用的,不可用作其他用途 。 例如,127.0.0.1
是用来将消息传给自己的 。
② 在 IP地址中,如果某一类网络的主机地址为全 1,则该 IP地址表示是一个网络或子网的广播地址 。 例如,
192.168.101.255,分析可知它是 C类网络地址,其主机地址为最后一个字节,即 255,二进制为 11111111B,表示将信息发送给该网络上的每个主机 。
③ 在 IP地址中,如果某一类网络的主机地址为全 0,则该 IP 地址表示为网络地址或子网地址 。 例如,
192.168.101.0,分析可知它是 C类网络地址,其主机地址为最后一个字节即 0,二进制为 00000000B,表示一个网络地址 。
说明,正是由于地址不允许全 0( 表示网络或子网地址 ) 或全 1( 表示广播地址 ),所以其网络数目和主机数目都要减 2。
例如,C类网络只能支持 28-2=254个主机地址 。
另外,如果要使网络直接连入 Internet,应使用由 InterNIC分配的合法 IP地址 。 如果通过代理服务器连入 Internet,也不应随便选择 IP地址,应使用由 IANA( 因特网地址分配管理局 )
保留的私有 IP地址,以避免与 Internet上合法的 IP地址相冲突 。
这些私有地址的范围是:
l 10.0.0.1 ~ 10.255.255.255 ( A类 ) ;
l 172.13.0.1 ~ 172.32.255.255 ( B类 ) ;
l 192.168.0.1 ~ 192.168.255.255 ( C类 ) 。
综合来看,IP地址具有以下一些重要特点:
① IP地址是一种非等级的地址结构 。 这就是说,和电话号的结构不一样,IP地址不能反映有关主机位置的地理信息 。
② 当一个主机同时连接到两个网络上时 ( 作路由器用的主机即为这种情况 ),该主机就必须同时具有两个相应的
IP地址,其网络号是不同的 。 这种主机称为多地址主机 。
③ 按照 Internet的观点,用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号码 。
④ 在 IP地址中,所有分配到网络号的网络都是平等的 。
3,子网及子网掩码
( 1) 子网 。
子网是指在一个 IP地址上生成的逻辑网络,它使用源于单个 IP地址的 IP寻址方案,把一个网络分成多个子网,要求每个子网使用不同的网络 ID,通过把主机号(主机 ID)分成两个部分,为每个子网生成唯一的网络 ID。一部分用于标识作为唯一网络的子网,另一部分用于标识子网中的主机,这样原来的 IP地址结构变成如下三层结构:
网络地址部分 子网地址部分 主机地址部分
( 2) 子网掩码 。
子网掩码是一个 32位地址,它用于屏蔽 IP地址的一部分以区别网络 ID和主机 ID;用来将网络分割为多个子网;判断目的主机的 IP地址是在本局域网或是在远程网 。 在 TCP/IP
网络上的每一个主机都要求有子网掩码 。 这样当 TCP/IP网络上的主机相互通信时,就可用子网掩码来判断这些主机是否在相同的网络段内 。
如表 5-2所示为各类 IP地址所默认的子网掩码 。 其中值为 1
的位用来定出网络的 ID号,值为 0的位用来定出主机 ID。
例如,如果某台主机的 IP地址为 192.168.101.5,通过分析可 以 看 出 它 属 于 C 类 网 络,所 以 其 子 网 掩 码 为
255.255.255.0,则将这两个数据作逻辑与 ( AND) 运算后结果为 192.168.101.0,所得出的值中非 0位的字节即为该网络的 ID。 默认子网掩码用于不分子网的 TCP/IP网络 。
类 子网掩码 子网掩码的二进制表示
A 255.0.0.0 11111111.00000000.0
0000000.00000000
B 255.255.0.0 11111111.11111111.00
000000.00000000
C 255.255.255.0 11111111.11111111.111
11111.00000000
具体的运算步骤如下:
例如,192.168.101.5的二进制表示为 11000000 10101000
01100101 00000101B;子网掩码为 255.255.255.0,其二进制值为 11111111 11111111 11111111 00000000,则当
192.168.101.5和 255.255.255.0进行逻辑与运算
11000000 10101000 01100101 00000000
11111111 11111111 11111111 11111111
11000000 10101000 01100101 0000000
后,所得出结果为 11000000 10101000 01100101 00000000,
其中非 0的三个字节,即 192.168.101为该网络 ID,剩余的字节 ( 即 5 ) 为 主机 ID 。 若 该网络 的另 一台的 IP地 址为
192.168.101.250,子网掩码也为 255.255.255.0,则同样会得到网络 ID为 192.168.101,因此这两台主机在同一网段内 。
子网掩码的另一个用途就是可将网络分割为多个以 IP路由连接的子网 。 如果某单位仅申请了一个网络 ID号,但其网络规模较大,需要按照部门划分出多个子网段,此时可以借助子网掩码来实现需求 。 从 IP地址的三层结构可以看出,用于子网掩码的位数决定可能的子网数目和每个子网内的主机数目 。
在定义子网掩码之前,必须弄清楚网络中使用的子网数目和主机数目,这有助于今后当网络主机数目增加后,重新分配
IP地址的时间,子网掩码中如果设置的位数使得子网越多,
则对应的其网段内的主机就越少 。
5,IP路由路由是数据从一个节点传输到另一个节点的过程 。 例如,要出发到某地,一般先确定到达目的地的路线 。 在 TCP/IP网络中,同一网络区段中的计算机可以直接通信,不同网络区段中的计算机要相互通信,则必须借助于 IP路由 。
在网络中要实现 IP路由必须使用路由器,而路由器可以是专门的硬件设备,如 Cisco公司的路由器等;若没有专用的路由设备,也可以将某台计算机设置为路由器 。 不论用何种方式实现,路由器都是靠路由表来确定数据报的流向的,IP路由表实际上是相互邻接的网络 IP地址的列表,当一个节点接收到一个数据报时,便查询路由表,判断目的地址是否在路由表中,如果是,则直接送给该网络,否则转发给其他网络,直到最后到达目的地 。
在 TCP/IP网络中,IP路由器又叫 IP网关 。 每一个节点都有自己的网关 。 IP报头指定的目的地址不在同一网络区段中,
就会将数据报传送给该节点的网关,如果网关知道数据报的去向,就将其转发到目的地 。 每一网关都有一组定义好的路由表,指明网关到特定目的地的路由 。 网关不可能知道每一个 IP地址的位置,因此网关也有自己的网关,通过不断转发,寻找路径,直到数据报到达目的地为止 。
如图 5-2所示,通过设置为路由器的计算机 X来实现了两个网段 202.204.58与 202.204.60( 它们的子网掩码为
255.255.255.0) 的互联 。 这两个网段的计算机可以互相发送与接受信息 。
一般的,作为路由器的计算机中都安装有两块网卡,这两块网卡的 IP分别是要路由的两个网段中的一个 IP地址,
这样该计算机就好比一座桥梁一样用来连接两个不同的网段,完成路由的功能 。
5.1.3 下一代的网际协议 IPv6
现在看来,当初 IP地址的设计确实有不够合理的地方。
1995年以后陆续公布了一系列有关 IPv6的协议、编址方法、
路由选择以及安全等问题的 RFC文档。 IPv6主要在以下几个方面进行扩充和改进:
( 1) IPv6把原来 IPv4地址增大到了 128bit,其地址空间大于 3.5× 1038,是原来 IPv4地址空间的 296倍。
( 2)这种下一代的 IP协议并不是完全抛弃了原来的 IPv4,且允许与 IPv4在若干年内共存。它使用一系列固定格式的扩展首部取代了 IPv4中可变长度的选项字段。
( 3) IPv6对 IP数据报协议单元的头部与原来的
IPv4相比进行了相应的简化,仅包含 7个字段( IPv4有 13
个),这样,数据报文经过中间的各个路由器时,各个路由器对其处理的速度加快,提高了网络吞吐率。
5) IPv6另一个主要的改善方面是在它的安全方面 。
在许多报纸和文章都看见过某某军事机构网络被黑客入侵,
某某银行的钱款被人划进某人自己的账户等等,所以 IPv6
从一开始就致力于提高网络的安全性,身份验证和隐私权是新 IP的关键特性 。
一般来讲,一个 IPv6数据报的目的地址可以是以下三种基本类型地址之一:单播地址,多播地址和任播地址 。 单播地址是传统的点对点通信 。 多播地址是一个站点在发送数据时,属于同一个工作组的每一个计算机都能接收 。 在
IPv4中采用的广播一词 IPv6没有采用,而是将广播地址看作多播地址的一个特例 。 任意播送的目的地址是一个工作组地址,但它并不是将数据报发送给该工作组的每一成员,
而是将数据报在交付时只交付给其中的一个,通常是距离最近的一个 。
IPv6将实现 IPv6的主机和路由器均称为结点,并将 IPv6
地址分配给结点上面的接口 。 一个接口可以有多个单播地址 。 一个结点接口的单播地址可用来唯一地标识该结点 。
如同 IPv4一样,IPv6把一个地址与特定的网络连接(而不是与特定的计算机)相关联,因此一个 IPv6路由器由于和两个或多个网络相连接因而具有两个或多个地址。为了地址分配和修改的方便,IPv6允许给一个给定的网络指派多个前缀,也允许对一个主机的给定接口同时指派多个地址。 IPv6用“冒号十六进制”记法,它把每个 16比特的量用十六进制值表示,各量之间用冒号分隔。例如,
如果前面所给的点分十进制数记法的值改为冒号十六进制记法,就变成了
FFFE:000C:0000:0000:0C00:0000:0000:000C
另外,IPv6还允许对这种冒号十六进制的地址记法进行压缩:
( 1) 一组中的前导零可以忽略不写 。 例如上面这个 IPv6地址中的第二组 000C可以直接写成 C,则该地址可压缩为:
FFFE:C:0:0:C00:0:0:C。
( 2)冒号十六进制记法还可以允许零压缩,即一串连续的零可以为一对冒号所取代,为了保证零压缩有一个不含混的解释,建议中还规定,在任一地址中,只能使用一次 零压缩。该技术对已建议的分配策略特别有用,因为会有许多地址包含连续的零串。例如:上面这个 IPv6地址可压缩为
FFFE:C::C00:0:0:C。
其次,冒号十六进制记法结合有点分十进制记法的后缀,
这种结合在 IPv4向 IPv6的转换阶段特别有用 。 例如,下面的串是一个合法的冒号十六进制记法:
0:0:0:0:0:0:192.168.101.5
请注意,在这种记法中,虽然为冒号所分隔的每个值是一个 16比特的量,但每个点分十进制部分的值则指明一个字节的值 。 再使用零压缩即可得出:
::192.168.101.5
5.1.4 Internet的域名管理
1,概述
2,DNS域名结构
DNS数据库的结构如同一棵倒过来的树,它的根位于最顶部,紧接着在根的下面是一些主域,每个主域又进一步划分为不同的子域 。 由于 InterNIC负责管理世界范围的 IP地址分配,顺理成章,它也就管理着整个域结构,整个
Internet的域名服务都是由 DNS来实现的,与文件系统的结构类似,每个域都可以用相对的或绝对的名称来标识,
相对于父域来表示一个域可以用相对域名,绝对域名指完整的域名,主机名指为每台主机指定的主机名称,带有域名的主机名叫全称域名 。
如图 5-15所示,这是整个 Internet的域结构图 。 最高层次是顶级域又叫主域,它的下面是子域,子域下面可以有主机,
也可以再分子域,直到最后是主机 。 要在整个 Internet来识别特定的主机,必须用全称域名,例如,
www.microsoft.com。
顶级域名常见的有两类:
( 1) 国家级顶级域名 。 例如,CN表示中国; UK表示英国;
AU表示澳大利亚等等 。
( 2) 通用的顶级域名 。 例如:
l COM:商业机构;
l EDU:美国教育机构;
l NET:网络管理机构;
l ORG:社会团体;
l MIL:美国军队部门;
由于 Internet上用户的急剧增加,现在又增加了七个通用的顶级域名,即:
l FIRM:表示公司企业;
l SHOP:表示销售公司和企业;
l WEB:表示突出万维网络活动的单位;
l ARTS:表示突出文化,娱乐活动的单位;
l REC:表示突出消遣,娱乐活动的单位;
l INFO:表示提供信息服务的单位;
l NOW:表示个人 。
在国家顶级域名下注册的二级域名均由该国家自行确定 。 我们国家将二级域名划分为,类别域名,和,行政区域名,两大类 。 其中,类别域名 6个,分别是,
l AC:表示科研机构;
l COM:表示工,商,金融等企业;
l EDU:表示教育机构;
l GOV:表示政府部门;
l NET:表示互联网络,接入网络的信息中心和运行中心;
l ORG:表示各种非赢利性组织 。
行政区域名 35个,适用于我国的省,自治区,直辖市 。 例如:
bj为北京市; sh为上海市; hb为湖北省等等 。
5.1.5 Linux的网络配置在 Red Hat Linux 9中提供了一个图形界面的网络配置工具 。
使用该配置工具,可以配置各种网络连接 。 下面使用该工具来对一个 Linux系统进行网络配置,配置的主要参数如下:
网络 IP地址,211.85.203.22
子网掩码,255.255.255.0
默认网关,211.85.203.255
DNS服务器地址,211.85.192.8
(
1) 启动 redhat-config-network管理工具,方法有以下两种:
依次单击面板上的,主菜单 → 系统设置 → 网络,,
可打开如图 5-3对话框 。
在终端的提示符下输入,redhat-config-network‖命令,可打开如图 5-3对话框 。
从图 5-3中可看出,Linux系统在安装过程中已经自动识别出一个网络适配器 ( 或叫网卡 ),但此网卡由于没有进行配置,所以其目前的状态是不活跃状态,即还没有被激活 。
( 2) 在图 5-3中,双击需要激活的网卡记录 。 在本例中双击,eth0‖,打开图 5-4所示的对话框,在该对话框中进行常规网络配置 。
从图 5-4中可看出,在该对话框中可由两种方法对 IP地址进行设置:一种是通过,自动获取 IP地址使用,来获得 IP
地址,但这种方式的前提是必须在本机所在的局域网中拥有 DHCP服务器;第二种是手工配置 IP地址 。 在本例中采用第二种方法,手工配置 IP地址 。
( 3) 在图 5-4中,选中,静态设置 IP地址,单选按钮,并在该单选按钮下面的文本框中输入相应的网络参数值,如图 5-5所示 。
( 5) 当网络参数值输入完毕后,单击,确定,按钮,
返回到图 5-3。 在图 5-3所示的对话框中,选择 DNS选项卡,打开如图 5-6所示的对话框 。
( 5 ) 在图 5-6 中,输 入 本 机 的 主 机 名,
,lbliubing.com‖; DNS( IP地址 ),,211.85.192.8‖
后,单击,设备,选项卡,返回到图 5 -3中 。
图 5—6
( 6) 此时,在图 5-3的对话框中,单击工具条上的,激活,按钮,系统会弹出一个问题对话框,如图 5-7所示 。
5—7
( 7) 在图 5-7的对话框中,单击,是,按钮,此时会弹出一个修改信息正确的对话框,如图 5 -8所示 。
( 8) 单击图 5-8中的,确定,按钮,出现如图 5-9所示 。
此时从图中可看到,eth0的状态已处于激活状态,如果想让网卡起作用,最好重新启动 Linux系统 。
图 5-9 激活网卡
5.2 Linux网络配置的常用命令
5.2.1 hostname
每个系统都应该有一个名字,这个名字通常在系统安装时确定,可以使用 hostname命令来获得当前系统的名字 。
同样设置计算机的名字也可以使用 hostname命令,但这需要 root权限:
# hostname lb.whpu.edu.cn
# hostname
lb.whpu.edu.cn
这个配置必须写入启动文件,以便每一次系统启动都能正确完成设置 。 因此,就需要在 rc.conf中改动或添加相关设置 。
hostname=―lb.whpu.edu.cn‖
一些情况下,这种改动方式会产生一些无伤大雅的小问题
5.2.2 ifconfig
ifconfig命令用到的执行参数可以没有,也可有一个网络接口的名字,一个 IP地址以及其他参数选项 。 ifconfig命令会把一个 IP地址分配给一个网络接口,然后,用户的系统就会知道存在着这样一个网络接口,还会知道它对应着某个特定的 IP地址 。 此外,用户还可以定义 IP地址到底是一个主机的地址还是一个网络的地址 。 用户还可以使用此 IP地址对应的域名,当然该域名及其 IP地址要出现在 /etc/hosts
文件的清单里 。 ifconfig命令单独使用时显示当前系统中活动的网卡设置,其在终端上的响应如图 5-10所示 。
5-10
在图 5-10中,命令响应的以 eth0为首的第一行是本机的以太网卡配置参数,这里显示了网卡的设备名和硬件的
MAC地址 00:00:E8:7D:FB:51( MAC地址是由生产厂家指定的,每个网卡拥有的唯一地址,MAC地址是一个 58
位地址,图中是以 16进制表示的 ) 。
第二行显示本机的 IP地址信息,分别是本机的 IP地址,网络广播地址和子网掩码 。 必须确认这些信息都是正确无误的,否则 Linux服务器无法与其它网络设备建立连接 。
第三行显示的是设备的网络状态。 MTU(最大传输单元)
和 Metric(度量值)字段显示的是该接口当前的 MTU和度量值的值。
后面几行是用来显示接口通信的网络统计值。 RX和 TX分别表示接收和传送的数据包。如果网卡已经完成配置却还是无法与其它设备通信,那么从 RX和 TX的显示数据上可以简单地分析一下故障原因。
在图 5-10中,还有一个以 lo为首的部分 。 lo是 look-back网络接口,从 IP地址 127.0.0.1就可以看出,它代表,本机,。
无论系统是否接入网络,这个设备总是存在的,除非你在内核编译的时候禁止了网络支持,这是一个称为回送设备的特殊设备,它自动由 Linux配置以提供网络的自身连接 。
IP地址 127.0.0.1是一个特殊的回送地址 ( 即默认的本机地址 ),可以在系统上用 telnet对 IP地址 127.0.0.1进行测试 。
如果有 inetd进程在运行的话会从机器上获得登录提示符 。
Linux可以利用这个特征在进程与仿真网络之间进行通信 。
如果只是关心某个设备是否正常,可以在 ifconfig后面加上接口名字,如下面命令,( 其在终端上的响应如图 5-11所示 )
# ifconfig eth0
图 5-11 查看某个网络设备图 5-12 修改 IP地址如果要暂停某个网络接口的工作,使用 down参数将取消
eth0网络接口,命令如下:
ifconfig eth0 down
如果使用了带有参数的 ifconfig命令,那就可以手动设置网卡的配置参数了 。 有效的 ifconfig命令参数及其意义为:
Interface 网络设备名,如 eth0就表示本机的第一块网卡 。
up:标志接口处于,up‖状态,也就是说,IP层可以对其进行访问 。 这个选项用于命令行上给出一个地址之时 。
如果这个接口已被,down‖选项临时性取消的话 ( 与该选项对应的标记是 UP RUNNING),还可以用于重新启用一个接口 。
down:标志接口处于,down‖状态,也就是说,IP
层不能对其进行访问。这个选项有效地禁止了 IP通信流通这个接口。注意,它并没有自动删除利用该接口的所有路由信息。如果永久性地取消了一个接口,就应该删除这些路由条目,并在可能的情况下,提供备用路由。
netmask:分配子网掩码,供接口所用。要么给一个前面是 0x的 32位十六进制号码,要么采用只适用于两台主机所用的点分四段式号码。对 SLIP和 PLIP接口来说,这个选项是必须配置的。
address:设置指定接口设备的 IP地址 。
broadcast address 广播地址通常源于网络编号,通过设置主机部分的所有位得来 。 有的 I P采用的方案有所不同:这个选项可适用于某些奇怪的环境 ( 如果已经设置了广播地址,ifconfig就会显示出一个 BROADCAST标记 ) 。
hw class addr,设置指定接口设备的 MAC地址,关键字的后面必须跟硬件名或者与之等价的 ASCII码 。 目前支持的硬件类有 ether,
ax25,ARCnet和 netrom。
mtu bytes 该选项用于设置最大传输单元,也就是接口一次能处理的最大字节数 。 对以太网接口来说,MTU的默认设置是 1500 个字节;对 SLIP接口来说,则是 296个字节 。
arp 标这个选项专用于以太网或包广播之类的广播网络 。 它启用 ARP( 地址解析协议 ) 来保护网络上各台主机的物理地址 。 对广播网来说,默认设置是 " on"( 开 ) 。
5.2.3 ifup和 ifdown
ifcup命令用于启动指定的非活动网卡设备,该命令与
ifconfig up命令相似 。 Ifdown命令用于停止指定的活动网卡设备,该命令与 ifconfig down命令功能相似 。 这两个命令的格式如下:
ifup 网卡设备名
ifdown 网卡设备名这两个命令在终端上的使用及响应结果如图 5-13所示 。
图 5-13 ifup和 ifdown命令的使用
5.2.4 route
传输过程中的一个数据包会经过一个 ‘ 路由,到达目的地 。
在一个大型的网络中,数据包从一个计算机传输到另一个计算机,直到它们到达目标计算机为止,路由决定着这个过程从哪里开始,也决定着为了到达目的地,用户的系统最先需要向哪台计算机传输数据包 。 在小型网络中,路由可能是静态的 ——也就是说从一个系统到另外一个系统的路由是固定不变的,一个系统知道如何才能经过固定的路径到达另外一个 。 而在大型网络或者因特网中,路由的安排是动态的 。 用户的系统知道应该把数据包第一个发送给哪台计算机,那台计算机收到数据包后,再把它传递给下一台计算机,再由它决定如何继续下去,直到到达目的地为止 。 对动态路由来说,需要用户系统了解的东西是很少的 。 而静态路由却下一样,因为用户必须记录所有网络连接的通断情况,其路由安排可能会变得很复杂 。 用户的路由列在 /proc/net/route文件里保存的路由分配表里 。 如果想看到路由表,请输入不带任何参数选项的 route命令,其在终端上的响应结果如图 5-15所示 。
图 5-15 不带任何参数选项的 route命令在图 5-15中输出结果中各个字段的含义是:
Destination:表示路由的目标 IP地址 。
Gateway:表示网关使用的主机名或者是 IP地址 。 上面输出的
,*” 表示没有网关 。
Genmask:表示路由的网络掩码 。 在把它与路由的目标地址进行比较之前,内核通过 Genmask和数据包的 IP地址按位进行,与,操作来设置路由 。
Flags是表示路由的标志 。 可用的标志及其意义是,U表示路由在启动,H表示 target是一台主机,G表示使用网关,R表示对动态路由进行复位设置; D表示动态安装路由,M表示修改路由,! 表示拒绝路由 。
Metric表示路由的单位开销量 。
Ref表示依赖本路由现状的其它路由数目 。
Use表示路由表条目被使用的数目 。
Iface表示路由所发送的包的目的网络 。
在路由表里至少要有一个为回馈接口准备的设置项 。 如果没有,用户就必烦使用 route命令为回馈接口安排一个路由 。
一个接口必须在它的 IP地址被添加到路由表之后才能提供给人们使用 。 添加地址的操作可以用 route命令和它的 add
参数完成,其命令格式如下所示:
route add –net 网络地址 netmask 子网掩码 dev 网卡设备名下面的例子把回馈接口的 IP地址添加到路由表里去:
route add 127.0.0.1
通过 route命令还可进行添加或删除系统当前路由表中的默认网关记录,添加和删除的命令格式如下:
route add default gw 网关 IP地址 dev 网卡设备名
route del default gw 网关 IP地址在图 5-16中显示了增加和删除当前路由表中默认网关记录的操作及响应过程 。
图 5-16 增加和删除当前路由表中默认网关记录
5.2.5 ping
ping命令是最常用的网络测试命令,该命令通过向被测试的目的主机地址发送 ICMP报文并收取回应报文,来测试当前主机到目的主机的网络连接状态 。 在 Linux系统中,
ping命令默认会不间断地发送 ICMP报文直到用户使用
,Ctr+C‖键来终止该命令,使用,-c‖参数可指定发送
ICMP报文的数目 。 该命令的格式如下,
ping [-c 发出报文数 ] 目的主机地址在图 5-17中,是运行 ping命令的使用及响应过程。从图中可看出,运行 ping命令后会在几秒钟内回显域名所对应的 IP
地址,这是用户察看一域名对应的 IP地址的一种方法。时间分别为最小、平均值、最大值,通过他们可以了解到网络不同时间传输的差异。
需要说明的就是关于网络安全问题的所谓 ping flood,洪水发送 。 Ping命令消耗网络带宽并占用系统资源,当向一个网络发 ping flood包,必然会导致服务器服务拒绝,采取一定措施的除外 。 现在很多的服务器都安装防火墙,可以防止这样的 ICMP攻击 。
5.2.6 traceroute
traceroute命令就是跟踪本地和远程两台主机间的 UDP路由数据报。其语法很简单,使用命令格式
traceroute IP地址
traceroute是通过设置待发送分组的存活时间 TTL来工作的 。
TTL减为零时,最后的网关就会给源主机发送一个 ICMP出错消息 。 所以它的原理就是先发送一个 TTL为 1的数据报,
第一个路由器将 TTL值减 1,发现 TTL变为零,将该数据报丢弃,并发送给源主机一个 ICMP报文 。 这样,源主机就得到了从源主机到目的主机的第一个路由器的地址 。 同样源主机再发送 TTL为 2的数据报 ……,这样源主机每发送三个 UDP报文,TTL值增 1。 最后,对目的主机可选择一个不可能的值 ( 33535) 作为 UDP端口值,这样在数据报到达时,目标主机会发送一个,ICMP端口不可达,的消息,
表示到达目标主机,并终止 traceroute跟踪 。
5.2.5 netstat
netstat命令用来显示各种各样的与网络相关的状态信息,它的主要用途有:察看网络的连接状态 ( 仅对
TCP有效,对 UDP无效 ),检查接口的配置信息,检查路由表,取得统计信息 。 不带参数时表示显示获得的 TCP,UDP端口状态,因为 UDP为无连接的协议,
所 以 状 态 对 其 无 意 义 。 常 见 的 状 态 有,
ESTABLISHED,LISTENING,TIME-WAIT,分别表示处于连接状态,等待连接,关闭连接 。 netstat程序有几个参数选项,用户可以用来查看网络上不同方面的信息,其参数说明如下:
-a:选项为显示所有配置的接口
-i:选项为显示接口统计信息
-n:选项为以数字形式显示 IP地址
-r:选项显示内核路由表
-s,选项表示计数器的值 。
5.2.6 nslookup
nslookup是一条查询 DNS数据库的用户级命令 。 所谓的域名系统 ( DNS,Domain Name System) 就是一个分布式的数据库,用于处理了整个 Internet上的域名与 IP地址的映射 。 数据信息在网络中,需要底层的协议根据其 IP地址来传送 。
nslookup可以向服务器直接查询信息,一般情况下均使用交互模式。此时会出现提示符,>,,nslookup提供了许多可用命令。下面列举其中一些常用的详细说明。
help命令:显示帮助信息,及一些简单的命令的作用。
exit 命令:退出 nslookup命令。
lserver命令:查找指定的域名服务器并将其设置为 默认的域名服务器。
server命令:和 lserver相似,解析另一台域名服务 器并将其设置为默认的服务器,不同在于本命令使用当前的默认服务器来解析。
set命令:修改工作参数,它也是 nslookup中最常用 的命令,其可使用的工作参数如表 5-1所示。
表 5-1 nslookup程序的 set命令中的工作参数工作参数 说 明
set class 设置查询的类型,一般情况下为 Internet。
set de bug 设置调试模式 /set nodebug:设置为非调试模式
set d2 设置详细调试模式。 /set nod2:设置为非详细调试模式。
set [no]defname 设置为 defname,会在所有没有加,o―的名字后 自动加上默认的域名。它是默认的方式。
set domain 设置默认的域名。
set port DNS的默认端口为 53,用本命令可以设置其他端口,一般用于调试。
set q(querytype) 改变查询的信息的类型。默认的类型为 A纪录
set recurse 设置查询类型为递归;
set retry 设置重试的次数。默认的值为 5。
set root 设置默认的根服务器。
set timeout 设置等待应答的限制时间(单位为秒),超出即为超时,如果还可以重试,就会将长超时值加倍,重新查询。默认的超时值为 5秒。
图 5-20 nslookup的使用方法在图 5-20中显示了使用 nslookup命令的使用方法 。 在该图中,首先输入待查询的域名,www.whpu.edu.cn‖,然后输入待查询的 IP地址,211.85.192.1‖,最后使用 exit命令退出
nslookup命令环境 。
图 5-21 nslookup命令可直接带域名或 IP地址
5.2.9 tcpdump
tcpdump命令用于监视 TCP/IP连接并直接读取数据链路层的数据包的头部信息 。 用户可以指定哪些数据包被监视,哪些控制要显示格式 。 例如要监视所有 Ethernet上来往的通信,
执行下述命令:
# tcpdump -i eth0
实际上,tcpdump命令的格式为:
tcpdump [ -选项 ] [ -c 数量 ] [ -F 文件名 ][ -i 网络接口 ] [ -r 文件名 ] [ -s
snaplen ]
[ -T 类型 ] [ -w 文件名 ] [表达式 ]
tcpdump命令中的选项参数说明如表 5-2所示。 Tcpdump命令中的表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件,如果一个报文满足表达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包将会被截获。
表 5-2 tcpdump命令的选项介绍参数选项 说 明
-a 将网络地址和广播地址转变成名字;
-d 将匹配信息包的代码以人们能够理解的汇编格式给出;
-dd 将匹配信息包的代码以 c语言程序段的格式给出;
-ddd 将匹配信息包的代码以十进制的形式给出;
-e 在输出行打印出数据链路层的头部信息;
-f 将外部的 Internet地址以数字的形式打印出来;
-l 使标准输出变为缓冲行形式;
-n 不把网络地址转换成名字;
-t 在输出的每一行不打印时间戳;
-v 输出一个稍微详细的信息,例如在 ip包中可以包括 ttl和服务类型的信息;
-vv 输出详细的报文信息;
-c 在收到指定的包的数目后,tcpdump就会停止;
-F 从指定的文件中读取表达式,忽略其它的表达式;
-I 指定监听的网络接口;
-r 从指定的文件中读取包 (这些包一般通过 -w选项产生 );
- w 直接将包写入文件中,并不分析和打印出来;
-T 将监听到的包直接解释为指定的类型的报文,常见的类型下面我们介绍几种典型的 tcpdump命令的输出信息
( 1) 数据链路层头信息
# tcpdump --e host ice
ice 是一台装有 linux的主机,其 MAC地址是 0,90,27:
58,AF,1A,H219是一台装有 SOLARIC的 SUN工作站,
它的 MAC地址是 8,0,20,79,5B,56;上一条命令的输出结果如下所示:
21:50:12.857509 eth0 < 8:0:20:79:5b:56 0:90:27:58:af:1a
ip 60,h219.33357 > ice.
telnet 0:0(0) ack 22535 win 8760 (DF)
( 2) ARP包的 TCPDUMP输出信息使用命令
#tcpdump arp
得到的输出结果是:
22:32:52.802509 eth0 > arp who-has route tell ice
(0:90:27:58:af:1a)
22:32:52.802902 eth0 < arp reply route is-at
0:90:27:12:10:66 (0:90:27:58:af:1a)
( 3) TCP包的输出信息用 TCPDUMP捕获的 TCP包的一般输出信息是:
src > dst,flags data-seqno ack window urgent options
( 5) UDP包的输出信息用 TCPDUMP捕获的 UDP包的一般输出信息是:
route.port1 > ice.port2,udp lenth
5.3 网络配置文件及程序
5.3.1 网络配置文件在 Linux系统中,TCP/IP网络是通过若干个文本文件进行配置的,可以通过编辑这些文件来完成联网工作 。 系统中重要的有关网络配置文件有:
1,网络设置 /etc/sysconfig/network
该文件用来指定服务器上的网络配置信息,包含了控制和网络有关的文件和守护程序的行为的参数 。 下面是一个例子文件:
NETWORKING=yes
HOSTNAME=machine1
GATEWAY=210.35.6.2
FORWARD_IPV4=yes
GATEWAYDEV= gw-dev gw-dw
,
其中,NETWORK=yes/no 表示网络是否被配置;
HOSTNAME=hostname hostname 表示服务器的主机名;
GATEWAY=gw-ip gw-ip 表示网络网关的 IP
地址;
FORWARD_IPV4=yes/no 是否开启 IP转发功能;
GAREWAYDEV=gw-dev gw-dw 表示网关的设备名
2,主机名 /etc/HOSTNAME
该文件包含了系统的主机名称,包括完全的域名,如:
192.168.0.1 lb.whpu.edu.cn
这个文件是在启动时从文件 /etc/sysconfig/network中的 HOSTNAME行中得到的,用于在启动时设置系统的主机名 。
3,IP地址和主机名的映射 /etc/hosts
/etc/hosts文件中包含了 IP地址和主机名之间的映射,还包括主机名的别名,IP地址的设计使计算机容易识别,但对于人来说却很难记忆,为了解决这个问题,就创建了 /etc/hosts这个文件。 下面是一个例子文件:
127.0.0.1 machine1 localhost.localdomain localhost
192.168.1.100 machine7
192.168.1.101 otherpc otheralias
在这个例子中,本机名是 machine1,otherpc还有别名
otheralias,它可以指向 otheralias。。 一旦配置完机器的网络配置文件,应该重新启动网络以使修改生效,
使用下面的命令来重新启动网络:
/etc/rc.d/init.d/network restart
4,端口号和服务器名之间的映射 /etc/services
/etc/services中包含了服务名和端口号之间的映射,不少系统程序要使用这个文件
5,配置名字解析器 /etc/host.conf
有两个文件声明系统到哪里寻找名字信息来配置 UNIX名字解析器的库 。 文件 /etc/host.conf由版本 5的 libc库所使用,而 /etc/nsswitch.conf由版本 6使用 (glibc )。 问题在于一些程序使用其中一个,而一些使用另一个,
所以将两个文件都配置正确是必要的 。
/etc/host.conf文件指定如何解析主机名,Linux通过解析器库来获得主机名对应的 IP地址 。
配置名字解析器 /etc/nsswitch.conf
//etc/nsswitch.conf文件是由 Sun公司开发并用于管理系统中多个配置文件查找的顺序,它比 /etc/host.conf
文件提供了更多的功能。 /etc/nsswitch.conf中的每一行或者是注释(以 #号开头)或者是一个关键字后跟冒号和一系列要试用的有顺序的方法。每一个关键字是在 /etc/目录可以被 /etc/nsswitch.conf控制的 /etc文件的名字。下面是可以被包含的关键字:
aliases 邮件别名; passwd 系统用户; group 用户组;
shadow 隐蔽口令; hosts 主机名和 I P地址; networks 网络名和号; protocols 网络协议; services 端口号和服务名称; ethers 以太网号; rpc 远程进程调用的名称和号;
netgroup 网内组
6,配置 DNS客户 /etc/resolv.conf
文件 /etc/resolv.conf配置 DNS客户,它包含了主机的域名搜索顺序和 DNS服务器的地址,每一行应包含一个关键字和一个或多个的由空格隔开的参数 。 下面是一个例子文件:
search mydom.edu.cn
nameserver 210.35.0.15
nameserver 210.35.0.2
7,主机地址,子网掩码和网关 /etc/init.d/network
不像很多其他的 UNIX和 Linux操作系统,Red Hat当前并不能自动地通过 /etc/hostname和 /etc/hosts文件来配置网络 。 为了改变主机缺省的 IP 地址,必 须 直 接 编 辑
/etc/init.d/network脚本使其反映正确的网络配置 。 这个文件包括了声明 IP地址,掩码,网络,广播地址和缺省路由器的变量 。 下面是这个文件中相应的部分:
IPADDR=192.168.1.100
NETMASK=255.255.255.0
BROADCAST=192.168.1.255
GATEWAY=192.168.1.1
5.3.2 使用 netconfig程序配置网络
1,启动 netconfig程序当用户登录到 Linux系统后,在终端上使用
,netconfig”命令启动该程序,其在终端上的响 应结果如图 5-22所示 。
图 5-22 确认网络配置图 5-23 进行网络配置单击图中对话框上的,yes‖按钮,确认要进行网络配置,即于如图 5-23所示的配置网络属性界面 。
2,配置网络属性进入,Configuer TCP/IP‖窗口后,设置相应的网络属性,
如 IP地址,子网掩码,默认网关和 DNS服务器地址,确认配置完成后单击,OK‖按钮保存设置 。
3,重新启动网络服务使用 netconfig程序进行网络配置后只是修改了相应的网络配置文件,并没有使用所作的配置在当前系统中生效,需要使用,service network restart‖命令重新启动网络服务,
才可以使新的配置在当前系统中生效 。 图 5-24显示在终端上重新启动网络服务及响应过程 。
图
5-
24
显示
5.3.3 测试网络测试网络的第一步是,确认局域网中的计算机在启动之后能否与其他主机通讯 。 可以先在每台计算机上输入
reboot 命令 。 在 Linux 重新启动过程中,要仔细观看屏幕上滚动的测试信息 。 注意寻找下列信息:
Setting hostname,<hostname you assigned to
this computer>
Bringing up Interface lo,<OK> or <FAILED>
Bringing up interface eth0 <OK> or <FAILED>
也可以使用 ping 命令来判断计算机能否与其他计算机通讯 。
在当前主机上打开一个终端窗口,并输入命令 ping <IP
address> 或 ping <hostname>。 其中,<IP address> 或
<hostname> 是分配给这个计算机的 IP 地址和主机名 。 需要注意的是,为了让 ping 命令正确工作,就必须输入 IP
地址或者主机名作为参数 。
如果已经正确配置了 DNS nameserver 规范,那么 ping
<hostname> 命令就会将 hostname 这个主机名映射成相应的 IP 地址 。 否则,只好在 ping 命令后面给出确切 IP 地址来测试,也就意味着现在要拥有该局域网上所有计算机的
IP 地址列表 。 ping 命令通过局域网将消息发送到目的 IP 地址所表示的计算机 。 如果这台计算机能够与其他主机通讯,
就可以看到一些消息或包 ( 包括信息的字节数 ) 。 这些包应该象下面这样:
。
65 bytes from 192.168.1.x,icmp_seq=0 ttl=255
time=0.8ms
65 bytes from 192.168.1.x,icmp_seq=0 ttl=255
time=0.8ms
65 bytes from 192.168.1.x,icmp_seq=0 ttl=255
time=0.8ms
如果不能够 ping 到局域网中的另外一台主机,可以按照下面的方法寻找问题的根源。首先,用 halt 命令关掉局域网上所有的计算机。在所有计算机的命令行上输入 halt。关掉所有计算机的目的在于,可以在再启动这些计算机的时候观察到启动程序的反馈信息,
检查所有计算机之间的网线,确信所有的 RJ55 接口都被正确连接 。 在确保所有网线安全正确连接之后,逐个启动局域网上的计算机,并观察启动过程中的下列响应信息:
Setting hostname,hostname.networkname [OK]
下面给出一个实例,在局域网中有一台 Linux主机,其通过网关连接到互联中,现在该 Linux主机不能通过浏览器访问到互联网中的某个站点,通常查找这种故障的步骤如下:
( 1) 检测是否该站点是否关闭,即可通过是否能打开其他知名站点来确认 。 如是否能访问新浪,Yahoo,搜狐等 。
( 2) 查看本机 IP地址及相关网络参数设置是否正确 。
( 3) 检测本机与网关之间的通讯是否正常 。
( 5) 检测与互联网的连接 。 如使用 Ping命令进行测试 。
( 5) 测试域名解析是否正常 。
( 6) 测试与特定站点的连接是否正常 。
Internet有一个大致的了解,以帮助读者对本书后续章节的学习。通过对本章的学习,
读者应该掌握以下主要内容:
什么是 Internet
Internet的由来和发展历程
Internet提供的主要服务有哪些
Internet在企业内部网的应用
我国在 Internet网络上的发展状况
5.1 TCP/IP协议
5.1.1 TCP/IP协议概述现在,随着 Internet 的迅速发展使得计算机网络的应用已经开始遍及到我们现实生活的方方面面,而在 Internet网络上所使用的协议正是 TCP/IP( Transmission Control
Protocol/Internet Protocol) 协议,即传输控制协议 /网际协议,在 20世纪 60年代后期开发出来了用于,异构,网络环境中的 TCP/IP协议 。 也就是说,TCP/IP协议可以在各种硬件和操作系统上实现,并且 TCP/IP协议已成为建立计算机局域网,广域网的首选协议,并将随着网络技术的进步和信息高速公路的发展而不断地完善 。
5.1.2 Internet 网际协议 ( IP)
在 TCP/IP体系中,网际协议是最主要的协议之一 。
1,IP地址在 TCP/IP网络中,每个主机都有唯一的地址,它是通过 IP
协议来实现的 。 IP协议要求在每次与 TCP/IP网络建立连接时,每台主机都必须为这个连接分配一个唯一的 32位地址,
因为在这个 32位 IP地址中,不但可以用来识别某一台主机,
而且还隐含着网际间的路径信息 。 需要强调指出的,这里的主机是指网络上的一个节点,不能简单地理解为一台计算机,实际上 IP地址是分配给计算机的网络适配器 ( 即网卡 ) 的,一台计算机可以有多个网络适配器,就可以有多个 IP地址,一个网络适配器就是一个节点 。
IP地址为 32位地址,一般以 5个字节表示 。 每个字节的数字又用十进制表示,即每个字节的数的范围是 0~255,且每个数字之间用点隔开,例如,192.168.101.5,这种记录方法称为,点 -分,十进制记号法 。 IP地址的结构如下所示:
网络类型 网络 ID 主机 ID
IP地址的 32位被分成了 3个字段:网络类型字段、网络 ID字段和主机 ID字段。网络类型字段用于标识网络的类型,到目前为止网络划分为 A~E五类;网络 ID则标识该主机所在的网络,由网络类型字段和网络 ID
字段构成网络标识;主机 ID是该主机在网络中的标识。 IP地址的基本分配原则是要为同一网络内的所有主机分配相同的网络标识号,同一网络内的不同主机必须分配不同的主机 ID号,以区分主机,不同网络内的每台主机必须具有不同的网络标识号,但是可以具有相同的主机标识号。按照 IP地址的结构和其分配原则,可以在 Internet上很方便的寻址:先按 IP地址中的网络标识号找到相应的网络,再在这个网络上利用主机 ID找到相应的主机。由此可看出 IP
地址并不只是一个计算机的代号,而是指出了某个网络上的某个计算机。
组建一个网络时,为了避免该网络所分配的 IP地址与其他网络上的 IP地址发生冲突,必须为该网络向 InterNIC
( Internet网络信息中心 ) 组织申请一个网络标识号,这也就是整个网络使用一个网络标识号,然后再给该网络上的每个主机设置一个唯一的主机号码,这样网络上的每个主机都拥有一个唯一的 IP地址 。 另外,国内用户可以通过中国互联网络信息中心 ( CNNIC) 来申请 IP地址和域名 。
当然,如果网络不想与外界通信,就不必申请网络标识号,
而自行选择一个网络标识号即可,只是网络内的主机的 IP
地址不可相同 。
2,IP地址的分类为了充分利用 IP地址空间,Internet委员会定义了五种 IP地址类型以适合不同容量的网络,即 A类至 E类,如图 5-1所示 。 其中 A,B,C三类由 InterNIC( Internet网络信息信心 )
在全球范围内统一分配,D,E类为特殊地址 。
0 网络地址 ID( 7BIT) 主机地址 ID(25BIT)
0 1 7 8 31
A类 IP地址
10 网络地址 ID( 15BIT) 主机地址 ID(16BIT)
0 1 2 15 16 31
B类 IP地址
110 网络 IP地址( 21BIT) 主机地址 ID( 16BIT)
012 3 23 24 31
C类 IP地址
1110 广播地址 ID( 28BIT)
0123 4 31
D类 IP地址
11110 保留用于将来和试验使用
01234 5 31
E类地址
( 1) A类地址 。
从图 5-1( a) 中可以看出,在 A类地址中,用第一个字节来表示网络类型和网络标识号,后面三个字节用来表示主机号码,其中第一个字节的最高位设为 0,用来与其他 IP地址类型区分 。 第一个字节剩余的 7位用来表示网络地址,最多可提供 27-2=126个网络标识号;这种 IP地址的后 3个字节用来表示主机,每个网络最多可提供大约 1678万 ( 225-2)
个主机地址 。 这类地址网络支持的主机数量非常大,只有大型网络才需要 A类地址,由于 Internet发展的历史原因,
A类地址早已被分配完毕 。
( 2) B类地址 。
从图 5-1( b) 中可以看出,在 B类地址中,用前两个字节来表示网络类型和网络标识号,后面两个字节标识主机号码,其中第一个字节的最高两位设为 10,用来与其他 IP地址区分开,第一个字节剩余的 6位和第二个字节 ( 共 15位 )
用来表示网络地址,最多可提供 215-2=16,385个网络标识号 。 这种 IP地址的后 2个字节用来表示主机号码,每个网络最多可提供大约 65,535( 216-2) 个主机地址 。 这类地址网络支持的主机数量较大,适用于中型网络,通常将此类地址分配给规模较大的单位 。
( 3) C类地址 。
从图 5-1( c) 中可以看出,在 C类地址中,用前 3个字节来表示网络类型和网络标识号,最后一个字节用来表示主机号码,其中第一个字节的最高位设为 110用来与其他 IP地址区分开,第一个字节剩余的 5位和后面两个字节 ( 共 21
位 ) 用来表示网络地址,最多可提供约 200万 ( 221-2) 个网络标识号 。 最后 1个字节用来表示主机号码,每个网络最多可提供 254( 28-2) 个主机地址 。 这类地址网络支持的主机数量较少,适用于小型网络,通常将此类地址分配给规模较小的单位,如公司,院校等单位 。
D类地址是多播地址,主要是留给 Internet体系结构委员会
IAB( Internet Architecture Board) 使用 。 E类地址保留在今后使用 。 目前大量使用的 IP地址仅有 A,B和 C类三种 IP
地址 。
例如:一个 IP地址为 130.12.5.35,其用二进制表示为
10000010 00001100 00000100 00100010,把其与图 5-1相比较可以看出,此 IP地址属于 B类网络,其网络 ID号为 0000010
00001100B,即 525,主机号为 00000100 00100010,即为 1058。
( 5) 特殊的 IP地址 。
① 如果网络 ID为 127,主机地址任意,这种地址是用来做循环测试用的,不可用作其他用途 。 例如,127.0.0.1
是用来将消息传给自己的 。
② 在 IP地址中,如果某一类网络的主机地址为全 1,则该 IP地址表示是一个网络或子网的广播地址 。 例如,
192.168.101.255,分析可知它是 C类网络地址,其主机地址为最后一个字节,即 255,二进制为 11111111B,表示将信息发送给该网络上的每个主机 。
③ 在 IP地址中,如果某一类网络的主机地址为全 0,则该 IP 地址表示为网络地址或子网地址 。 例如,
192.168.101.0,分析可知它是 C类网络地址,其主机地址为最后一个字节即 0,二进制为 00000000B,表示一个网络地址 。
说明,正是由于地址不允许全 0( 表示网络或子网地址 ) 或全 1( 表示广播地址 ),所以其网络数目和主机数目都要减 2。
例如,C类网络只能支持 28-2=254个主机地址 。
另外,如果要使网络直接连入 Internet,应使用由 InterNIC分配的合法 IP地址 。 如果通过代理服务器连入 Internet,也不应随便选择 IP地址,应使用由 IANA( 因特网地址分配管理局 )
保留的私有 IP地址,以避免与 Internet上合法的 IP地址相冲突 。
这些私有地址的范围是:
l 10.0.0.1 ~ 10.255.255.255 ( A类 ) ;
l 172.13.0.1 ~ 172.32.255.255 ( B类 ) ;
l 192.168.0.1 ~ 192.168.255.255 ( C类 ) 。
综合来看,IP地址具有以下一些重要特点:
① IP地址是一种非等级的地址结构 。 这就是说,和电话号的结构不一样,IP地址不能反映有关主机位置的地理信息 。
② 当一个主机同时连接到两个网络上时 ( 作路由器用的主机即为这种情况 ),该主机就必须同时具有两个相应的
IP地址,其网络号是不同的 。 这种主机称为多地址主机 。
③ 按照 Internet的观点,用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号码 。
④ 在 IP地址中,所有分配到网络号的网络都是平等的 。
3,子网及子网掩码
( 1) 子网 。
子网是指在一个 IP地址上生成的逻辑网络,它使用源于单个 IP地址的 IP寻址方案,把一个网络分成多个子网,要求每个子网使用不同的网络 ID,通过把主机号(主机 ID)分成两个部分,为每个子网生成唯一的网络 ID。一部分用于标识作为唯一网络的子网,另一部分用于标识子网中的主机,这样原来的 IP地址结构变成如下三层结构:
网络地址部分 子网地址部分 主机地址部分
( 2) 子网掩码 。
子网掩码是一个 32位地址,它用于屏蔽 IP地址的一部分以区别网络 ID和主机 ID;用来将网络分割为多个子网;判断目的主机的 IP地址是在本局域网或是在远程网 。 在 TCP/IP
网络上的每一个主机都要求有子网掩码 。 这样当 TCP/IP网络上的主机相互通信时,就可用子网掩码来判断这些主机是否在相同的网络段内 。
如表 5-2所示为各类 IP地址所默认的子网掩码 。 其中值为 1
的位用来定出网络的 ID号,值为 0的位用来定出主机 ID。
例如,如果某台主机的 IP地址为 192.168.101.5,通过分析可 以 看 出 它 属 于 C 类 网 络,所 以 其 子 网 掩 码 为
255.255.255.0,则将这两个数据作逻辑与 ( AND) 运算后结果为 192.168.101.0,所得出的值中非 0位的字节即为该网络的 ID。 默认子网掩码用于不分子网的 TCP/IP网络 。
类 子网掩码 子网掩码的二进制表示
A 255.0.0.0 11111111.00000000.0
0000000.00000000
B 255.255.0.0 11111111.11111111.00
000000.00000000
C 255.255.255.0 11111111.11111111.111
11111.00000000
具体的运算步骤如下:
例如,192.168.101.5的二进制表示为 11000000 10101000
01100101 00000101B;子网掩码为 255.255.255.0,其二进制值为 11111111 11111111 11111111 00000000,则当
192.168.101.5和 255.255.255.0进行逻辑与运算
11000000 10101000 01100101 00000000
11111111 11111111 11111111 11111111
11000000 10101000 01100101 0000000
后,所得出结果为 11000000 10101000 01100101 00000000,
其中非 0的三个字节,即 192.168.101为该网络 ID,剩余的字节 ( 即 5 ) 为 主机 ID 。 若 该网络 的另 一台的 IP地 址为
192.168.101.250,子网掩码也为 255.255.255.0,则同样会得到网络 ID为 192.168.101,因此这两台主机在同一网段内 。
子网掩码的另一个用途就是可将网络分割为多个以 IP路由连接的子网 。 如果某单位仅申请了一个网络 ID号,但其网络规模较大,需要按照部门划分出多个子网段,此时可以借助子网掩码来实现需求 。 从 IP地址的三层结构可以看出,用于子网掩码的位数决定可能的子网数目和每个子网内的主机数目 。
在定义子网掩码之前,必须弄清楚网络中使用的子网数目和主机数目,这有助于今后当网络主机数目增加后,重新分配
IP地址的时间,子网掩码中如果设置的位数使得子网越多,
则对应的其网段内的主机就越少 。
5,IP路由路由是数据从一个节点传输到另一个节点的过程 。 例如,要出发到某地,一般先确定到达目的地的路线 。 在 TCP/IP网络中,同一网络区段中的计算机可以直接通信,不同网络区段中的计算机要相互通信,则必须借助于 IP路由 。
在网络中要实现 IP路由必须使用路由器,而路由器可以是专门的硬件设备,如 Cisco公司的路由器等;若没有专用的路由设备,也可以将某台计算机设置为路由器 。 不论用何种方式实现,路由器都是靠路由表来确定数据报的流向的,IP路由表实际上是相互邻接的网络 IP地址的列表,当一个节点接收到一个数据报时,便查询路由表,判断目的地址是否在路由表中,如果是,则直接送给该网络,否则转发给其他网络,直到最后到达目的地 。
在 TCP/IP网络中,IP路由器又叫 IP网关 。 每一个节点都有自己的网关 。 IP报头指定的目的地址不在同一网络区段中,
就会将数据报传送给该节点的网关,如果网关知道数据报的去向,就将其转发到目的地 。 每一网关都有一组定义好的路由表,指明网关到特定目的地的路由 。 网关不可能知道每一个 IP地址的位置,因此网关也有自己的网关,通过不断转发,寻找路径,直到数据报到达目的地为止 。
如图 5-2所示,通过设置为路由器的计算机 X来实现了两个网段 202.204.58与 202.204.60( 它们的子网掩码为
255.255.255.0) 的互联 。 这两个网段的计算机可以互相发送与接受信息 。
一般的,作为路由器的计算机中都安装有两块网卡,这两块网卡的 IP分别是要路由的两个网段中的一个 IP地址,
这样该计算机就好比一座桥梁一样用来连接两个不同的网段,完成路由的功能 。
5.1.3 下一代的网际协议 IPv6
现在看来,当初 IP地址的设计确实有不够合理的地方。
1995年以后陆续公布了一系列有关 IPv6的协议、编址方法、
路由选择以及安全等问题的 RFC文档。 IPv6主要在以下几个方面进行扩充和改进:
( 1) IPv6把原来 IPv4地址增大到了 128bit,其地址空间大于 3.5× 1038,是原来 IPv4地址空间的 296倍。
( 2)这种下一代的 IP协议并不是完全抛弃了原来的 IPv4,且允许与 IPv4在若干年内共存。它使用一系列固定格式的扩展首部取代了 IPv4中可变长度的选项字段。
( 3) IPv6对 IP数据报协议单元的头部与原来的
IPv4相比进行了相应的简化,仅包含 7个字段( IPv4有 13
个),这样,数据报文经过中间的各个路由器时,各个路由器对其处理的速度加快,提高了网络吞吐率。
5) IPv6另一个主要的改善方面是在它的安全方面 。
在许多报纸和文章都看见过某某军事机构网络被黑客入侵,
某某银行的钱款被人划进某人自己的账户等等,所以 IPv6
从一开始就致力于提高网络的安全性,身份验证和隐私权是新 IP的关键特性 。
一般来讲,一个 IPv6数据报的目的地址可以是以下三种基本类型地址之一:单播地址,多播地址和任播地址 。 单播地址是传统的点对点通信 。 多播地址是一个站点在发送数据时,属于同一个工作组的每一个计算机都能接收 。 在
IPv4中采用的广播一词 IPv6没有采用,而是将广播地址看作多播地址的一个特例 。 任意播送的目的地址是一个工作组地址,但它并不是将数据报发送给该工作组的每一成员,
而是将数据报在交付时只交付给其中的一个,通常是距离最近的一个 。
IPv6将实现 IPv6的主机和路由器均称为结点,并将 IPv6
地址分配给结点上面的接口 。 一个接口可以有多个单播地址 。 一个结点接口的单播地址可用来唯一地标识该结点 。
如同 IPv4一样,IPv6把一个地址与特定的网络连接(而不是与特定的计算机)相关联,因此一个 IPv6路由器由于和两个或多个网络相连接因而具有两个或多个地址。为了地址分配和修改的方便,IPv6允许给一个给定的网络指派多个前缀,也允许对一个主机的给定接口同时指派多个地址。 IPv6用“冒号十六进制”记法,它把每个 16比特的量用十六进制值表示,各量之间用冒号分隔。例如,
如果前面所给的点分十进制数记法的值改为冒号十六进制记法,就变成了
FFFE:000C:0000:0000:0C00:0000:0000:000C
另外,IPv6还允许对这种冒号十六进制的地址记法进行压缩:
( 1) 一组中的前导零可以忽略不写 。 例如上面这个 IPv6地址中的第二组 000C可以直接写成 C,则该地址可压缩为:
FFFE:C:0:0:C00:0:0:C。
( 2)冒号十六进制记法还可以允许零压缩,即一串连续的零可以为一对冒号所取代,为了保证零压缩有一个不含混的解释,建议中还规定,在任一地址中,只能使用一次 零压缩。该技术对已建议的分配策略特别有用,因为会有许多地址包含连续的零串。例如:上面这个 IPv6地址可压缩为
FFFE:C::C00:0:0:C。
其次,冒号十六进制记法结合有点分十进制记法的后缀,
这种结合在 IPv4向 IPv6的转换阶段特别有用 。 例如,下面的串是一个合法的冒号十六进制记法:
0:0:0:0:0:0:192.168.101.5
请注意,在这种记法中,虽然为冒号所分隔的每个值是一个 16比特的量,但每个点分十进制部分的值则指明一个字节的值 。 再使用零压缩即可得出:
::192.168.101.5
5.1.4 Internet的域名管理
1,概述
2,DNS域名结构
DNS数据库的结构如同一棵倒过来的树,它的根位于最顶部,紧接着在根的下面是一些主域,每个主域又进一步划分为不同的子域 。 由于 InterNIC负责管理世界范围的 IP地址分配,顺理成章,它也就管理着整个域结构,整个
Internet的域名服务都是由 DNS来实现的,与文件系统的结构类似,每个域都可以用相对的或绝对的名称来标识,
相对于父域来表示一个域可以用相对域名,绝对域名指完整的域名,主机名指为每台主机指定的主机名称,带有域名的主机名叫全称域名 。
如图 5-15所示,这是整个 Internet的域结构图 。 最高层次是顶级域又叫主域,它的下面是子域,子域下面可以有主机,
也可以再分子域,直到最后是主机 。 要在整个 Internet来识别特定的主机,必须用全称域名,例如,
www.microsoft.com。
顶级域名常见的有两类:
( 1) 国家级顶级域名 。 例如,CN表示中国; UK表示英国;
AU表示澳大利亚等等 。
( 2) 通用的顶级域名 。 例如:
l COM:商业机构;
l EDU:美国教育机构;
l NET:网络管理机构;
l ORG:社会团体;
l MIL:美国军队部门;
由于 Internet上用户的急剧增加,现在又增加了七个通用的顶级域名,即:
l FIRM:表示公司企业;
l SHOP:表示销售公司和企业;
l WEB:表示突出万维网络活动的单位;
l ARTS:表示突出文化,娱乐活动的单位;
l REC:表示突出消遣,娱乐活动的单位;
l INFO:表示提供信息服务的单位;
l NOW:表示个人 。
在国家顶级域名下注册的二级域名均由该国家自行确定 。 我们国家将二级域名划分为,类别域名,和,行政区域名,两大类 。 其中,类别域名 6个,分别是,
l AC:表示科研机构;
l COM:表示工,商,金融等企业;
l EDU:表示教育机构;
l GOV:表示政府部门;
l NET:表示互联网络,接入网络的信息中心和运行中心;
l ORG:表示各种非赢利性组织 。
行政区域名 35个,适用于我国的省,自治区,直辖市 。 例如:
bj为北京市; sh为上海市; hb为湖北省等等 。
5.1.5 Linux的网络配置在 Red Hat Linux 9中提供了一个图形界面的网络配置工具 。
使用该配置工具,可以配置各种网络连接 。 下面使用该工具来对一个 Linux系统进行网络配置,配置的主要参数如下:
网络 IP地址,211.85.203.22
子网掩码,255.255.255.0
默认网关,211.85.203.255
DNS服务器地址,211.85.192.8
(
1) 启动 redhat-config-network管理工具,方法有以下两种:
依次单击面板上的,主菜单 → 系统设置 → 网络,,
可打开如图 5-3对话框 。
在终端的提示符下输入,redhat-config-network‖命令,可打开如图 5-3对话框 。
从图 5-3中可看出,Linux系统在安装过程中已经自动识别出一个网络适配器 ( 或叫网卡 ),但此网卡由于没有进行配置,所以其目前的状态是不活跃状态,即还没有被激活 。
( 2) 在图 5-3中,双击需要激活的网卡记录 。 在本例中双击,eth0‖,打开图 5-4所示的对话框,在该对话框中进行常规网络配置 。
从图 5-4中可看出,在该对话框中可由两种方法对 IP地址进行设置:一种是通过,自动获取 IP地址使用,来获得 IP
地址,但这种方式的前提是必须在本机所在的局域网中拥有 DHCP服务器;第二种是手工配置 IP地址 。 在本例中采用第二种方法,手工配置 IP地址 。
( 3) 在图 5-4中,选中,静态设置 IP地址,单选按钮,并在该单选按钮下面的文本框中输入相应的网络参数值,如图 5-5所示 。
( 5) 当网络参数值输入完毕后,单击,确定,按钮,
返回到图 5-3。 在图 5-3所示的对话框中,选择 DNS选项卡,打开如图 5-6所示的对话框 。
( 5 ) 在图 5-6 中,输 入 本 机 的 主 机 名,
,lbliubing.com‖; DNS( IP地址 ),,211.85.192.8‖
后,单击,设备,选项卡,返回到图 5 -3中 。
图 5—6
( 6) 此时,在图 5-3的对话框中,单击工具条上的,激活,按钮,系统会弹出一个问题对话框,如图 5-7所示 。
5—7
( 7) 在图 5-7的对话框中,单击,是,按钮,此时会弹出一个修改信息正确的对话框,如图 5 -8所示 。
( 8) 单击图 5-8中的,确定,按钮,出现如图 5-9所示 。
此时从图中可看到,eth0的状态已处于激活状态,如果想让网卡起作用,最好重新启动 Linux系统 。
图 5-9 激活网卡
5.2 Linux网络配置的常用命令
5.2.1 hostname
每个系统都应该有一个名字,这个名字通常在系统安装时确定,可以使用 hostname命令来获得当前系统的名字 。
同样设置计算机的名字也可以使用 hostname命令,但这需要 root权限:
# hostname lb.whpu.edu.cn
# hostname
lb.whpu.edu.cn
这个配置必须写入启动文件,以便每一次系统启动都能正确完成设置 。 因此,就需要在 rc.conf中改动或添加相关设置 。
hostname=―lb.whpu.edu.cn‖
一些情况下,这种改动方式会产生一些无伤大雅的小问题
5.2.2 ifconfig
ifconfig命令用到的执行参数可以没有,也可有一个网络接口的名字,一个 IP地址以及其他参数选项 。 ifconfig命令会把一个 IP地址分配给一个网络接口,然后,用户的系统就会知道存在着这样一个网络接口,还会知道它对应着某个特定的 IP地址 。 此外,用户还可以定义 IP地址到底是一个主机的地址还是一个网络的地址 。 用户还可以使用此 IP地址对应的域名,当然该域名及其 IP地址要出现在 /etc/hosts
文件的清单里 。 ifconfig命令单独使用时显示当前系统中活动的网卡设置,其在终端上的响应如图 5-10所示 。
5-10
在图 5-10中,命令响应的以 eth0为首的第一行是本机的以太网卡配置参数,这里显示了网卡的设备名和硬件的
MAC地址 00:00:E8:7D:FB:51( MAC地址是由生产厂家指定的,每个网卡拥有的唯一地址,MAC地址是一个 58
位地址,图中是以 16进制表示的 ) 。
第二行显示本机的 IP地址信息,分别是本机的 IP地址,网络广播地址和子网掩码 。 必须确认这些信息都是正确无误的,否则 Linux服务器无法与其它网络设备建立连接 。
第三行显示的是设备的网络状态。 MTU(最大传输单元)
和 Metric(度量值)字段显示的是该接口当前的 MTU和度量值的值。
后面几行是用来显示接口通信的网络统计值。 RX和 TX分别表示接收和传送的数据包。如果网卡已经完成配置却还是无法与其它设备通信,那么从 RX和 TX的显示数据上可以简单地分析一下故障原因。
在图 5-10中,还有一个以 lo为首的部分 。 lo是 look-back网络接口,从 IP地址 127.0.0.1就可以看出,它代表,本机,。
无论系统是否接入网络,这个设备总是存在的,除非你在内核编译的时候禁止了网络支持,这是一个称为回送设备的特殊设备,它自动由 Linux配置以提供网络的自身连接 。
IP地址 127.0.0.1是一个特殊的回送地址 ( 即默认的本机地址 ),可以在系统上用 telnet对 IP地址 127.0.0.1进行测试 。
如果有 inetd进程在运行的话会从机器上获得登录提示符 。
Linux可以利用这个特征在进程与仿真网络之间进行通信 。
如果只是关心某个设备是否正常,可以在 ifconfig后面加上接口名字,如下面命令,( 其在终端上的响应如图 5-11所示 )
# ifconfig eth0
图 5-11 查看某个网络设备图 5-12 修改 IP地址如果要暂停某个网络接口的工作,使用 down参数将取消
eth0网络接口,命令如下:
ifconfig eth0 down
如果使用了带有参数的 ifconfig命令,那就可以手动设置网卡的配置参数了 。 有效的 ifconfig命令参数及其意义为:
Interface 网络设备名,如 eth0就表示本机的第一块网卡 。
up:标志接口处于,up‖状态,也就是说,IP层可以对其进行访问 。 这个选项用于命令行上给出一个地址之时 。
如果这个接口已被,down‖选项临时性取消的话 ( 与该选项对应的标记是 UP RUNNING),还可以用于重新启用一个接口 。
down:标志接口处于,down‖状态,也就是说,IP
层不能对其进行访问。这个选项有效地禁止了 IP通信流通这个接口。注意,它并没有自动删除利用该接口的所有路由信息。如果永久性地取消了一个接口,就应该删除这些路由条目,并在可能的情况下,提供备用路由。
netmask:分配子网掩码,供接口所用。要么给一个前面是 0x的 32位十六进制号码,要么采用只适用于两台主机所用的点分四段式号码。对 SLIP和 PLIP接口来说,这个选项是必须配置的。
address:设置指定接口设备的 IP地址 。
broadcast address 广播地址通常源于网络编号,通过设置主机部分的所有位得来 。 有的 I P采用的方案有所不同:这个选项可适用于某些奇怪的环境 ( 如果已经设置了广播地址,ifconfig就会显示出一个 BROADCAST标记 ) 。
hw class addr,设置指定接口设备的 MAC地址,关键字的后面必须跟硬件名或者与之等价的 ASCII码 。 目前支持的硬件类有 ether,
ax25,ARCnet和 netrom。
mtu bytes 该选项用于设置最大传输单元,也就是接口一次能处理的最大字节数 。 对以太网接口来说,MTU的默认设置是 1500 个字节;对 SLIP接口来说,则是 296个字节 。
arp 标这个选项专用于以太网或包广播之类的广播网络 。 它启用 ARP( 地址解析协议 ) 来保护网络上各台主机的物理地址 。 对广播网来说,默认设置是 " on"( 开 ) 。
5.2.3 ifup和 ifdown
ifcup命令用于启动指定的非活动网卡设备,该命令与
ifconfig up命令相似 。 Ifdown命令用于停止指定的活动网卡设备,该命令与 ifconfig down命令功能相似 。 这两个命令的格式如下:
ifup 网卡设备名
ifdown 网卡设备名这两个命令在终端上的使用及响应结果如图 5-13所示 。
图 5-13 ifup和 ifdown命令的使用
5.2.4 route
传输过程中的一个数据包会经过一个 ‘ 路由,到达目的地 。
在一个大型的网络中,数据包从一个计算机传输到另一个计算机,直到它们到达目标计算机为止,路由决定着这个过程从哪里开始,也决定着为了到达目的地,用户的系统最先需要向哪台计算机传输数据包 。 在小型网络中,路由可能是静态的 ——也就是说从一个系统到另外一个系统的路由是固定不变的,一个系统知道如何才能经过固定的路径到达另外一个 。 而在大型网络或者因特网中,路由的安排是动态的 。 用户的系统知道应该把数据包第一个发送给哪台计算机,那台计算机收到数据包后,再把它传递给下一台计算机,再由它决定如何继续下去,直到到达目的地为止 。 对动态路由来说,需要用户系统了解的东西是很少的 。 而静态路由却下一样,因为用户必须记录所有网络连接的通断情况,其路由安排可能会变得很复杂 。 用户的路由列在 /proc/net/route文件里保存的路由分配表里 。 如果想看到路由表,请输入不带任何参数选项的 route命令,其在终端上的响应结果如图 5-15所示 。
图 5-15 不带任何参数选项的 route命令在图 5-15中输出结果中各个字段的含义是:
Destination:表示路由的目标 IP地址 。
Gateway:表示网关使用的主机名或者是 IP地址 。 上面输出的
,*” 表示没有网关 。
Genmask:表示路由的网络掩码 。 在把它与路由的目标地址进行比较之前,内核通过 Genmask和数据包的 IP地址按位进行,与,操作来设置路由 。
Flags是表示路由的标志 。 可用的标志及其意义是,U表示路由在启动,H表示 target是一台主机,G表示使用网关,R表示对动态路由进行复位设置; D表示动态安装路由,M表示修改路由,! 表示拒绝路由 。
Metric表示路由的单位开销量 。
Ref表示依赖本路由现状的其它路由数目 。
Use表示路由表条目被使用的数目 。
Iface表示路由所发送的包的目的网络 。
在路由表里至少要有一个为回馈接口准备的设置项 。 如果没有,用户就必烦使用 route命令为回馈接口安排一个路由 。
一个接口必须在它的 IP地址被添加到路由表之后才能提供给人们使用 。 添加地址的操作可以用 route命令和它的 add
参数完成,其命令格式如下所示:
route add –net 网络地址 netmask 子网掩码 dev 网卡设备名下面的例子把回馈接口的 IP地址添加到路由表里去:
route add 127.0.0.1
通过 route命令还可进行添加或删除系统当前路由表中的默认网关记录,添加和删除的命令格式如下:
route add default gw 网关 IP地址 dev 网卡设备名
route del default gw 网关 IP地址在图 5-16中显示了增加和删除当前路由表中默认网关记录的操作及响应过程 。
图 5-16 增加和删除当前路由表中默认网关记录
5.2.5 ping
ping命令是最常用的网络测试命令,该命令通过向被测试的目的主机地址发送 ICMP报文并收取回应报文,来测试当前主机到目的主机的网络连接状态 。 在 Linux系统中,
ping命令默认会不间断地发送 ICMP报文直到用户使用
,Ctr+C‖键来终止该命令,使用,-c‖参数可指定发送
ICMP报文的数目 。 该命令的格式如下,
ping [-c 发出报文数 ] 目的主机地址在图 5-17中,是运行 ping命令的使用及响应过程。从图中可看出,运行 ping命令后会在几秒钟内回显域名所对应的 IP
地址,这是用户察看一域名对应的 IP地址的一种方法。时间分别为最小、平均值、最大值,通过他们可以了解到网络不同时间传输的差异。
需要说明的就是关于网络安全问题的所谓 ping flood,洪水发送 。 Ping命令消耗网络带宽并占用系统资源,当向一个网络发 ping flood包,必然会导致服务器服务拒绝,采取一定措施的除外 。 现在很多的服务器都安装防火墙,可以防止这样的 ICMP攻击 。
5.2.6 traceroute
traceroute命令就是跟踪本地和远程两台主机间的 UDP路由数据报。其语法很简单,使用命令格式
traceroute IP地址
traceroute是通过设置待发送分组的存活时间 TTL来工作的 。
TTL减为零时,最后的网关就会给源主机发送一个 ICMP出错消息 。 所以它的原理就是先发送一个 TTL为 1的数据报,
第一个路由器将 TTL值减 1,发现 TTL变为零,将该数据报丢弃,并发送给源主机一个 ICMP报文 。 这样,源主机就得到了从源主机到目的主机的第一个路由器的地址 。 同样源主机再发送 TTL为 2的数据报 ……,这样源主机每发送三个 UDP报文,TTL值增 1。 最后,对目的主机可选择一个不可能的值 ( 33535) 作为 UDP端口值,这样在数据报到达时,目标主机会发送一个,ICMP端口不可达,的消息,
表示到达目标主机,并终止 traceroute跟踪 。
5.2.5 netstat
netstat命令用来显示各种各样的与网络相关的状态信息,它的主要用途有:察看网络的连接状态 ( 仅对
TCP有效,对 UDP无效 ),检查接口的配置信息,检查路由表,取得统计信息 。 不带参数时表示显示获得的 TCP,UDP端口状态,因为 UDP为无连接的协议,
所 以 状 态 对 其 无 意 义 。 常 见 的 状 态 有,
ESTABLISHED,LISTENING,TIME-WAIT,分别表示处于连接状态,等待连接,关闭连接 。 netstat程序有几个参数选项,用户可以用来查看网络上不同方面的信息,其参数说明如下:
-a:选项为显示所有配置的接口
-i:选项为显示接口统计信息
-n:选项为以数字形式显示 IP地址
-r:选项显示内核路由表
-s,选项表示计数器的值 。
5.2.6 nslookup
nslookup是一条查询 DNS数据库的用户级命令 。 所谓的域名系统 ( DNS,Domain Name System) 就是一个分布式的数据库,用于处理了整个 Internet上的域名与 IP地址的映射 。 数据信息在网络中,需要底层的协议根据其 IP地址来传送 。
nslookup可以向服务器直接查询信息,一般情况下均使用交互模式。此时会出现提示符,>,,nslookup提供了许多可用命令。下面列举其中一些常用的详细说明。
help命令:显示帮助信息,及一些简单的命令的作用。
exit 命令:退出 nslookup命令。
lserver命令:查找指定的域名服务器并将其设置为 默认的域名服务器。
server命令:和 lserver相似,解析另一台域名服务 器并将其设置为默认的服务器,不同在于本命令使用当前的默认服务器来解析。
set命令:修改工作参数,它也是 nslookup中最常用 的命令,其可使用的工作参数如表 5-1所示。
表 5-1 nslookup程序的 set命令中的工作参数工作参数 说 明
set class 设置查询的类型,一般情况下为 Internet。
set de bug 设置调试模式 /set nodebug:设置为非调试模式
set d2 设置详细调试模式。 /set nod2:设置为非详细调试模式。
set [no]defname 设置为 defname,会在所有没有加,o―的名字后 自动加上默认的域名。它是默认的方式。
set domain 设置默认的域名。
set port DNS的默认端口为 53,用本命令可以设置其他端口,一般用于调试。
set q(querytype) 改变查询的信息的类型。默认的类型为 A纪录
set recurse 设置查询类型为递归;
set retry 设置重试的次数。默认的值为 5。
set root 设置默认的根服务器。
set timeout 设置等待应答的限制时间(单位为秒),超出即为超时,如果还可以重试,就会将长超时值加倍,重新查询。默认的超时值为 5秒。
图 5-20 nslookup的使用方法在图 5-20中显示了使用 nslookup命令的使用方法 。 在该图中,首先输入待查询的域名,www.whpu.edu.cn‖,然后输入待查询的 IP地址,211.85.192.1‖,最后使用 exit命令退出
nslookup命令环境 。
图 5-21 nslookup命令可直接带域名或 IP地址
5.2.9 tcpdump
tcpdump命令用于监视 TCP/IP连接并直接读取数据链路层的数据包的头部信息 。 用户可以指定哪些数据包被监视,哪些控制要显示格式 。 例如要监视所有 Ethernet上来往的通信,
执行下述命令:
# tcpdump -i eth0
实际上,tcpdump命令的格式为:
tcpdump [ -选项 ] [ -c 数量 ] [ -F 文件名 ][ -i 网络接口 ] [ -r 文件名 ] [ -s
snaplen ]
[ -T 类型 ] [ -w 文件名 ] [表达式 ]
tcpdump命令中的选项参数说明如表 5-2所示。 Tcpdump命令中的表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件,如果一个报文满足表达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包将会被截获。
表 5-2 tcpdump命令的选项介绍参数选项 说 明
-a 将网络地址和广播地址转变成名字;
-d 将匹配信息包的代码以人们能够理解的汇编格式给出;
-dd 将匹配信息包的代码以 c语言程序段的格式给出;
-ddd 将匹配信息包的代码以十进制的形式给出;
-e 在输出行打印出数据链路层的头部信息;
-f 将外部的 Internet地址以数字的形式打印出来;
-l 使标准输出变为缓冲行形式;
-n 不把网络地址转换成名字;
-t 在输出的每一行不打印时间戳;
-v 输出一个稍微详细的信息,例如在 ip包中可以包括 ttl和服务类型的信息;
-vv 输出详细的报文信息;
-c 在收到指定的包的数目后,tcpdump就会停止;
-F 从指定的文件中读取表达式,忽略其它的表达式;
-I 指定监听的网络接口;
-r 从指定的文件中读取包 (这些包一般通过 -w选项产生 );
- w 直接将包写入文件中,并不分析和打印出来;
-T 将监听到的包直接解释为指定的类型的报文,常见的类型下面我们介绍几种典型的 tcpdump命令的输出信息
( 1) 数据链路层头信息
# tcpdump --e host ice
ice 是一台装有 linux的主机,其 MAC地址是 0,90,27:
58,AF,1A,H219是一台装有 SOLARIC的 SUN工作站,
它的 MAC地址是 8,0,20,79,5B,56;上一条命令的输出结果如下所示:
21:50:12.857509 eth0 < 8:0:20:79:5b:56 0:90:27:58:af:1a
ip 60,h219.33357 > ice.
telnet 0:0(0) ack 22535 win 8760 (DF)
( 2) ARP包的 TCPDUMP输出信息使用命令
#tcpdump arp
得到的输出结果是:
22:32:52.802509 eth0 > arp who-has route tell ice
(0:90:27:58:af:1a)
22:32:52.802902 eth0 < arp reply route is-at
0:90:27:12:10:66 (0:90:27:58:af:1a)
( 3) TCP包的输出信息用 TCPDUMP捕获的 TCP包的一般输出信息是:
src > dst,flags data-seqno ack window urgent options
( 5) UDP包的输出信息用 TCPDUMP捕获的 UDP包的一般输出信息是:
route.port1 > ice.port2,udp lenth
5.3 网络配置文件及程序
5.3.1 网络配置文件在 Linux系统中,TCP/IP网络是通过若干个文本文件进行配置的,可以通过编辑这些文件来完成联网工作 。 系统中重要的有关网络配置文件有:
1,网络设置 /etc/sysconfig/network
该文件用来指定服务器上的网络配置信息,包含了控制和网络有关的文件和守护程序的行为的参数 。 下面是一个例子文件:
NETWORKING=yes
HOSTNAME=machine1
GATEWAY=210.35.6.2
FORWARD_IPV4=yes
GATEWAYDEV= gw-dev gw-dw
,
其中,NETWORK=yes/no 表示网络是否被配置;
HOSTNAME=hostname hostname 表示服务器的主机名;
GATEWAY=gw-ip gw-ip 表示网络网关的 IP
地址;
FORWARD_IPV4=yes/no 是否开启 IP转发功能;
GAREWAYDEV=gw-dev gw-dw 表示网关的设备名
2,主机名 /etc/HOSTNAME
该文件包含了系统的主机名称,包括完全的域名,如:
192.168.0.1 lb.whpu.edu.cn
这个文件是在启动时从文件 /etc/sysconfig/network中的 HOSTNAME行中得到的,用于在启动时设置系统的主机名 。
3,IP地址和主机名的映射 /etc/hosts
/etc/hosts文件中包含了 IP地址和主机名之间的映射,还包括主机名的别名,IP地址的设计使计算机容易识别,但对于人来说却很难记忆,为了解决这个问题,就创建了 /etc/hosts这个文件。 下面是一个例子文件:
127.0.0.1 machine1 localhost.localdomain localhost
192.168.1.100 machine7
192.168.1.101 otherpc otheralias
在这个例子中,本机名是 machine1,otherpc还有别名
otheralias,它可以指向 otheralias。。 一旦配置完机器的网络配置文件,应该重新启动网络以使修改生效,
使用下面的命令来重新启动网络:
/etc/rc.d/init.d/network restart
4,端口号和服务器名之间的映射 /etc/services
/etc/services中包含了服务名和端口号之间的映射,不少系统程序要使用这个文件
5,配置名字解析器 /etc/host.conf
有两个文件声明系统到哪里寻找名字信息来配置 UNIX名字解析器的库 。 文件 /etc/host.conf由版本 5的 libc库所使用,而 /etc/nsswitch.conf由版本 6使用 (glibc )。 问题在于一些程序使用其中一个,而一些使用另一个,
所以将两个文件都配置正确是必要的 。
/etc/host.conf文件指定如何解析主机名,Linux通过解析器库来获得主机名对应的 IP地址 。
配置名字解析器 /etc/nsswitch.conf
//etc/nsswitch.conf文件是由 Sun公司开发并用于管理系统中多个配置文件查找的顺序,它比 /etc/host.conf
文件提供了更多的功能。 /etc/nsswitch.conf中的每一行或者是注释(以 #号开头)或者是一个关键字后跟冒号和一系列要试用的有顺序的方法。每一个关键字是在 /etc/目录可以被 /etc/nsswitch.conf控制的 /etc文件的名字。下面是可以被包含的关键字:
aliases 邮件别名; passwd 系统用户; group 用户组;
shadow 隐蔽口令; hosts 主机名和 I P地址; networks 网络名和号; protocols 网络协议; services 端口号和服务名称; ethers 以太网号; rpc 远程进程调用的名称和号;
netgroup 网内组
6,配置 DNS客户 /etc/resolv.conf
文件 /etc/resolv.conf配置 DNS客户,它包含了主机的域名搜索顺序和 DNS服务器的地址,每一行应包含一个关键字和一个或多个的由空格隔开的参数 。 下面是一个例子文件:
search mydom.edu.cn
nameserver 210.35.0.15
nameserver 210.35.0.2
7,主机地址,子网掩码和网关 /etc/init.d/network
不像很多其他的 UNIX和 Linux操作系统,Red Hat当前并不能自动地通过 /etc/hostname和 /etc/hosts文件来配置网络 。 为了改变主机缺省的 IP 地址,必 须 直 接 编 辑
/etc/init.d/network脚本使其反映正确的网络配置 。 这个文件包括了声明 IP地址,掩码,网络,广播地址和缺省路由器的变量 。 下面是这个文件中相应的部分:
IPADDR=192.168.1.100
NETMASK=255.255.255.0
BROADCAST=192.168.1.255
GATEWAY=192.168.1.1
5.3.2 使用 netconfig程序配置网络
1,启动 netconfig程序当用户登录到 Linux系统后,在终端上使用
,netconfig”命令启动该程序,其在终端上的响 应结果如图 5-22所示 。
图 5-22 确认网络配置图 5-23 进行网络配置单击图中对话框上的,yes‖按钮,确认要进行网络配置,即于如图 5-23所示的配置网络属性界面 。
2,配置网络属性进入,Configuer TCP/IP‖窗口后,设置相应的网络属性,
如 IP地址,子网掩码,默认网关和 DNS服务器地址,确认配置完成后单击,OK‖按钮保存设置 。
3,重新启动网络服务使用 netconfig程序进行网络配置后只是修改了相应的网络配置文件,并没有使用所作的配置在当前系统中生效,需要使用,service network restart‖命令重新启动网络服务,
才可以使新的配置在当前系统中生效 。 图 5-24显示在终端上重新启动网络服务及响应过程 。
图
5-
24
显示
5.3.3 测试网络测试网络的第一步是,确认局域网中的计算机在启动之后能否与其他主机通讯 。 可以先在每台计算机上输入
reboot 命令 。 在 Linux 重新启动过程中,要仔细观看屏幕上滚动的测试信息 。 注意寻找下列信息:
Setting hostname,<hostname you assigned to
this computer>
Bringing up Interface lo,<OK> or <FAILED>
Bringing up interface eth0 <OK> or <FAILED>
也可以使用 ping 命令来判断计算机能否与其他计算机通讯 。
在当前主机上打开一个终端窗口,并输入命令 ping <IP
address> 或 ping <hostname>。 其中,<IP address> 或
<hostname> 是分配给这个计算机的 IP 地址和主机名 。 需要注意的是,为了让 ping 命令正确工作,就必须输入 IP
地址或者主机名作为参数 。
如果已经正确配置了 DNS nameserver 规范,那么 ping
<hostname> 命令就会将 hostname 这个主机名映射成相应的 IP 地址 。 否则,只好在 ping 命令后面给出确切 IP 地址来测试,也就意味着现在要拥有该局域网上所有计算机的
IP 地址列表 。 ping 命令通过局域网将消息发送到目的 IP 地址所表示的计算机 。 如果这台计算机能够与其他主机通讯,
就可以看到一些消息或包 ( 包括信息的字节数 ) 。 这些包应该象下面这样:
。
65 bytes from 192.168.1.x,icmp_seq=0 ttl=255
time=0.8ms
65 bytes from 192.168.1.x,icmp_seq=0 ttl=255
time=0.8ms
65 bytes from 192.168.1.x,icmp_seq=0 ttl=255
time=0.8ms
如果不能够 ping 到局域网中的另外一台主机,可以按照下面的方法寻找问题的根源。首先,用 halt 命令关掉局域网上所有的计算机。在所有计算机的命令行上输入 halt。关掉所有计算机的目的在于,可以在再启动这些计算机的时候观察到启动程序的反馈信息,
检查所有计算机之间的网线,确信所有的 RJ55 接口都被正确连接 。 在确保所有网线安全正确连接之后,逐个启动局域网上的计算机,并观察启动过程中的下列响应信息:
Setting hostname,hostname.networkname [OK]
下面给出一个实例,在局域网中有一台 Linux主机,其通过网关连接到互联中,现在该 Linux主机不能通过浏览器访问到互联网中的某个站点,通常查找这种故障的步骤如下:
( 1) 检测是否该站点是否关闭,即可通过是否能打开其他知名站点来确认 。 如是否能访问新浪,Yahoo,搜狐等 。
( 2) 查看本机 IP地址及相关网络参数设置是否正确 。
( 3) 检测本机与网关之间的通讯是否正常 。
( 5) 检测与互联网的连接 。 如使用 Ping命令进行测试 。
( 5) 测试域名解析是否正常 。
( 6) 测试与特定站点的连接是否正常 。