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

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

在Linux主机上有双网卡eth0和eth1,eth1对应外网接口,eth0对应内网接口,在Linux主机上通过配置路由功能实现到达192.168.1.0/24和192.168.2.0/24网络

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

[root@lyt ~]# vim /etc/sysctl.conf #编辑该文件如图:

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

2:修改网卡eth1和eth0 如图

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

3:[root@lyt ~]# route –n #查看路由表信息,如图:

临时添加路由条目:

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">>/etc/rc.local #将路由条目追加到开机脚本/etc/rc.local文件中

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

[root@lyt ~]# cd /etc/sysconfig/network-scripts/
[root@lyt network-scripts]# vim route-eth1 #创建route-eth1路由表,eth1表示公司内网的网络出口网卡,编辑路由表如图:

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

查看路由表信息:条目添加成功

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

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

拓扑方案:

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配置脚本如图:

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

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

[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 #编辑该文件如图:

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

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