Chinaunix首页 | 论坛 | 博客
  • 博客访问: 190424
  • 博文数量: 49
  • 博客积分: 1959
  • 博客等级: 上尉
  • 技术积分: 492
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-08 16:23
文章分类

全部博文(49)

文章存档

2012年(8)

2011年(34)

2008年(7)

分类: LINUX

2012-06-13 10:17:35

路由表主要按照以下几种情况来设计:
1、依据网络接口而存在的路由;
2、手动或默认路由(default route):您所规划的路由必须是您的接口(如eth0)或IP能够直接广播到的路由;
3、动态路由:需要额外的软件支持,比如 CentOS上的Quagga()就可以实现动态路由。
 
Linux的路由规则都是通过内核实现的,这些路由表规则都是在内核功能内,也就是运行在内存中的。

IP Alias
比如eth0:0其就是在eth0上模拟出一个虚拟接口,使同一个网卡有多个ip,具有多个ip的功能就称为IP Alias,可以通过ifconfig或ip这两命令来实现(比如:ipconfig eth0:0 192.168.0.100 netmask 255.255.255.0 up)。

IP Alias最大的用途就是应急,具体包括:
1、测试用;
2、在一个实体网段中含有多个IP网段;
3、既有设备无法提供更多实体网卡时可以用上;

如何在开机时就启动IP Alias?
1、通过将ifconfig eth0:n命令写入/etc/rc.d/rc.local中,不过此方法有个缺点:就是当使用/etc/init.d/network restart命令后,该接口可能会被取消掉;
2、建立文件/etc/sysconfig/network-scripts/ifcfg-eth0:0,参考/etc/sysconfig/network-scripts/ifcfg-eth0建立即可,特别注意DEVICE=eth0:0;
不过当使用DHCP时,只能使用手动方式(用ifconfig)来设置IP Alias。

Linux带宽负载平衡实现参考:

一般来说,不要设置同一网段的不同IP在同一台主机上。

路由器的主要功能是转发网络数据包。
转发数据包的能力也是Linux内核所提供的。

路由器功能模拟:连接两个不同网段。

如何启动这个数据包转发功能呢?
将/proc/sys/net/ipv4/ip_forward内容从0设置成1即可,使用命令:echo "1" > /proc/sys/net/ipv4/ip_forward;
可以将上面这个命令写入/etc/rc.d/rc.local中,或者修改/etc/sysctl.conf中的net.ipv4.ip_forward = 1并执行命令sysctl -p使其立刻生效,就可以实现在Linux开机启动时启动数据包转发功能。

其中的sysctl命令是内核工作时用来直接修改内核参数的一个命令,更多功能参考man sysctl查询。

NAT主机与路由器的差别:
1、一般来说路由器会有两个网络接口,通过路由器本身的IP转发功能让两个网段可以互相沟通网络数据包;但如果两个接口一边是公共IP一边是私有IP,那么由于私有IP不能直接与公共IP沟通路由信息,此时就得要额外的“IP转换”功能了;
2、Linux的NAT主机可以通过修改数据包的IP表头数据来源或目标IP,来自私有IP的数据包可以转成NAT主机的公共IP,直接连上Internet。所以说,当路由器两端的网段分别是Public与Private IP时才需要NAT功能。


Zebra是一个路由软件包,提供基于TCP/IP路由服务,支持RIPv1,RIPv2,RIPng,OSPFv2,OSPFv3,BGP-4和BGP-4+等众多路由协议。Zebra还支持BGP特性路由反射器(Route Reflector)。除了传统的 IPv4路由协议,Zebra也支持IPv6路由协议。如果运行的SNMP守护进程(需要ucd-snmp)支持SMUX协议,Zebra还能支持路由协议MIBs。

深入解析使用Linux+Zebra构建软路由系统

 
在CentOS上使用的是quagga软件来提供zebra功能,quagga就是由zebra升级而来的。
安装quagga软件:yum install quagga
安装完成后,该软件所支持的各项动态路由协议都放置在/etc/quagga/目录内。各个路由服务的配置文件都在/etc/quagga/*.conf 。
注意:无论启动什么动态路由协议,都需要先启动zebra才行。
zebra这个服务的任务主要是修改Linux系统内核内的路由,所以它仅监听本机接口,并不会监听外部的接口。
zebra服务默认使用tcp 2601端口,在zebra中show ip route查询到的路由信息里,每行路由信息中开头字母K代表是以route命令直接加入的内核路由规则,C代表与网络接口相关的路由规则,S代表静态路由(Static route),R代表是通过RIP通信协议所设置的路由规则。
 
ripd服务可以在两个Router之间进行路由规则的交换与沟通,如果网络环境里有类似Cisco或是其他有提供RIP协议的路由器,也可以通过RIP让Linux Router与其他硬件路由器互相沟通。

RIP路由信息协议全方位解析
RIP协议的全称是一种内部网关协议(IGP),是一种动态路由选择,用于一个自治系统(AS)内的路由信息的传递。RIP协议是基于距离矢量算法(DistanceVectorAlgorithms)的,它使用“跳数”,即metric来衡量到达目标地址的路由距离。这种协议的路由器只关心自己周围的世界,只与自己相邻的路由器交换信息,范围限制在15跳(15度)之内,再远,它就不关心了。RIP应用于OSI网络七层模型的网络层。

什么是ARP Proxy?就是在Linux Router上预先规定“将192.168.10.20,192.168.10.30,192.168.10.40这三个IP的MAC都对应到Linux Router上”,由于是在局域网内,所以都是通过广播方式实现ARP协议所需要的IP与MAC的对应,每一个在eth1端的主机都会误判那3个IP是Linux Router所有,这样就能够让数据包传给Linux Router了。

ARP Proxy可以通过arp与route的功能,让路由器两端都在同一个网段内。

要让Linux做Router,最重要的是启动内核的IP Forward功能。

 

阅读(3192) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~