因为要在家里的机器上模拟DHCP环境,但是受家里机器和网络条件的限制,最后想到是不是可以使用VirtualBox来模拟这种情况,说做就做,下面就是我的实践步骤。

1. 首先,为了不影响家里其他机器上网以及其他虚拟机的使用,我们为每台虚拟机都分配两个网卡
第一块网卡使用NAT模式,用来连接外网。
第二块网卡使用Host-Only模式,用来连接内网。

2. 由于 VirtualBox 会默认创建一个”VirtualBox Host-Only Ethernet Adapter”的网络,并且这个网络默认会开启的 DHCP 服务,为了不影响其它虚拟机,我们新建一个Host-Only网络

打开 “管理 -> 全局设定 -> 网络 -> 仅主机(Host-Only)网络”,然后添加一个,此时会生成一个名为 “VirtualBox Host-Only Ethernet Adapter #2″ 的网络,配置信息如下:

[plain]  view plain  copy
 print ?
  1. 主机虚拟网络界面  
  2. IPv4地址:192.168.145.1  
  3. IPv4网络掩码:255.255.255.0  
  4.    
  5. DHCP 服务器  
  6. 切记不要选中 "启用服务器"  

3. 新建两个CentOS6的虚拟机,分别指定两个网卡
第一块网卡使用NAT模式,用来连接外网。
第二块网卡使用Host-Only模式,这里切记要选择上一步新建的 “VirtualBox Host-Only Ethernet Adapter #2″。

4. 启动第一个虚拟机,我们将要这台机器作为DHCP服务器

4.1 修改网络配置,由于”VirtualBox Host-Only Ethernet Adapter #2″没有启用DHCP,所以我们要为eth2指定一个静态IP,这里我们我们使用如下配置

[plain]  view plain  copy
 print ?
  1. Address: 192.168.145.101  
  2. Netmask: 255.255.255.0  
  3. Gateway: 192.168.145.1  

修改完成后使用 “sudo service network restart” 重启网络,此时使用 ifconfig 查看网络

[plain]  view plain  copy
 print ?
  1. ...  
  2. eth1      Link encap:Ethernet  HWaddr 08:00:27:1F:20:36    
  3.           inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0  
  4.           inet6 addr: fe80::a00:27ff:fe1f:2036/64 Scope:Link  
  5.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
  6.           RX packets:18333 errors:0 dropped:0 overruns:0 frame:0  
  7.           TX packets:11113 errors:0 dropped:0 overruns:0 carrier:0  
  8.           collisions:0 txqueuelen:1000   
  9.           RX bytes:22103029 (21.0 MiB)  TX bytes:605438 (591.2 KiB)  
  10.    
  11. eth2      Link encap:Ethernet  HWaddr 08:00:27:06:C0:75    
  12.           inet addr:192.168.145.101  Bcast:192.168.145.255  Mask:255.255.255.0  
  13.           inet6 addr: fe80::a00:27ff:fe06:c075/64 Scope:Link  
  14.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
  15.           RX packets:131 errors:0 dropped:0 overruns:0 frame:0  
  16.           TX packets:112 errors:0 dropped:0 overruns:0 carrier:0  
  17.           collisions:0 txqueuelen:1000   
  18.           RX bytes:22247 (21.7 KiB)  TX bytes:22532 (22.0 KiB)  
  19. ...  
4.2 安装 dhcp 软件包

[plain]  view plain  copy
 print ?
  1. sudo yum install dhcp  

4.3. 编辑 dhcp 配置文件 /etc/dhcp/dhcpd.conf,可以参考 /usr/share/doc/dhcp-*/dhcpd.conf.sample,下面是我使用的配置文件内容

[plain]  view plain  copy
 print ?
  1. ddns-update-style interim;      #表示dhcp服务器和dns服务器的动态信息更新模式    
  2. ignore client-updates;          #忽略客户端更新    
  3.   
  4.   
  5. subnet 192.168.145.0 netmask 255.255.255.0 {         #意思是我所分配的ip地址所在的网段为192.168.145.0 子网掩码为255.255.255.0  
  6.   range 192.168.145.200 192.168.145.210;             #租用IP地址的范围  
  7.   option domain-name-servers ns.example.org;  
  8.   option domain-name "example.org";  
  9.   option routers 192.168.145.101;                    #路由器地址,这里是当前 dhcp 机器的IP地址  
  10.   option subnet-mask 255.255.255.0;                  #子网掩码  
  11.   default-lease-time 600;                            #默认租约时间  
  12.   max-lease-time 7200;                               #最大租约时间  
  13.   host myhost {                                      #设置主机声明  
  14.     hardware ethernet 08:00:27:2C:30:8C;             #指定dhcp客户的mac地址    
  15.     fixed-address 192.168.145.155;                   #给指定的mac地址分配ip  
  16.   }  
  17. }  

4.4. 编辑 /etc/rc.d/init.d/dhcpd 文件,将其中的
[plain]  view plain  copy
 print ?
  1. user=dhcpd  
  2. group=dhcpd  
  3.   
  4. 改为  
  5.   
  6. user=root  
  7. group=root  

注: 如果不做此修改,启动DHCP时在 “/var/log/messages” 文件里会有 “Can’t chown new lease file: Operation not permitted” 错误。

4.5. 启动 DHCP 服务

[plain]  view plain  copy
 print ?
  1. sudo service dhcpd start  

5. 测试,启动第二台虚拟机器,然后使用 ifconfig 来查看网络情况,可以看到申请到的ip地址为 192.168.145.200

[plain]  view plain  copy
 print ?
  1. ...  
  2. eth1      Link encap:Ethernet  HWaddr 08:00:27:1C:29:8A    
  3.           inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0  
  4.           inet6 addr: fe80::a00:27ff:fe1c:298a/64 Scope:Link  
  5.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
  6.           RX packets:15 errors:0 dropped:0 overruns:0 frame:0  
  7.           TX packets:19 errors:0 dropped:0 overruns:0 carrier:0  
  8.           collisions:0 txqueuelen:1000   
  9.           RX bytes:10383 (10.1 KiB)  TX bytes:1935 (1.8 KiB)  
  10.    
  11. eth2      Link encap:Ethernet  HWaddr 08:00:27:E4:60:1A    
  12.           inet addr:192.168.145.200  Bcast:192.168.145.255  Mask:255.255.255.0  
  13.           inet6 addr: fe80::a00:27ff:fee4:601a/64 Scope:Link  
  14.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
  15.           RX packets:53 errors:0 dropped:0 overruns:0 frame:0  
  16.           TX packets:17 errors:0 dropped:0 overruns:0 carrier:0  
  17.           collisions:0 txqueuelen:1000   
  18.           RX bytes:7049 (6.8 KiB)  TX bytes:2430 (2.3 KiB)  
  19. ...  

原文链接:http://blog.csdn.net/kongxx/article/details/43523231
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐