红联Linux门户
Linux帮助

在一台机器内用中标麒麟7创建纯虚拟两级网络环境的试验

发布时间:2016-08-22 19:41:09来源:红联作者:RlLaoK
准备学习网络有关知识,又不想在真实网络中实验,一是怕设置不好,自己受害;二是怕学习不好,别人受害,因此决定用中标麒麟在本机上虚拟出一个多级网络试验环境。由于本来对网络就一知半解,所以设置的过程中出现了好多现象也不知是什么原因,也可能过程、步骤并不完美精炼,好在最后成功了,这些不解之处就留待学习后再琢磨吧,当然有高手给点拨一下最好了,欢迎拍砖!。下面说说大体过程:
0、网络架构:虚拟一台linux服务器,一台linux客户机和一台win客户机,构成一个内部网络,主要用于学习局域网有关知识;这台虚拟服务器与本机构成另一个网络,模拟外部网络,用于学习网间(互联网)有关知识。虚拟服务器同时担负着内部网的网关和路由器、dns功能。这个纯虚拟环境不与真实外网有任何联系。
1、创建虚拟服务器:中标麒麟7捆绑了VirtualBox,非常好用。在虚拟服务器设置中有两个关键步骤,一是先在VirtualBox全局设定中为本机创建Hostonly虚拟网卡,用于后续以Hostonly模式连接虚拟服务器;同时取消其dhcp服务器功能,这样我们可以自由设置各虚拟机不同网段的网络地址。第二个关键是设置虚拟linux服务器参数时要设定两个网卡,一个为Hostonly模式--准备与本机连接,ip地址与本机的Hostonly网卡在一个网段;一个为“内部网络”模式--准备与两个客户机连接(好象子网间有个Hub或交换机,并且与本机不直接相连),三者ip地址在另一个网段。
关于VirtualBox的各种网络连接模式,网络上有很多讲解,我理解NAT模式是真实与虚拟通过网络地址转换直接相通,里面能看见外边,外边好像看不见里面;桥接模式是虚拟捆绑到真实网卡上里外互通,但真实网卡不通时虚拟网络好像也不存在了;内部模式是只有各虚拟机之间互通;Hostonly模式是本机、各虚拟机可以互通,与真实外网不通,符合我设想的网络架构。
2、创建两个虚拟客户机,网络连接模式选择“内部网络”。
3、配置虚拟linux服务器网络参数:我用的是nmcli命令,具体用法太?嗦,并且不同linux发行版本的命令格式还不完全相同,自己man吧。要设置connection.autoconnect=yes(开机自动连网)和ipv4.method=manual(手动设置ip地址)、addresses=ip地址和掩码。启动并配置dns服务。配置启动两个网卡间ip转发功能:在/etc/sysctl.conf中增加一行net.ipv4.ip_forward=1。(为简单起见,各个虚拟机均禁用防火墙及SELinux,如果有的话)
第一次试验时,在虚拟服务器上除了两个配置的网卡连接外,还多出了一个vboxbr0(大概是这个名)的连接,导致dnsmasq(dns服务)怎么设置都不好使。最后经过删掉重建,建了再删等不知多少步,稀里糊涂地没了?!
4、配置两个虚拟客户机,大体与上面差不多,网关、dns地址设为虚拟服务器的地址。
5、配置本机Hostonly连接参数:为了本机也能Ping通客户机并且使用虚拟网络的各个域名,本机Hostonly连接也需要设置ipv4.dns和ipv4.routes,但采取3、4的方式设置并保存行不通,可能是该网卡驱动为VirtualBox动态加载的原因(我猜是不受linux内核直接管理),于是写了一个设置脚本,等各台虚拟机全正常启动完毕后,执行一下这个脚本就通了。
测试:本机、各虚拟机之间均可互相Ping通,域名均可用,本机和虚拟客户机之间均可traceroute并正确显示有两个HOPs。


最后,其实Hostonly模式(包括本次设置的所有虚拟机)也可以与真实外网相通:将虚拟服务器网关地址设为本机Hostonly网卡地址,本机的/proc/sys/net/ipv4/ip_forward内容临时改为1(永久配置文件为/etc/sysctl.conf),各虚拟机增加真实外网的dns服务器地址,就可以如同真实机器一般访问互联网。
文章评论

共有 0 条评论