- 浏览: 271048 次
- 性别:
- 来自: 北京
最新评论
-
zwb5370:
为什么 Java 的 cron 规则的 周规则和 linux ...
Quartz的cron表达式 -
zjhdreams:
没说说明L W C,L C #,每个字符的含义呢?补充
Quartz的cron表达式 -
qq359907964:
呵呵,没问题了,能正常运行..
Quartz的cron表达式 -
dongcb678:
biaoming 写道看了一下文档,compass已经提供很方 ...
Compass怎样在指定alias中搜索 -
anttribe:
请问博主,源呢?你是使用哪个源? 怎么还有内核的源?我杂没找到 ...
Debian升级内核
Linux作为一种新近崛起的操作系统,由于其性能稳定,源码开放及价格方面的优势而逐渐被广大用户所接受。现在Linux的主要用武之地在于服务器领域,但是,经过适当的配置之后,它还可以担当互联网的物理基石——路由器这一重要角色。
路由器是通信子网中的通信节点,每个路由器都计算并维护一张路由表,并据此指导数据报前往最佳路径中的下一站,这便是所谓的路由。这样,经过互联网上所有路由器的通力合作,数据报就能够沿着一条“最佳”路径到达目的地。在GNU软件Zebra的协助下,我们可以将Linux机器打造成一台功能完备的路由器,它能够同时支持RIPv1、RIPv2、RIPng、OSPFv2、OSPFv3、BGP-4和BGP-4+等诸多TCP/IP协议。现在我们首先了解一下 OSPF 和 BGP 协议的运行模式和基本原理,然后介绍 Zebra 的安装配置方法,让你的 Linux 机器变成支持 OSPF 与 BGP 的路由器。
如今,许多公司都建有多个网络,如果这些网络的类型不尽相同,则需要用路由器进行互联。路由器是与两个或两个以上的网络连接的计算机,它根据路由协议生成并维护一个路由表,并按照该路由表中的信息转发包。这些路由器对公司内部的网络结构了如指掌,知道将分组送到目的地的全部细节,但对于其他公司的网络结构并不了解。像这样"在同一机构下管理的一系列路由器和网络"被称为自治系统(AS)。由不同机构掌管的自治系统,可以采用不同的路由选择算法;但同一自治系统内的所有路由器都使用同一路由协议,以便于自治系统内部各个路由器互换路由信息来维持相互的连通性。每一个自治系统都有一个16位的"自治系统(AS)编号"作为标志,就像 IP 地址一样,它是由专门机构来分配的。
自治系统内的路由器称为"内部网关",所用的协议称为"内部网关协议"。内部网关协议大体上分为两类,一类是距离向量协议,如 RIP,EIGRP 协议;另一类是链路状态协议如 OSPF 协议。链路状态路由协议与距离向量协议的不同之处在于,采用链路状态路由协议的路由器不是交换到达目的地的距离,而是维护一张网络拓扑结构图。然后用数据库表示该图,其中的表项对应网络的一条链路。路由器根据数据库的信息计算出"最佳路由",由此指导包的转发。当网络拓扑结构发生变化时,只需将相应纪录而非整个数据库通知其他节点。各路由器做出相应修改并重新计算路由后,就可以继续正常工作。
前面提到,自治系统内的路由器不必知道其他自治系统的内部结构细节,从而有效地节约了路由器的内存和 CPU 时间,并提高了网络带宽的利用率。但是,如果想与其他公司(自治系统)通信时该怎么办呢?很简单,我们可以在自治系统内指定一个与其他自治系统相连的路由器为"外部网关",通过它进入其他自治系统。该路由器使用的协议叫做"外部网关协议",如边界网关协议(BGP)。相邻的两个网关必须首先互换"邻机探测"报文,协商是否愿意成为"邻机"。成为邻机则意味着两个自治系统同意中转双方的通信流。同意后,两个邻机互换"邻机可达性报文",来监督他们之间的链路的工作情况。接下来便是最重要的工作,用"网络可达性报文"来交换通过各邻机所能到达的网络的信息,从而实现自治系统之间的连通性。在外部网关的眼里只由外部网关和连接他们的链路,如此以来,自治系统内的通信由内部网关处理,自治系统之间的通信交由外部网关处理--一个分级路由的景象已经展现在我们面前,实际上,因特网正是由大量自治系统组成的。
许多人对路由器感到比较陌生,事实上作为一个防火墙使用的 Linux 系统已经是一个路由器了,只不过还有点"简陋"而已。然而,我们的目标是用 Linux 打造一个"高级"路由器,它必须能够利用动态路由协议(上文提到的协议皆为动态路由协议)工作。这些协议能够使路由器互换相关信息,从而共享穿越网络时所用的那些路径--路由。这一点对于大型网络(比如 Internet)而言是"异常"重要的,因为此时再用静态路由(也就是人工计算设置路由)是根本不现实的。
外部网关协议 BGP 通常作为 Internet 的骨干使用,而其它的协议(如 OSPF)则适于小型的互连网络。开放式最短路径优先(OSPF)协议是一个应用最广的内部网关协议(IGP)。Zebra 是一个开放源代码程序包,通过它你可以在 Linux 上运行 BGP 与 / 或 OSPF。
安装 Zebra
你既可以从 Zebra.org 网站下载 Zebra 的最新源程序,也能从 Redhat 和 Debian 中获得它,但不一定是最新版的。从源代码中进行软件安装,你就会发现使用的是一些普通的安装过程。简介如下:
<ccid_nobr></ccid_nobr>./configure
make
make install
配置脚本会搜索系统上已经安装的 IP 栈并且自动地设置成支持他们。当前,IP 栈很可能仅仅是指 IPv4,但是 IPv6 用户也不用担心,因为 Zebra 也会发现并且支持它。
程序安装之后,还可能必须在 /etc/services 中增加一些命令行。Zebra 的守护程序在他们自己的虚拟终端连接(VTY)下运行,所以你的系统必须知道这些虚拟终端连接。这里是你应该增加的一些连接∶
zebrasrv 2600/tcp # zebra service
zebra 2601/tcp # zebra vty
ripd 2602/tcp # RIPd vty
ripngd 2603/tcp # RIPngd vty
ospfd 2604/tcp # OSPFd vty
bgpd 2605/tcp # BGPd vty
ospf6d 2606/tcp # OSPF6d vty
如果你已经熟悉 Cisco IOS,那你就能在短时间内掌握 Zebra,因为你会发现两者极为相似。Zebra 的每个守护程序使用一个单独的 VTY,这些 VTY 可以通过一个远程登录会话进行动态配置。所以,如果你需要设置 OSPF,简单地远程登录到该 Linux 上 2604 端口;为了修改内核的路由表或设置路由协议间的再分发,你可以远程登录到端口 2601,该 Zebra 守护程序充当内核管理器,管理其他的守护程序和系统本身之间的通信。
现在介绍如何在一个服务器上创建和运行 OSPF 和 BGP。Zebra 的守护程序运用纯文本文件储存它们的配置。对于 OSPF/BGP 路由器,将用到三个文件∶zebra.conf、ospfd.conf 和 bgpd.conf。举例来说,zebra.conf 文件可能会是这样:
! Zebra configuration saved from vty ! 2002/02/28 01:46:12 ! hostname LinuxRouter /*主机名为 LinuxRouter*/ password zebra /*口令为 zebra*/ enable password z3bRa /*进入特权模式时的口令为 z3bRa */ log file /var/log/zebra/zebra.log /*日志文件的地址*/ ! interface eth0 /*以太接口 eth0*/ description Interface to External Network/*对接口的描述*/ ip address 10.0.0.1/24 /*该接口的 IP 地址*/ ! interface eth1/*以太接口 eth0*/ description Interface to Internal Network/*对接口的描述*/ ip address 192.168.66.1/24/*该接口的 IP 地址*/
这里的感叹号充当注解标识或分隔符。尽管存在大量不同的网络接口类型(Ethernet、ISDN 等等),
但只要是 Linux 内核能够辨认的网络接口类型,Zebra 都可以使用。子网掩码都带有网络位的位数(例如/24),
默认掩码则不然(比如 255.255.255.0)。注意存在两个口令,一个用于用户模式而另一个用于特权模式。
这不仅有利于向非管理员提供访问权限,而且对于创建路由服务器或者路由探测镜也是非常重要的。所有 BGP
管理员都知道,这些探测镜是调试路由问题的关键,因为他们能够使你就象从一个外部 AS( AS代表自治系统)
一样查看路由。 BGP 路由需要用到 AS 编号,AS 编号是一些由 ARIN (美国互联网络号码注册机构)控制的注册号码。
下一步将启动一些必要的程序。用以下命令完成∶
/usr/sbin/zebra -dk /usr/sbin/ospfd -d /usr/sbin/bgpd -d第一个命令,启动 zebra,该守护程序实际上用来更新内核的路由表。-dk 告诉该程序作为一个守护程序运行(d),它的大部分时间在后台运行。k 是另外的一个选项,告诉 Zebra 维护所有已配置的路由。它用来保证在你测试 Zebra的时候不会意外地删除路由表。一般情况下,设置路由和接口,需要将 ifconfig 和 route 这两个命令配合使用。而 Zebra 完全可以替代这种路由管理方式,使用起来更为简洁。
至此,基本的服务已经具备,现在让我们 Telnet 到本地机器的 2604 端口,开始配置 OSPF。为进入特权模式,
键入 enable (正如在Cisco IOS 中一样),然后键入特权模式口令。接下来,用 configuration terminal
命令切换到配置模式。值得一提的是 Zebra 也能接受命令缩写形式,这与 Cisco 极为相似,如 configuration
terminal 可以简写为 config t,这大大缩短了输入时间,使用起来更为方便。另外,如果输入 list 和 ?,
它将显示一个当前可用命令的清单,并附有一些简略解释。除此之外,还可以键入 tab 用于命令的自动完成。这就是说,
如果你想键入命令 clock,只要键入前两个字母 cl 然后按 tab 键,机器就会自动"补全"这条命令--前提是你键入的字
符足以唯一地确定这条命令。这是一个很好的功能,尤其是当你习惯于这种用法时。
接下来,我们还需要告诉守护程序将通过 OSPF 广播哪些网络以及相关的域(area)。OSPF 的可伸缩性允许它支持多个域。
键入 router ospf 开始配置 OSPF,然后键入 network 192.168.66.0/24 area 0。这告诉路由器,
我们将使用 OSPF 广播一个子网掩码为 255.255.255.0 的 192.168.66.0 网络。
在本例中,我们让 eth0 接口变成一个被动(passive)接口,以便使它不能发送路由更新。这对于实验是非常重要的,
因为在那个方向上的其他的路由器可能监听到发送的路由更新,将接口变成一个被动(passive)接口,
从而有效的避免扰乱网络的正常运行。为此,键入命令 passive - interface eth0。
如果打算将此路由器作为工作路由器使用时,就没有这个必要了。一旦你完成修改,用 end 命令从配置模式中退出,
然后用 write file 命令保存。这里是一个快照:
labrat:~# telnet 0 2604 /*Telnet 到本地机器的 2604 端口*/ Trying 0.0.0.0... Connected to 0. Escape character is '^]'. /*用 '^]'退出该会话*/ Hello, this is zebra (version 0.84b) Copyright 1996-2000 Kunihiro Ishiguro User Access Verification Password: /*在此键入口令,如 zebra*/ ospfd> enable/*进入特权模式*/ Password: /*输入特权模式口令,如 z3bRa*/ ospfd# configure terminal /*从终端配置路由器*/ ospfd(config)# router ospf /*配置 OSPF*/ ospfd(config-router)# network 192.168.66.0/24 area 0/*通过 OSPF 广播网络 network 192.168.66.0,/24 指出子网掩码为 24 位,area 0 指出该网络所在的域*/ ospfd(config-router)# passive-interface eth0 /*将 eth0 接口设置成一个被动(passive)接口*/ ospfd(config-router)# end /*退出配置模式*/ ospfd# write file /*保存修改*/ Configuration saved to /etc/zebra/ospfd.conf请记住,为了让 OSPF 或 BGP 在某接口上工作,那么该接口必须处于"运行"状态。为手工运行一个接口,登录到端口 2601
并且在该接口上执行 no shut 命令。
BGP 与 OSPF 的配置大致相同。开始,打开一个远程登录会话到端口 2605。之后执行 configure terminal,
输入 router bgp <AS #_> 进入 BGP 配置模式。如前所述,BGP 使用 AS 编号建立邻机关系并路由通信流。
在我们的试验中,我们将使用一个范围在 64512 到 65534 之间的私有 AS 号码(换句话说,该号码旨在机构内部有效,
而在因特网上无效)。用 network 命令设置由 BGP 广播的那些网络,如 network 192.168.66.0/24.。
与 OSPF 不同的是,BGP 邻机必须静态指定。如同下述∶neighbor <neighbor IP> remote-as <remote AS #>。
这里是一个范例:
labrat:~# telnet 0 2605 Trying 0.0.0.0... Connected to 0. Escape character is '^]'. Hello, this is zebra (version 0.84b) Copyright 1996-2000 Kunihiro Ishiguro User Access Verification Password: bgpd> enable Password: bgpd# configure terminal bgpd(config)# router bgp 65530/*配置 BGP,65530 是自治系统编号。也就是将该系统配置成自治系统 65530 上的外部网关*/ bgpd(config-router)# network 192.168.66.0/24 /*由 BGP 广播的网络*/ bgpd(config-router)# neighbor 10.0.0.5 remote-as 65531/*静态指定自治系统 65531 上 IP 地址为 10.0.0.5 的路由器为本机的邻机*/ bgpd(config-router)# end bgpd# write file Configuration saved to /etc/zebra/bgpd.conf对于 OSPF 和 BGP,有大量选项可用,限于篇幅不能在此一一介绍。对于每个协议,我建议在实际使用之前,不妨先研
究一番。为此,可以参考 GNU Zebra 文档,它会给你提供许多帮助。
在网络中,路由通信流的方法有若干种。就路由器而论,虽然有用各种硬件可用,但是费用较高--人们自然就会想到运行
一个用 Linux 系统构筑的功能丰富的路由器作为代替。Zebra 路由守护程序已经使这一切变为现实。因为支持 IPv4、
IPv6 和其它各式各样的协议,所以 Zebra 能够满足我们所有的路由需求。它还有一个好处就是,因为 Cisco IOS 和
Zabra 极为相似,如果你以前在 Cisco IOS 环境中工作,可以轻松的过渡到 Zebra 系统;同时,使用 Zebra 也能
让你积累起丰富的类似于使用 Cisco IOS 路由器的经验和知识。
发表评论
-
proftpd禁用反向域名解析
2008-01-17 16:35 1537# 禁用反向域名解析 UseReverseDNS off -
解决libstdc++.so.5问题
2008-01-12 01:22 7980error while loading shared libr ... -
基于Linux实现多个ADSL捆绑
2007-04-29 21:20 3064现在很多公司,为了节约成本,往往会放弃E1 等等这样高价的 ... -
修改ubuntu的启动grub画面,模仿SUSE的效果
2007-04-27 11:58 4819现在ubuntu系统是越来越受大众用户的欢迎,易用性大大的提高 ... -
Ubuntu下连接蓝牙手机和蓝牙鼠标
2007-04-27 11:57 7323具体配置只要下载几个软件就可以了。用新立得安装如下几个软件。 ... -
Apache服务器二级域名的完美实现
2006-12-27 12:17 3343首先,你的拥有一个有泛域名解析的顶级域名,例如: domain ... -
用iptables实现NAT
2006-12-24 18:39 1940摘要 本文是“用iptales实现包过虑型防火墙”的姊妹篇 ... -
用iptales实现包过虑型防火墙(二)
2006-12-24 18:30 1515http://LinuxAid.com.cn bye2000 ... -
(转贴) 用iptales实现包过虑型防火墙(一)
2006-12-24 17:42 1604用iptales实现包过虑型防 ... -
iptables+squid(三)
2006-12-21 10:19 3669Linux 2.4 NAT HOWTO 简体中文版 Rust ... -
iptables+squid (二)
2006-12-21 10:18 3358此文档描述在Linux2.4 内核中,如何使用iptable ... -
iptables+squid (一)
2006-12-21 10:16 2608Linux 目前已经逐步成为网络的同义词。它可以在办公环境或 ... -
用Zebra做BGP实验
2006-12-19 18:54 7170RIP和OSPF都是内部网关协议(IGP),BGP属于外部 ... -
用Zebra做OSPF实验
2006-12-19 18:53 4528OSPF(开放最短路径优先)路由协议是一项链路状态型技术, ... -
用Zebra做简单的RIP实验
2006-12-19 18:32 3146RIP是应用较早、使用较 ... -
Zebra配置(一)
2006-12-19 18:28 2740Zebra 是一个开源的 TCP/IP 路由软件,同 Cisc ... -
linux Apache 2.2 + PHP 5.1.2 + MYSQL 5.0.19+svn
2006-12-09 18:46 5828引用至http://blog.yening.cn/2006/ ... -
Linux下的软件包安装方法[详](转)
2006-11-29 09:22 77971、已经编译打包好的xxx.rpm 如果你的Linux系统带 ... -
Debian升级内核
2006-11-27 22:23 9650Debian是我用Linux当中升级内核最简单的,完全不需要编 ...
相关推荐
OSPF 使用链路状态算法,允许路由器构建一个完整的网络拓扑视图,然后通过 SPF 算法计算最短路径树,确定数据包的最佳传输路径。以下几点是 OSPF 的关键特性: 1. **区域划分**:OSPF 支持将 AS 分割成不同的区域...
【Linux打造功能完备路由器】 Linux操作系统,以其开源、稳定、低成本的特点,被广泛接纳和使用。不仅在服务器领域,Linux也可以被配置成功能强大的路由器,尤其是对于需要划分多个子网但预算有限的情况,利用老旧...
《利用Linux打造功能完备路由器》 在IT领域,Linux操作系统因其开源、稳定和价格优势而深受用户喜爱。不仅广泛应用于服务器领域,通过适当的配置,Linux还可以成为强大的路由器,实现多种TCP/IP协议,如RIPv1、RIPv...
在构建专业级中小型路由器的过程中,Linux操作系统扮演了关键角色。Linux因其开源、免费及高度可定制的特性,成为搭建路由器的经济高效选择。相比于昂贵的专业路由器设备,如Cisco,Linux路由器同样具有高度的专业性...
### 把U盘打造成路由器的教程 #### 一、引言 随着科技的进步和个人电子设备的普及,我们经常面临一个问题:如何充分利用手头已有的资源?对于那些容量较小且使用频率不高的U盘,大多数人可能会选择将其闲置。然而,...
"极路由发布HiWiFi智能路由器系统打造路由器中的安卓生态"这一标题揭示了极路由公司推出的新产品——HiWiFi智能路由器系统。该系统借鉴了安卓平台的开放性和可扩展性,旨在为传统路由器带来全新的智能体验,创建一个...
本文以“重装上阵 用老电脑打造超级路由器”为主题,详细介绍了如何使用MikroTik公司的RouterOS软件,将老旧电脑转变为高性能路由器。 RouterOS是一款基于Linux开发的专业级网络操作系统,不仅支持基础的共享上网...
相比于专用的硬件路由器,使用Linux系统构建功能丰富的路由器更为经济。特别是对于熟悉Cisco IOS配置的网络管理员,Zebra的配置语法与Cisco IOS相似,能提供无缝的过渡体验。此外,Zebra的广泛协议支持能满足大多数...
【华硕WL-500g打造NAS步骤】 1. **硬件准备**:首先确保你的无线路由器(例如华硕WL-500g)支持外接USB存储,并将其与USB移动硬盘连接。 2. **固件刷新**:由于原厂固件可能不支持Samba协议,所以需要升级到Oleg版...
**凡心路由器与OpenWRT编程器固件详解** OpenWRT是一款开源的嵌入式操作系统,主要用于无线路由器,提供高度可定制...通过深入理解和熟练应用OpenWRT,我们可以充分利用路由器的潜能,打造一个高效、安全的网络环境。
通过`killall mysqld`停止当前进程,然后使用`/etc/init.d/mysqld enable`使其开机启动,最后用`/etc/init.d/mysqld start`启动MySQL服务。 最后,你可以通过一款名为Navicat的MySQL客户端工具从另一台电脑连接到你...
10. 开发工具:使用Linux 4.9.37的开发者可以利用诸如Git、Makefile、GCC编译器等开源工具进行开发,这些工具为代码管理和构建提供了便利。 总之,Linux 4.9.37内核版本在嵌入式系统中扮演着重要角色,其稳定性和...
【如何打造一个神奇的微型Linux OS】 在计算机技术迅速发展的今天,学习和理解操作系统成为了一项重要的任务。尤其是对于Linux操作系统,它的灵活性和开源特性使其成为系统开发者的首选。然而,传统的OS教学往往...
### 路由器刷OpenWrt打造全能服务器(四)动态域名 #### 知识点一:动态域名解析服务(DDNS) **定义:** 动态域名解析服务(Dynamic Domain Name System, DDNS)是一种自动更新域名指向IP地址的服务。由于大多数...
总的来说,通过这种方法,你可以利用废旧的U盘打造一款定制化的、功能强大的路由器,节省购买路由器的成本,并且可以根据自己的需求进行个性化配置。这个DIY项目适合对网络设备有一定了解和技术基础的用户尝试。
嵌入式Linux是计算机科学领域的一个重要分支,它涉及到在小型设备上运行定制化Linux操作系统的技术,这些设备包括但不限于智能手机、路由器、智能家居设备等。本实验手册是为初学者量身打造的,旨在帮助读者逐步掌握...
【小U盘变身最强大路由器】的技术点主要围绕着如何将闲置的小容量U盘改造成一个功能强大的路由器,这一过程涉及到的操作系统是DD-WRT,它是一个基于Linux的第三方路由器固件。 首先,DD-WRT是一个针对路由器的操作...
SecureCRT是一款广泛使用的终端模拟器软件,特别适合于Linux系统的远程访问和管理。它提供了SSH、Telnet、Serial等多种协议的连接方式,确保了数据传输的安全性,是IT专业人士进行远程控制和系统管理员日常运维的...
OpenWRT是一个基于Linux的开源固件项目,它提供了高度可定制的操作系统,广泛应用于路由器和其他嵌入式设备。在给定的压缩包文件“openwrt-sdk&toolchain-ar71xx-tiny_gcc-8.4.0_musl.Linux-x86_64.rar”中,包含了...
通过修改Linux系统内核参数ip_forward的方式实现路由功能,系统使用sysctl命令配置与显示在/proc/sys目录中的内核参数。首先在命令行输入:cat /proc/sys/net/ipv4/ip_forwad,检查Linux内核是不是开启IP转发功能。...