Zebra打造Linux下小型路由器
现在的Internet网络相当庞大,不可能在不同的网络之间建立直接的连接,所以这时就必须用路由器为不同网络之间的通信提供路径选择。Linux下搭建路由器价格非常便宜, 中小型专业服务器甚至不需要钱。Linux路由器具有一定的专业性,如果配置得当,甚至不比Cisco路由器差。下面就来探讨如何在Linux下搭建出工作效率非常高的专业路由器。
一、基本概念
大家首先需要明白以下两个最基本的概念。
1.     静态路由表
由网络管理员事先设置好的固定路由表叫静态路由表。
2.     动态路由表
路由器根据网络系统的运行情况而自动调整的路由表叫动态路由表。
上面两种路由表在Linux上都可以实现,它们的区别就是当网络系统因为某些情况需要做网络调整时,动态路由表可以很方便地随着变化而自动调整。
二、  路由器实战
架构环境:VMware 6.5 (虚拟出三台机器,一台做路由,两台做客户端)。操作系统: 这里用的是RHEL5,大家可以随便用任何版本的Linux。
需要软件:zebra-0.95b-1.i386.rpm (Linux下路由器软件)。试验目的:要求两个不同网段的机器能通过路由器而互相访问, 达到互相通信的目的。
1.     运行环境
首先必须知道VMware怎么使用,它采用了动态分配内存方案,这样就可以大大节省内存。另外,此版本还多出了一个克隆技术,可以把一个虚拟完的系统克隆出同样的一个系统,并且克隆出来的仅占用1O0多兆空间。
2.     网络规划
路由器所在的Linux分别有两个网卡,ethO:192.168.1.1和eth1:192.168.10.1。
客户端A 所在网段为192.168.1.0/24,IP为192.168.1.2。客户端B所在网段为192.168.10.0/24,IP为192.168.10.2。
3.     配置路由器的网络设置
因为路由器所在Linux必须虚拟出两块网卡, 分别做为两个不同网段的网关,所以在下面的目录中会看到有两个文件,分别是ifcfg-eth0和ifcfgethl。它们分别是两个网卡的配置文件。
650) this.width=650;" onclick="window.open("http://blog.51cto.com/viewpic.php?refimg=" + this.src)" border="0" alt="" src="http://img1.51cto.com/attachment/201001/201001211264078958500.jpg" />
首先编辑ifcfg-eth0,让它的地址为192.168.1.1, 详细内容如下:
[root@rhel5~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.1
NETMASK=255.255.255.0
其次编辑ifcfg-eth1,让它的地址为192.168.10.1,详细内容如下:
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.10.1
NETMASK=255.255.255.0
现在重新启动一下网络服务,让网络配置生效。
如果以上操作都正确的话,那么下面就来安装和配置路由器。首先我们需要下载一个zebra-0.95b-1.i386.rpm,Linux下的路由器程序, 在RedHat的光盘里有这个RPM包。如果大家用的是别的版本Linux,可以到http://www.findrpm.com 里下载。到此为止,zebra成功安装完毕。下面再检查一下zebra是否真的安装成功:
[root@rhel5 my]#rpm -aq|grep zebra
zebra-0.95b-1
上面的结果说明已经安装成功了。现在启动zebra:
[rot@rhel5 my]#service zebra start
[rot@rhel5 my]#service ripd start
ripd进程主要是用来使用zebra配置支持RIP路由协议的,所以不但要启动zebra, 还要同时启动ripd。如果大家想在下次开机后自动运行路由器,那么执行如下命令:
[root@rhel5 my]chkconfig zebra on
[root@rhel5 my]chkconfig ripd on
下面来看一下zebra的配置文件:
[root@rhel5 zebra]#ls
ripd.conf vtysh.conf zebra.conf
上面代码中,vtysh.conf是配置zebra所用的Shell配置文件,zebra.conf是zebra的主配置文件。
为了使192.168.1.0/24和192.168.10.0/24网段机器能够互相通信,需要进行相关的配置。大家如果用过Cisco路由器的话就会很容易用zebra, 因为它们的命令几乎都是一样的。下面就开始配置客户端。
4.配置客户端的网络设置
首先配制客户端A 。修改ifcfg-eth0, 内容如下:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.2
netmask=255.255.255.0
GATWAY=192.168.1.1
需要注意的是, 一定要把网关设置成我们刚才路由器的192.168.1.1网关。
[root@rhel5 my]#service network restart
重新启动网络服务后,客户A 的配置就算完成了。其次配置客户端B。配置B的方法其实和上面一样,不过有两个区别。客户端B的IP设置成192.168.10.2,网关改成192.168.10.1。就这两点有所不同。
三、最终测试
在A上执行如下命令:
Ping主机 192.168.1.1
[root@rhel5 ~]# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.044 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.036 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.027 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.027 ms
--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.027/0.033/0.044/0.009 ms
 
Ping主机 192.168.10.1
[root@rhel5 ~]# ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.
64 bytes from 192.168.10.1: icmp_seq=1 ttl=64 time=0.040 ms
64 bytes from 192.168.10.1: icmp_seq=2 ttl=64 time=0.037 ms
64 bytes from 192.168.10.1: icmp_seq=3 ttl=64 time=0.029 ms
64 bytes from 192.168.10.1: icmp_seq=4 ttl=64 time=0.038 ms
--- 192.168.10.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.029/0.036/0.040/0.004 ms
Ping主机192.168.10.2
[root@rhel5 ~]# ping 192.168.10.2
PING 192.168.10.2 (192.168.10.2) 56(84) bytes of data.
64 bytes from 192.168.10.2: icmp_seq=30 ttl=128 time=0.124 ms
64 bytes from 192.168.10.2: icmp_seq=31 ttl=128 time=0.331 ms
64 bytes from 192.168.10.2: icmp_seq=32 ttl=128 time=0.303 ms
64 bytes from 192.168.10.2: icmp_seq=33 ttl=128 time=0.335 ms
--- 192.168.10.2 ping statistics ---
33 packets transmitted, 4 received, 87% packet loss, time 32026ms
rtt min/avg/max/mdev = 0.124/0.273/0.335/0.087 ms
在B上也同样执行上面的命令,不过最后一个命令要改成“192.168.1.2”。如果两台机器ping以上三个地址都能ping通,那么zebra路由器就算设置成功了。以上所有操作都是最基本、最简单的路由器设置,如果大家需要更复杂的网络配置,完全可以用zebra来实现。
 

本文出自 “李晨光原创技术博客” 博客,谢绝转载!

用Zebra打造Linux下小型路由器的更多相关文章

  1. 打造linux下的source insight——vim插件安装使用总结

    source insight是windows下的优秀编辑器,适合阅读管理代码,主要有以下功能: 查找函数,变量或者宏的定义. 查找函数,变量或者宏的引用位置. 查找函数被调用的位置 查找某个符号在工程 ...

  2. 扔掉360:Linux下无线网卡作WiFi路由器(转薄荷开源网)

    这个话题很多人感兴趣,毕竟现在是无线互联时代.手机一族到外面去,首先关心的就是有没有 WiFi.Windows 7 用户可以安装 360 的软件,把笔记本电脑配置成路由器,供手机或其他电脑上网. 在 ...

  3. Linux下的DOS攻击

    Linux下的DOS攻击 DOS是Denial of service的简称,即拒绝服务,造成Dos攻击行为被称为Dos攻击,其目的是使计算机或网络无法提供正常的服务.最常见的Dos攻击有计算机带宽攻击 ...

  4. [转] Linux下防火墙iptables用法规则详及其防火墙配置

    from: http://www.cnblogs.com/yi-meng/p/3213925.html 备注: 排版还不错,建议看以上的链接. iptables规则 规则--顾名思义就是规矩和原则,和 ...

  5. Linux下防火墙iptables用法规则详及其防火墙配置

    转:http://www.linuxidc.com/Linux/2012-08/67952.htm iptables规则 规则--顾名思义就是规矩和原则,和现实生活中的事情是一样的,国有国法,家有家规 ...

  6. NetHogs——Linux下按进程实时统计网络带宽利用率

    Debian/Ubuntu下安装很简单,执行:apt-get install nethogs 就可以安装. CentOS/RHEL下建议先安装上EPEL,再执行:yum install libpcap ...

  7. 记录在linux下的wine生活

    记录在linux下的windows生活 本篇内容涉及QQ.微信.Office的安装配置 QQ: 到deepin下载轻聊版. 如果安装了crossover,那么将其中opt/cxoffice/suppo ...

  8. 浅谈linux 下,利用Nginx服务器代理实现ajax跨域请求。

    ajax跨域请求对于前端开发者几乎在任何一个项目中都会用到,众所周知,跨域请求有三种方式: jsonp; XHR2 代理: jsonp: 这种应该是开发中是使用的最多的,最常见的跨域请求方法,其实aj ...

  9. Linux学习心得之 Linux下命令行Android开发环境的搭建

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...

随机推荐

  1. spring AOP的Pointcut注解报错

    error at ::0 can't find referenced pointcut spring使用的是4.1.0,在项目中直接复制旧的aspectjweave.jar报错了 然后换成aspect ...

  2. ArcGIS api for javascript——加入地图并显示x,y坐标

    这个示例报告了用户在地图上悬停和拖拽鼠标的鼠标指针坐标.通过事件监听器来更新鼠标移到的x和y坐标. 下行代码创建了地图: var map = new esri.Map("map") ...

  3. Android笔记---Intent实现Activity跳转

    学了之前的Android控件以及布局,我们就能够做一些UI的设计了,这里我结合之前的知识.以一个小的登录项目来解说下Activity之间跳转. 先看下效果图: 1.登录界面: 2.点击登录按钮跳转到另 ...

  4. easyui combobox 设置值 顺序放在最后

    easyui combobox 设置值 顺序放在最后 如果设置函数.又设置选中的值,注意顺序, 设置值需要放到最后,否则会设置了之后又没有了: $('#spanId'+i).combobox(res) ...

  5. github关联域名,创建个人站点教程终结篇

    1.背景 近期心血来潮,买了一个域名,本来要买fuckgfw的,没想到被抢注了.就拿自己的英文名买了一个.叫做www.garvinli.com.由于知道会有非常多朋友不太清楚整个站点搭建的过程,所以在 ...

  6. Redis封装之Hash

    RedisHashService: /// <summary> /// Hash:类似dictionary,通过索引快速定位到指定元素的,耗时均等,跟string的区别在于不用反序列化,直 ...

  7. Excel 文本内容拆分

    1.首先把文本数据粘贴到excel-->在旁边插入空白列..选择数据-->分列-->固定宽度 2.数据预览点击下一步 3.最后分好的数据就在 归去来兮,田园将芜胡不归?既自以心为形役 ...

  8. Linux VNC客户端软件VNC Viewer | RealVNC

    Linux很多时候是作为服务器操作系统,如果是桌面系统通常情况会远程管理linux服务器,很多时候通过VNC进行远程管理,这个时候就要在客户端安装VNC客户端软件,VNC Viewer | RealV ...

  9. Bit、Byte、kb、KB、MB、KiB、MiB各表示什么意思?

    1.Byte.bit:bit表示:位,是计算机中最小的数据单位.每一位的状态只能是0或1Byte表示:字节,8个二进制位构成1个字节,即1 Byte = 8 bit .1个英文字母或者数字占用1个字节 ...

  10. GridView单元格取值显示为&nbsp;

    在通过GridView取一个单元格(cell)的值时,数据库中为NULL,而页面上显示为空格.发现通过gridview.cell[i].text取出来的值为 ,导致获取数据出现问题. 解决方法: 一. ...