希望这篇文档能对你更好地理解Linxs2.2/2.4的路由有所帮助和启发。不被大多数使用者所知道的是,你所使用工具,其实能够完成相当规模工作。比如route 和ifconfig,实际上暗中调用了非常强大的iproute 2的底层基本功能。
Linux能为你做什么
一个小列表:
• 管制某台计算机的带宽
• 管制通向某台计算机的带宽
• 帮助你公平地共享带宽
• 保护你的网络不受DoS攻击
• 保护Internet不受到你的客户的攻击
• 把多台服务器虚拟成一台,进行">负载均衡或者提高可用性
• 限制对你的计算机的访问
• 限制你的用户访问某些主机
• 基于用户账号(没错!)、MAC地址、源IP地址、端口、服务类型、时间或者内容等条件进行路由。
现在,很多人都没有用到这些高级功能。这有很多原因。比如提供的文档过于冗长而且不容易上手,而且流量控制甚至根本就没有归档。
1 为什么使用 iproute2?
现在,绝大多数 Linux 发行版和绝大多数 UNIX都使用古老的arp, ifconfig和route命令。虽然这些工具能够工作,但它们在Linux2.2和更高版本的内核上显得有一些落伍。比如,现在GRE隧道已经成为了路由的一个主要概念,但却不能通过上述工具来配置。
使用了iproute2,隧道的配置与其他部分完全集成了。
2.2 和更高版本的Linux 内核包含了一个经过彻底重新设计的网络子系统。这些新的代码让Linux在操作系统的竞争中取得了功能和性能上的优势。实际上,Linux新的路由、过滤和分类代码,从功能和性能上都不弱于现有的那些专业的路由器、防火墙和流量整形产品。
随着新的网络概念的提出,人们在现有操作系统的现有体系上修修补补来实现他们。这种固执的行为导致了网络代码中充斥着怪异的行为,这有点像人类的语言。过去,Linux模仿了SunOS的许多处理方式,并不理想。
这个新的体系则有可能比以往任何一个版本的Linux都更善于清晰地进行功能表达。
2 iproute2 概览
Linux有一个成熟的带宽供给系统,称为Traffic Control(流量控制)。这个系统支持各种方式进行分类、排序、共享和限制出入流量。
我们将从 iproute2 各种可能性的一个简要概览开始。
3 先决条件
你应该确认已经安装了用户级配置工具。这个包的名字在RedHat和Debian中都叫作“iproute”,也可以在这个地方找到:
ftp://ftp.inr.ac.ru/ip-routing/iproute2-2.2.4-now-ss??????.tar.gz
你也可以试试在这里(ftp://ftp.inr.ac.ru/ip-routing/iproute2-current.tar.gz)找找最新版本。
iproute 的某些部分需要你打开一些特定的内核选项。应该指出的是,RedHat6.2及其以前的所有发行版中所带的缺省内核都不带有流量控制所需要的绝大多数功能。
而RedHat 7.2在缺省情况下能满足所有要求。
另外,确认一下你的内核支持netlink ,Iproute2需要它.