天天看点

Linux下实现路由功能

 一:原理:软路由是指利用台式机或服务器配合软件形成路由解决方案,主要靠软件的设置,达成路由器的功能。软路由通常使用普通计算机充当,使用通用的操作系统,如linux或windows,因此路由设置事实上是windows或 linux的设置,或者是对计算机的配置,现在以Linux主机为例实现路由功能。

二:案例:拓扑方案如图所示。

1:在Linux主机上首先要打开数据包转发功能

[root@lyt ~]# sysctl –p #让上一步修改的文件生效

2:修改网卡eth1和eth0 如图

<a href="http://blog.51cto.com/attachment/201208/002016874.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201208/002117359.png" target="_blank"></a>

[root@lyt ~]# service network restart #重启网络服务

临时添加路由条目:

1:使用route add 将路由条目临时性的添加进入路由表中:(一旦系统重启,则该路由条目就不存在了)

[root@lyt ~]# route add -net 192.168.1.0/24 gw 192.168.10.1 #将192.168.1.0/24网络添加到路由表中,gw网关(也即下一跳)192.168.10.1 

[root@lyt ~]# route add -net 192.168.2.0/24 gw 192.168.10.1 #将192.168.2.0/24网络添加到路由表中,gw网关(也即下一跳)192.168.10.1

2:使用route del将临时添加的路由条目删除:

[root@lyt ~]# route del -net 192.168.2.0/24 gw 192.168.10.1 

[root@lyt ~]# route del -net 192.168.1.0/24 gw 192.168.10.1

永久性的添加路由条目:

1:[root@lyt ~]# echo "route add -net 192.168.1.0/24 gw 192.168.10.1"&gt;&gt;/etc/rc.local #将路由条目追加到开机脚本/etc/rc.local文件中

<a href="http://blog.51cto.com/attachment/201208/002725697.png" target="_blank"></a>

2:通过创建路由表来实现永久性的添加路由条目:

[root@lyt ~]# cd /etc/sysconfig/network-scripts/ 

 三:源码安装zebra实现动态路由:

zebra简介:zebra是一个路由软件包,提供基于TCP/IP的路由服务,路由协议支持ripv1,ripv2,ripng,ospfv2,ospfv3,bgp-4,和bgp-4+,zebra也支持bgp路由反射器和路由服务器的行为。

拓扑方案:

<a href="http://blog.51cto.com/attachment/201208/205035364.png" target="_blank"></a>

1:[root@lyt ~]# mkdir /mnt/cdrom

[root@lyt ~]# mount /dev/cdrom /mnt/cdrom/

[root@lyt ~]# cd /mnt/cdrom/Server/

[root@lyt Server]# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm          #安装ftp服务器

[root@lyt Server]# cd /var/ftp/

[root@lyt ftp]# chmod o+w pub      #将pub目录的其他用户操作权限加上w(可写入)

[root@lyt ftp]# vim /etc/vsftpd/vsftpd.conf    #编辑vsftp配置脚本如图:

<a href="http://blog.51cto.com/attachment/201208/205146542.png" target="_blank"></a>

[root@lyt ftp]# service vsftpd start #启动ftp服务器

2:使用匿名登录ftp的方式将源文件倒入虚拟机:

<a href="http://blog.51cto.com/attachment/201208/205254370.png" target="_blank"></a>

[rootlyt pub]# rpm -qa |grep gcc            #安装之前需要查看gcc环境是否安装

[root@lyt ~]# mv /var/ftp/pub/zebra-0.95a.tar.gz /usr/local/etc/       #将zebra软件包移动到/usr/local/etc下

[root@lyt ~]# cd /usr/local/etc/

[root@lyt etc]# tar -zxvf zebra-0.95a.tar.gz    #使用tar命令拆包解压缩

[root@lyt etc]# cd zebra-0.95a     #切换到拆包解压后的目录文件里

[root@lyt zebra-0.95a]# ./configure     #检测工作环境,并且产生makefile文件

[root@lyt zebra-0.95a]# make              #调用上一步的makefile文件来生成 .o(目标文件),然后生成一些可执行文件,配置文件文档,库文件以及头文件等

[root@lyt zebra-0.95a]# make install

[root@lyt zebra-0.95a]# vim /etc/services #编辑该文件如图:

<a href="http://blog.51cto.com/attachment/201208/205420822.png" target="_blank"></a>

3:[root@lyt zebra-0.95a]# cd /usr/local/etc/

[root@lyt etc]# cp zebra.conf.sample zebra.conf       #创建zebra文件,实现路由功能后zebra为路由器的登录密码

[root@lyt etc]# cp bgpd.conf.sample bgpd.conf      #创建bgp的配置文件

[root@lyt etc]# cp ospf6d.conf.sample ospf6d.conf      #创建ospf6的配置文件

[root@lyt etc]# cp ospfd.conf.sample ospfd.conf    #配置ospf的配置文件

[root@lyt etc]# cp ripd.conf.sample ripd.conf           #配置rip的配置文件

[root@lyt etc]# cp ripngd.conf.sample ripngd.conf #配置ripng的配置文件

4:[root@lyt etc]# zebra –d #启用zebra

<a href="http://blog.51cto.com/attachment/201208/205535621.png" target="_blank"></a>

[root@lyt etc]# ripd –d #启用rip协议

<a href="http://blog.51cto.com/attachment/201208/205642747.png" target="_blank"></a>

本文转自 liuyatao666 51CTO博客,原文链接:http://blog.51cto.com/5503845/963774,如需转载请自行联系原作者

继续阅读