阳文起Linux课程设计终稿.docx
《阳文起Linux课程设计终稿.docx》由会员分享,可在线阅读,更多相关《阳文起Linux课程设计终稿.docx(20页珍藏版)》请在冰豆网上搜索。
![阳文起Linux课程设计终稿.docx](https://file1.bdocx.com/fileroot1/2023-1/30/c687410d-6b2c-4632-95bc-c736c1f0da4b/c687410d-6b2c-4632-95bc-c736c1f0da4b1.gif)
阳文起Linux课程设计终稿
长沙理工大学
《网络系统》课程设计报告
阳文起
学院计算机与通信工程专业计算机科学与技术
班级09-04学号200950080418
学生姓名阳文起指导教师周书仁
课程成绩完成日期2012年3月4日
课程设计任务书
计算机与通信工程学院计算机科学与技术专业
课程名称
网络系统课程设计
时间
2011~2012学年第2学期1~2周
学生姓名
阳文起
指导老师
周书仁
题目
Linux系统下路由器的配置与实现
主要内容:
本课程设计主要解决在Linux系统下将系统配置为能够拥有判断网络地址和选择路径功能,能在多网络互联环境中建立灵活的连接,并可用完全不同的数据分组和介质访问方法连接各种子网的特殊的“路由器”。
要求:
(1)在虚拟机上能通过一系列操作和测试将系统配置为一个拥有一般路由器所有功能的特殊的“路由器”。
(2)通过实际项目的分析、安装、配置、测试等工作,掌握用Linux系统下的路由器的配置和实现。
(3)按要求编写课程设计报告书,能正确编写分析、设计、编码、测试等技术文档和用户使用手册。
应当提交的文件:
(1)课程设计报告。
(2)课程设计附件(实验数据、测试截图等)。
课程设计成绩评定
学院计算机与通信工程专业计算机科学与技术
班级09-04学号200950080418
学生姓名阳文起指导教师周书仁
课程成绩完成日期2012年3月4日
指导教师对学生在课程设计中的评价
评分项目
优
良
中
及格
不及格
课程设计中的创造性成果
学生掌握课程内容的程度
课程设计完成情况
课程设计动手能力
文字表达
学习态度
规范要求
课程设计论文的质量
指导教师对课程设计的评定意见
综合成绩指导教师签字年月日
目录
摘要1
关键词1
1引言2
1.1课题背景及意义2
1.2课题设计目的3
1.3课题设计任务3
2路由器4
2.1路由器的原理与作用4
2.2路由器的功能4
2.3静态路径表5
2.4动态路径表5
3静态路由器的配置6
3.1在Linux系统字符环境中配置静态路由器6
3.2在Linux环境图形界面下配置静态路由器10
3.3在Linux下配置静态路由器的实例10
4动态路由器的配置15
4.1动态路由的概念15
4.2RIP协议的简介15
4.3Zebra软件的简介16
4.4使用Zebra配置动态路由器16
5结束语21
参考文献22
Linux系统下路由器的配置和实现
学生姓名:
阳文起指导老师:
周书仁
摘要本课程设计主要解决Linux系统下路由器的配置和实现问题。
首先通过对路由器的基本原理、作用、功能以及静态路径表、动态路径表等概念的大略介绍,营造一个大概的印象,然后通过在虚拟机下的Linux环境中分别使用route命令配置静态路由器以及使用zebra软件配置动态路由器的过程以达到本次课程设计的目标。
关键词Linux;静态路由器;动态路由器;route命令;zebra软件
ConfigurationoftherouterundertheLinuxsystem
Studentname:
YangWenqiAdvisor:
ZHOUShu-ren
AbstractThecourseisdesignedmainlytosolvetherouterconfigurationandimplementationissuesunderLinux.First,thebasicprinciplesoftherouter,theconceptoftherole,function,andthestaticroutetable,dynamicpathtableageneralintroduction,creatingaroughimpression.ThentoachievethegoalofthecoursedesigninavirtualmachineunderLinuxenvironmentusingtheroutecommandtoconfigurestaticroutersandzebrasofewareconfigurationprocessofthedynamicroute.
KeywordsLinuxsystemStaticrouter;Dynamicrouter;routecommand;zebrasoftware
1引言
本次课程设计首先需要扎实地重温上学期所学的计算机网络中特别是路由器部分的内容,然后在深入理解的基础上再辅以高级操作系统(如Linux)中的指令与方法,同时凭借老师的指导以及自己多次的实验与测试才能初步地完成课题目标,实现在Linux系统下路由器的配置与实现。
1.1课题背景及意义
随着计算机技术和Internet的日新月异,网络技术的发展已经超越了其他技术的发展。
作为一个IT行业的技术人员来说知道怎么去简单的使用电脑已跟不上时代发展的步伐。
也许有的人会想,既然Windows系统服务器版本已经足够的满足人们的需求但又为什么还要去追求那些比较复杂操作的系统呢?
其实不用说大家都很明白的了解到Linux的优越性,为什么会有人说在Internet的骨干网络中Linux是一个明珠,就是因为它的稳定性和可靠性,试想在一个提供成千上万的网络服务中不断的请求服务要不断的响应客户的程序和请求,并且作为服务器如在网络中不可或缺的WWW、DNS、FTP、Email、DHCP等服务有的服务一开始工作就要上年甚至几年的长时间不断的运行,具有相关的人士统计在Internet网络的大型服务器有70%以上的是Linux操作系统来掌控的并且长时间工作的服务器中长时间工作的相对的windows系统下的只有2%-3%,而其他的都是由Linux来完成所有的操作。
Linux有如下诸多优点:
(1)稳定的系统:
Linux本来就是建立在Unix上面发展出来的操作系统,继承了Unix稳定并且有效率的特点。
常听到安装Linux的主机连续运做一年以上而不曾死机、不必关机是非常平常的事。
(2)免费或少许费用:
由于Linux是基于GPL的基础下的产物,因此任何人皆可以自由取得Linux,至于一些安装套件的发行者,他们发行的安装光盘也仅需要些许费用即可获得,不同于Unix需要负担庞大的版权费用,当然也不同于微软需要一而再,再而三的更新系统,并且缴纳大量费用。
(3)安全性、漏洞的修补:
Linux由于支持者众,有相当多的热心团体、个人参与其中的开发,因此可以随时获得最新的安全信息,并给予随时的更新,亦即是具有相对的较安全。
(4)多任务、多使用者:
与Windows主机系统不同的,Linux上可以同时允许多人上线来工作,并且资源的分配较为公平,比起Windows的单人假多任务系统要稳定的多。
Linux主机上面规划出不同等级的使用者,而且每个使用者登入系统时的工作环境都可以不相同,此外,还可以允许不同的使用者在同一个时间登入主机,以同时使用主机的资源。
(5)使用者与群组的规划:
在Linux的机器中,档案的属性可以分为可读、可写、可执行等参数来定义一个档案的适用性,此外,这些属性还可以分为三个种类,分别是档案拥有者、档案所属群组、其它非拥有者与群组者。
这对于项目计画或者其它计划开发者具有相当良好的系统保密性。
(6)传统的路由器相对以Linux配置而成的“路由器”而言价格相对高昂且使用范围及灵活度皆不如后者。
所以,使用Linux系统作为我们的操作系统是挺有优势的,而使用Linux配置路由器的技术更是相当重要。
1.2课题设计目的
本课程设计的目的是完成Linux下的路由器的配置和实现。
即实现将Linux做成一个具有判断网络地址和选择路径功能的性能完备的路由器。
1.3课题设计任务
1.首先对路由器的原理、作用、功能等一些课题相关知识进行简要介绍;
2.使用相应的route命令完成将Linux系统配置为静态路由器;
3通过对zebra软件的介绍,安装,配置,应用以实现将Linux系统配置为动态路由器;
4.进行课题总结。
2路由器
路由器是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号的设备。
路由器是互联网络的枢纽、“交通警察”。
目前路由器已经广泛应用于各行各业,各种不同档次的产品已成为实现各种骨干网内部连接、骨干网间互联和骨干网与互联网互联互通业务的主力军。
路由和交换之间的主要区别就是交换发生在OSI参考模型第二层(数据链路层),而路由发生在第三层,即网络层。
2.1路由器的原理与作用
路由器(Router)用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。
当数据从一个子网传输到另一个子网时,可通过路由器来完成。
因此,路由器具有判断网络地址和选择路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备。
它不关心各子网使用的硬件设备,但要求运行与网络层协议相一致的软件。
一般说来,异种网络互联与多个子网互联都应采用路由器来完成。
路由器的主要工作就是为经过路由器的每个数据帧寻找一条最佳传输路径,并将该数据有效地传送到目的站点。
由此可见,选择最佳路径的策略即路由算法是路由器的关键所在。
为了完成这项工作,在路由器中保存着各种传输路径的相关数据--路径表(RoutingTable),供路由选择时使用。
路径表中保存着子网的标志信息、网上路由器的个数和下一个路由器的名字等内容。
路径表可以是由系统管理员固定设置好的,也可以由系统动态修改,可以由路由器自动调整,也可以由主机控制。
2.2路由器的功能
(1)协议转换:
能对网络层及其以下各层的协议进行转换。
(2)路由选择:
当分组从互联的网络到达路由器时,路由器能根据分组的目的地址按某种路由策略,选择最佳路由,将分组转发出去,并能随网络拓扑的变化,自动调整路由表。
(3)能支持多种协议的路由选择:
路由器与协议有关,不同的路由器有不同的路由器协议,支持不同的网络层协议。
如果互联的局域网采用了两种不同的协议,例如,一种是TCP/IP协议,另一种是SPX/IPX协议(即Netware的传输层/网络层协议),由于这两种协议有许多不同之处,分布在互联网中的TCP/IP(或SPX/IPX)主机上,只能通过TCP/IP(或SPX/IPX)路由器与其他互联网中的TCP/IP(或SPX/IPX)主机通信,但不能与同一局域网中的SPX/IP(或TCP/IP)主机通信。
(4)流量控制:
路由器不仅具有缓冲区,而且还能控制收发双方数据流量,使两者更加匹配。
(5)分段和组装功能:
当多个网络通过路由器互联时,各网络传输的数据分组的大小可能不相同,这就需要路由器对分组进行分段或组装。
即路由器能将接收的大分组分段并封装成小分组后转发,或将接收的小分组组装成大分组后转发。
如果路由器没有分段组装功能,那么整个互联网就只能按照所允许的某个最短分组进行传输,大大降低了其他网络的效能。
(6)网络管理功能:
路由器是连接多种网络的汇集点,网间分组都要通过它,在这里对网络中的分组、设备进行监视和管理是比较方便的。
因此,高档路由器都配置了网络管理功能,以便提高网络的运行效率、可靠性和可维护性。
2.3静态路径表
由系统管理员事先设置好固定的路径表称之为静态(static)路径表,一般是在系统安装时就根据网络的配置情况预先设定的,当网络结构的改变时需管理员手工改动相应的表项。
2.4动态路径表
动态(Dynamic)路径表是路由器根据网络系统的运行情况而自动调整的路径表。
路由器根据路由选择协议(RoutingProtocol)提供的功能,自动学习和记忆网络运行情况,在需要时自动计算数据传输的最佳路径。
3静态路由器的配置
3.1在Linux系统字符环境中配置静态路由器
一、Linux下最常用的指定路由规则的命令是route,route工具最主要的功能是管理Linux系统内核中的路由表。
它最大的用途就是用来设定静态的路由表项,通常是在系统用ifconfig配置网络接口(例如网卡等)后,用它来设定主机或者一网段的IP地址应该通过什么接口发送等。
二、Route工具的调用格式如下:
route[-CFvnee]
route[-v][-Afamily]add[-net|-host]target[netmask
Nm][gwGw][metricN][mssM][windowW][irttI]
[reject][mod][dyn][reinstate][[dev]If]
route[-v][-Afamily]del[-net|-host]target[gwGw]
[netmaskNm][metricN][[dev]If]
route[-V][--version][-h][--help]
三、Route工具的主要参数说明如下:
-v使用冗余输出模式。
-Afamily
指定特定的地址族(例如"inet"、"inet6")。
-n使用数字显示的地址(例如,202.38.75.75)而不是去解释域名。
-e使用与netstat相同的输出格式。
-ee参数会产生很长的输出,包括内核路由表的几乎所有信息。
-net目标(target)是一个网段。
-host目标(target)是一个单独的主机。
-F显示内核FIB路由表。
结果可能被-e和-ee参数改变。
-C显示内核中路由缓存信息。
del删除一个路由表项。
add增加一个路由表项。
target配置的目的网段或者主机。
可以是IP,或者是网络或主机名。
netmaskNm
用来指明要添加的路由表项的网络掩码。
gwGw任何通往目的(target)的IP分组都要通过这个网关。
metricM
设置路由表中该项的尺度域(metricfield)为M。
mssM设置TCP的最大分片长度(MSS)Mbytes。
系统缺省值是536。
windowW
设置TCP发送窗口的尺寸为Wbytes。
irttI设置TCP的初始化回路时间(irtt)I毫秒(1-12000)。
缺省情况下按照RFC1122规定是300ms。
reject安装一个阻塞型的路由,这样可能会有路由查找失败。
mod,dyn,reinstate
添加或者修改一个动态路由表项。
主要用来测试和诊断。
devIf强行使用某个特定的输出接口(If),而不用系统去寻找接口。
下面举几个配置的例子:
routeadd-net192.56.76.0netmask255.255.255.0deveth0
添加一条路由表项,网段192.56.76.x应该从接口"eth0"走。
routeadddefaultgwmango-gw
添加一条缺省路由(如果没有其他匹配的路由项,就使用这个路由规则)。
"mango-gw"是一个主机名,而通往这个主机的路由规则应该事先已经设置好了。
routeaddipx4sl0
给主机"ipx4"添加一条路由规则,使用SLIP接口sl0。
Route命令的输出结果
输出的格式有以下几栏:
Destination
目标网段或者主机。
Gateway
网关地址,如果没有设置,则是"*"表示。
Genmask
网络掩码。
Flags一些可能的标记如下:
U(路由是活动的)
H(目标是一个主机)
G(使用网关(gateway))
R(reinstateroute动态路由产生的表项)
D(dynamicallyinstalledbydaemonorredirect)
M(modifiedfromroutingdaemonorrederict)
!
(rejectroute)
Metric路由距离。
Ref路由项引用次数。
(linux内核中没有使用)
Use查找路由项的次数。
.
Iface该路由表项对应的输出接口。
MSS缺省的TCP最大分片尺寸。
Window缺省的TCP窗口的尺寸。
irtt缺省的TCP回路时间。
HH(cachedonly)
ARP入口的数目。
Arp(cachedonly)
该路由项对应的物理地址是否过期等信息。
四、使用route命令添加和删除路由的方法:
1、添加到主机的路由
#routeadd–host192.168.168.110deveth0
#routeadd–host192.168.168.119gw192.168.168.1
2、添加到网络的路由
#routeadd–netIPnetmaskMASKeth0
#routeadd–netIPnetmaskMASKgwIP
#routeadd–netIP/24eth1
3、添加默认网关
#routeadddefaultgwIP
4、删除路由
#routedel–host192.168.168.110deveth0
3.2在Linux环境图形界面下配置静态路由器
进入VM虚拟机中的linux系统,打开图形用户界面,配置好虚拟网卡,重新启动网络服务后,再通过#echo1>/proc/sys/net/ipv4/ip_forward命令来启动服务,最后通过ping命令来测试配置是否成功。
3.3在Linux下配置静态路由器的实例
一、给虚拟机上添加俩块网卡
图3.1打开虚拟机
图3.2选择网卡1的网络连接类型为VMnet3
图3.3选择网卡1的网络连接类型为VMnet4
图3.4配置“虚拟网络参数”
图3.5设置VMnet3为第一块网卡作为桥接网卡,VMnet4为第二块桥接网卡
然后启动linux,进入字符环境,配置虚拟网卡eth0和虚拟网卡eth1。
第一种方法:
#ifconfigeth0172.16.2.111netmask255.255.0.0up
#ifconfigeth1192.168.1.1netmask255.255.255.0up
图3.6第一种配置方法图
第二种配置方法:
配置虚拟网卡eth0:
图3.7配置虚拟网卡eth0
配置虚拟网卡eth1:
图3.8配置虚拟网卡eth1
然后重新启动网络服务:
一下显示了俩种启动方式:
图3.9重新启动网络服务
为了不出错,采用如下命令查看配置是否正确:
图3.10查看配置是否正确
接下来启动“路由和远程访问服务”具体命令如下:
#echo1>/proc/sys/net/ipv4/ip_forward(启动服务)
#echo0>/proc/sys/net/ipv4/ip_forward(关闭服务)
图3.11启动远程访问服务
至此配置完成。
4动态路由器的配置
4.1动态路由的概念
路由器的基本功能就是为IP分组寻找到达目的地址的路径。
因特网是个庞大的系统,上面跑的网络结构负责,而且拓扑结构也在随时改变,这样在某些复杂的范围里我们的静态配置就不一定能获得最佳的寻路路径了。
而且一旦网络结构发生改变,我们手动的静态配置也往往无法及时跟着改变。
在这个背景下,产生了动态路由配置的概念,也就是动态路由器。
动态路由器上的路由表项是通过相互连接的路由器之间交换彼此信息,然后按照一定的算法优化出来的,而这些路由信息是在一定时间间隙里不断更新,以适应不断变化的网络,以随时获得最优的寻路效果。
为了实现IP分组的高效寻路,IETF制定了多种寻路协议。
其中用于自治系统(AS:
AutonomousSystem)内部网关协议有开放式最短路径优先(OSPF:
OpenShortestPathFirst)协议和寻路信息协议(RIP:
RoutingInformationProtocol)。
所谓自治系统是指在同一实体(如学校、企业或ISP)管理下的主机、路由器及其他网络设备的集合。
还有用于自治域系统之间的外部网络路由协议BGP-4等。
4.2RIP协议的简介
RIP是RoutingInformationProtocol的缩写,直接翻译就是"路由信息协议"。
RIP计算路由时使用了"距离向量(distancevector)"算法,因此,它也被称作"距离向量寻路协议(distancevectorroutingprotocol)。
RIP的特点是路由器间定时地交换网络的整体知识,并且只和相邻路由器交换这种知识。
换句话说,路由器只和相邻路由器共享网络信息。
路由器一旦从相邻路由器获取了新的知识,就将其追加到自己的数据库中,并将该信息传递给所有的相邻的路由器。
相邻路由器做同样的操作,经过若干次传递,使自治系统内的所有路由器都能获得完整的路由信息。
RIP报文用UDP数据报来传送。
为了区别于其他的UDP应用,规定RIPng的公认专用UDP端口号为521。
主动寻路更新报文的源/目的的端口都是RIPng端口,应答的更新报文送往发起请求的端口。
应当注意,IPv4中RIP使用的端口号是520,与RIPng的有所不同。
RIP协议也有它的缺陷:
网络直径较小、对网络变化的反应较慢、不支持组播。
4.3Zebra软件的简介
Zebra是一个TPC/IP路由软件,支持BGP-4、BGP-4+、OSPFv2、OSPFv3、RIPv1、RIPv2和RIPng。
它的发行遵循GNU通用公共许可协议,可以运行于Linux以及其他一些Unix变体操作系统上。
Zebra是那些系统最新的发行版本中的路由软件。
最新版本的Zebra以及文档可以从GNUZebra网站上下载。
最初的Zebra软件包由KunihiroIshiguro和YoshinariYoshikawa于1996年完成。
现在,这个软件包主要由IPInfusion――CTO是Ishiguro先生――在多名网络工程师以及开源志愿者的帮助下来维持。
Zebra的设计独特,采用模块的方法来管理协议。
可以根据网络需要启用或者禁用协议。
Zebra最为实用的一点是它的配置形式同CiscoIOS极其类似。
尽管它的配置与IOS相比还是有一些不同,但是这对于那些已经熟悉IOS的网络工程师来说在这种环境下工作将相当自如。
4.4使用Z