Chinaunix首页 | 论坛 | 博客
  • 博客访问: 488574
  • 博文数量: 82
  • 博客积分: 3003
  • 博客等级: 中校
  • 技术积分: 1285
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-11 15:27
文章分类

全部博文(82)

文章存档

2011年(1)

2010年(5)

2009年(63)

2008年(13)

我的朋友

分类: LINUX

2009-10-11 22:42:27

                        小方老师教的网络实验

实验目标:在虚拟化环境下,掌握网卡绑定的设置,建立有NAT规则的防火墙,修改路由规则,建立初步的计算机网络概念。

实验环境:rhel5.4,虚拟化安装,并在上面建立三个虚拟机

实验步骤:

l         虚拟化安装,并在上面建立三个虚拟机(Serverapple,orange,其中每个domainU均为4G,默认分区方法,内存为128M,采用virt-clone方法

l         通过修改配置文件分别为Serverapple,orange建立232个网卡,其中appleorange分别把两个网卡绑定,另外在domain0上建立两个网桥

l         将各个虚拟机通过桥接的方式连接起来,具体搭建方式如下图所示

l         测试各虚拟机的连通性

l         Server上建立NAT规则,观察网络的变化

l         修改路由规则,使得虚拟机能通过domain0与外界通信

 

实验详细过程以及遇到的问题(没有截图)

1.       首先,虚拟化安装domain0,然后在上面安装server虚拟机。其中,在虚拟机用的是网络安装(安装树在192.168.0.254上,通过http服务访问),但是这里出了问题:就是如果在建立PV时用的是128M内存,在安装过程中会卡在获取源文件,后来在小方的指导下把内存改为512M,然后再安装,这样就ok了。当sever安装完毕以后,再在虚拟机管理界面中将其内存改为128M

2.       下面开始用virt-clone克隆appleorange.

#virt-clone –original server –name apple –file /var/lib/xen/images/apple.img

#virt-clone –original server –name orange –file /var/lib/xen/images/orange.img

每个domainU的克隆大概5分钟就能完成

并在配置文件/etc/xen/server,apple,orange上修改设备,添加网卡

3.       下面开始根据上图为创建相应的网络接口。首先,在domain0上创建2个网桥,bridge0bridge1,这里的网桥相当与交换机的功能。

#vi /etc/sysconfig/network-scripts/ifcfg-bridge0

DEVICE=bridge0(设备名称)

BOOTPROTO=static(获得ip地址的方式)

TYPE=Bridge(设备类型)

ONBOOT=yes(是否自启动)

#vi /etc/sysconfig/network-scripts/ifcfg-bridge1

DEVICE=bridge1(设备名称)

BOOTPROTO=static(获得ip地址的方式)

TYPE=Bridge(设备类型)

ONBOOT=yes(是否自启动)

   apple上将两个网卡绑定

   #ifdown eth0(将网卡关闭才能修改相关的配置文件)

   #ifdown eth1

   #vi /etc/sysconfig/network-script/ifcfg-eth0

   添加以及修改如下:

   ONBOOT=no

   MASTER=bond0

   SLAVE=yes

BOOTPROTO=static

   #vi /etc/sysconfig/network-script/ifcfg-eth1

   添加以及修改如下:

   ONBOOT=no

   MASTER=bond0

   SLAVE=yes

BOOTPROTO=static

这样就将eth0eth1(注意,这里的eth0eth1在虚拟机配置文件中应该写成桥接到birige0上的设备,要注意核对该设备对应的MAC地址)

#vi /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

BOOTPROTO=static

ONBOOT=yes

IPADDR=192.168.100.100

NETMASK=255.255.255.0

注意,要添加绑定设备,还需要添加驱动模块

#vi /etc/modprobe.confg

Alias bond0 bonding

Options bond0 miimon=100 mode=1(主备模式)use_carrier=0

此时可以启动bond0设备(由于需要在orange也做相同的网卡绑定,只是ip设为192.168.200.100

   另外,在apple上还有一个网卡设备eth2,由于已经在配置文件中将其设置为动态获得ip地址的方式,这里获得的地址为192.168.0.100。另外在server的配置文件中,以及将eth0桥接到bridge0上,并且ip设置为192.168.100.254eth1桥接到bridge1上,ip192.168.200.254

   此时,已经完成上图的网络配置,如果在

   apple# ping 192.168.100.254(成功,因为使用了bridge0作为交换机,并且在同一个子网内,所以能成功Ping)

类似地,

Orange#ping 192.168.200.254(可以ping 通)

但是如果

Apple#ping 192.168.200.100(也就是在appleping orange)

发现ping不通,看看上图,可以发现他们之间的物理链路是连同的,只是在servers上的eth0eth1没有互相转发而导致不通,后来问小方,他说这是因为当server没有开启转发forward功能。需要做如下改动

#vi /etc/sysctl.conf里面

net.ipv4.ip_forward=1

或者修改/proc/sys/net/ipv4/ip_forward1(运行时的参数,即使修改也不能开机后保存,所以最好还是使用修改系统配置文件的方法,并需要使用sysctl –p将当前系统参数更新到内核中)

此时,appleorange能互通。

4.       appleorange上删除和添加网卡,主要使用下面的命令

#virsh detach-interface apple bridge –mac mac地址

此时与orange还是能ping通,证明了绑定的两个网卡在同一网络设备上,只要其中一个坏了,还是能保证网络的连通性,这种方式能提高系统的可靠性。

另外,可以使用如下命令添加网卡

#virsh attatch-interface apple bridge bridge0 –mac mad地址

5.       下面可是在server中设置NAT,使得从eth1出去的包都认为是来自192.168.200.254

Server#iptables –t nat –A POSTROUTING –o eth1 –j SNAT –to-source 192.168.200.254

Server#service iptables save

此时,可以通过在appleping 192.168.200.100然后再在orange端使用tcpdump来查看数据包,可以看到虽然包来自于192.168.100.100,但是在tcpdump看到的是200.254表明Server将其伪装了,清除刚才建立的NAT规则可以使用命令#service iptables stop

6.       最后,通过看上图可以看到只有apple是与外界相连,所以可以通过修改apple上的路由表,使得这几个虚拟机都可以与外界互通。使用route查看当前系统的路由表,只要添加192.168.0.0/24的网络号,其出口是eth2,而且默认网关是外界的地址(192.168.0.253

这样,只要想外发,就会通过eth2而出去,相应地也可以添加其他路由。

实验总结:

   在做这个实验过程中,另我印象最深刻的就是需要设置转发功能,才能使几个虚拟机连通起来,难道这不可以通过修改路由表来实现么?由于做实验的时间有限,这个问题还没来得及解决。还有,就是当遇到ping不通的很多时候,可以先看看当前系统的路由表,看看有没有相关的路由条目,还要注意默认路由能不能真正转到目标地址。最后,还通过这个实验看到NAT神奇伪装,觉得计算机网络真博大精深。另外,通过这个实验,实例化了很多概念,如绑定,NAT等,以及加深了计算机网络的认识。

 

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