目录
路由及路由的配置
路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程。路由工作在OSI参考模型第三层--网络层的数据包转发设备;当主机在不同网段之间通信的时候,必须要为其设置一个默认路由;下面通过实例来演示路由的配置:
实验环境:采用VMware Workstation搭建四台主机,其中主机B、主机C两个网卡分别连接不同的网段;IP地址如下图所示
网段:10.0.0.0,20.0.0.0,30.0.0.0
实验目标:通过在主机B和主机C上添加路由信息,使得主机A和主机D能够相互通信
主机A到主机D的通信过程:由于主机A和主机B处于直连的网段中,当主机A和主机D通信时,主机A首先将数据包发送给默认网关,当主机B收到主机A发送的数据包时,由于数据包是要发往30网段的,所以需要在主机B的eth1接口上配置一条通往30网段的路由;这时候主机B就会通过主机C的eth0接口将数据包转发到30网段;由于主机C和主机D是直连的网段,所以主机C可以顺利地将数据包发送给主机D;当主机D收到数据包时,会向主机A返回一个确认的数据包,过程与上面的相同;需要在主机C的eth0接口上配置一条通往10网段的路由
1、给主机A增加一条指向主机B的默认路由:route add default gw 10.0.0.1
2、给主机D增加一条指向主机C的默认路由:route add default gw 30.0.0.1
3、给主机B增加一条指向30网段的路由信息:route add -net 30.0.0.0/24 dev eth1 (在重启服务或者系统重启之后将失效)
通过修改配置文件让路由永久生效:vim /etc/sysconfig/network-scripts/route-eth1
重启网络服务:service network restart
在主机B上开启路由转发功能:echo 1 > /proc/sys/net/ipv4/ip_forward (命令行配置的在重启服务或者系统重启将失效)
通过编辑配置文件永久开启路由转发功能:vim /etc/sysctl.conf
使所做的改变立即生效:sysctl -p
清空防火墙:iptables -F
4、给主机C增加一条指向10网段的路由信息:route add -net 10.0.0.0/24 dev eth0 (在重启服务或者系统重启之后将失效)
通过修改配置文件让路由永久生效:vim /etc/sysconfig/network-scripts/route-eth0
重启网络服务:service network restart
在主机B上开启路由转发功能:echo 1 > /proc/sys/net/ipv4/ip_forward (命令行配置的在重启服务或者系统重启将失效)
通过编辑配置文件永久开启路由转发功能:vim /etc/sysctl.conf
使所做的改变立即生效:sysctl -p
清空防火墙:iptables -F
测试主机A到主机D的通信:ping 30.0.0.2
注意:排除两台主机无法通信的原则是:数据包有去有回,即两台主机可以成功通信
如果两台主机无法通信,首先检查主机是否开启路由转发功能;其次检查主机的防火墙是否清空
动态路由器架设
上面通过演示配置静态路由信息实现不同网段间的通信,但是这种方法具有一定的局限性;当我们在面对一个复杂的网络,或者存在大量的不同网段时,静态配置路由信息的方式就显得十分困难;因为一方面我们需要将所有的非直连网段都配置路由信息,这样很容易遗漏出错,另一方面静态路由配置的方式工作量太大;面对这种情况,就需要用到动态配置路由信息的方法;
动态路由的原理是:两个网段的路由信息相互交换;例如上图中主机B能够识别直连的10网段和20网段,而主机C能够识别直连的20网段和30网段;这时候主机B和主机C会相互交换路由信息,主机B将30网段的路由信息添加到自己的路由表中,主机C将10网段的路由信息添加到自己的路由表中。这样就实现了动态路由的配置;动态路由配置是依据动态路由协议完成的,常用的协议有Rip协议、Ospf协议等
实验环境:采用VMware Workstation搭建四台主机,其中主机B、主机C两个网卡分别连接不同的网段;IP地址如下图所示
网段:10.0.0.0,20.0.0.0,30.0.0.0
实验目标:通过在主机B和主机C上配置动态路由,使得主机A和主机D能够相互通信
1、配置zebra控制台
在主机B和主机C上安装支持动态路由的包quagga:yum install quagga -y
切换到quagga目录,编辑zebra.conf配置文件:
注:zebra.conf配置文件是动态路由的控制台,rip、ospf等动态路由协议都是在zebra控制台上运行的
重启zebra服务:service zebra restart
设置zebra服务开机启动:chkconfig zebra on
2、配置rip动态路由协议(同样的方式在主机B和主机C上面配置rip协议)
拷贝ripd的配置文件:cp ripd.conf.sample ripd.conf
编辑拷贝的配置文件:vim ripd.conf
重启rip动态路由服务:service ripd restart
设置rip动态路由开机启动:chkconfig ripd on
查看frip协议的活跃端口:netstat -ntulp | grep :520
测试主机A到主机D的通信:ping 30.0.0.2
ARP代理Proxy
在局域网中主机之间都是通过MAC地址来通信的,当源主机需要和目标主机通信的时候首先会发送一个ARP广播,处于该局域网中的每一台主机都能够收到源主机发送的ARP广播包,而当目标主机收到来自源主机的ARP广播包的时候会向源主机返回一个数据包;这样就确认了两台主机之间的通信;
实验环境:采用VMware Workstation搭建三台主机,其中主机B的网卡连接两个不同的局域网;IP地址信息如下图
实验目标:由于主机A和主机C处于两个不同的局域网,但是IP地址却处于同一网段的特殊情况;(这是由于内网的IP地址可以自行设置并并使用)当主机A和主机C通信时,由于IP地址处于同一个网段,所以主机A会发送ARP广播,但是由于该局域网中并没有主机C的IP地址,所有主机A收不到ARP的恢复;下面通过在主机B上设置ARP代理,实现主机A到主机C的通信
实验原理:当主机A在该局域网中发送到主机C的ARP广播时,让主机B作为代理,代替接收到主机C的ARP请求;然后再通过在主机B上增加到主机C的路由从而将主机A的ARP请求转发给主机C;同样的,当主机C向主机A返回ARP数据包时通过在主机B上做代理及路由,从而实现通信
1、在主机B上增加到主机C的代理:arp -i eth0 -s 10.0.0.4 00:0C:29:0E:7E:8A pub
2、 在主机B上增加到主机C的单机路由:route add -host 10.0.0.4 eth1
3、同样,在主机B上增加到主机A的代理及单机路由:arp -i eth1 -s 10.0.0.2 00:0C:29:0E:7E:94 pub
route add -host 10.0.0.2 eth0
测试主机A和主机C的通信:ping 10.0.0.4 , ping 10.0.0.2
注:把握主机之间通信的原则:数据包是否有去有回;检查防火墙是否清空
原创文章,转载请注明出处