首页 > 系统 > Linux > 正文

Linux下Xen 虚拟机的 NAT 网络配置教程

2024-08-27 23:58:57
字体:
来源:转载
供稿:网友

一般Xen虚拟机我们是用桥接(bridging)的方式直接连接网络,不过Xen还支持 routing 和 NAT 的方式配置虚拟机网络,本文我们来讲讲在linux下的Xen 虚拟机的如何配置 NAT 网络.

我们使用 Xen 虚拟机的时候一般都是用桥接(bridging)的方式把虚拟机(domU)直接暴露在网络上,就像网络上单独的一台服务器一样,这种方式简单好用,不用在 dom0 做任何的端口转发也不用任何 iptable 规则,不过除了 bridging 以外,Xen 还支持 routing 和 NAT 的方式配置虚拟机网络,比如我们想在一台物理服务器上安装5个虚拟机,这5个虚拟机能彼此访问也可以访问外网,但是外网不能直接访问这5个虚拟机,或者我们只有一个公网 IP 地址,但是需要5个虚拟机都能上网,这时候就可以用到 Xen 的 NAT 模式.

首先确认系统的网络配置干净,上面没有复杂的网络设置,也没有以前配置留下来的网络桥接,因为 Xen 自带的脚本 network-nat 不是那么聪明,无法在复杂一点的网络设置里面正确配置.

修改 Xen 的配置文件,确认下面几项配置后重启 xend,必要的话重启系统:

  1. # vi /etc/xen/xend-config.sxp 
  2. ... 
  3. #(network-script network-bridge) 
  4. (network-script network-nat) 
  5. ... 
  6. #(vif-script vif-bridge) 
  7. #(vif-script     vif-route) 
  8. (vif-script     vif-nat) 
  9. ... 
  10.  
  11. # /etc/init.d/xend restart 
  12. Stopping xend daemon:                                      [  OK  ] 
  13. Starting xend daemon:                                      [  OK  ] 

修改虚拟机 domU 的配置文件,加上或者修改 vif 这行配上对应的内部网 IP 地址,这个内部网 IP 是自己随意设定的:

  1. # vi /etc/xen/domu01 
  2. ... 
  3. vif = [ "ip=10.0.0.1" ] 
  4. ... 

启动虚拟机后修改网络配置,如果虚拟机是 Ubuntu 的话,网络配置在 /etc/network/interfaces,修改后重启:

  1. # vi /etc/network/interfaces 
  2. auto lo 
  3. iface lo inet loopback 
  4.  
  5. auto eth0 
  6. iface eth0 inet static 
  7. address 10.0.0.1 
  8. gateway 10.0.0.254 
  9. netmask 255.255.255.0 
  10.  
  11. # reboot 

本来还需要在 dom0 设定内核转发的(echo 1 > /proc/sys/net/ipv4/ip_forward),还记得上面修改 xend-config.sxp 时碰到的脚本 network-nat 吗?是的,那个脚本已经帮我们设置好 NAT 转发了,我们不用再添足了,也不用自己设置 iptable 规则了~

  1. # vi /etc/xen/scripts/network-nat 
  2. ... 
  3. op_start() { 
  4.         echo 1 >/proc/sys/net/ipv4/ip_forward 
  5.         iptables -t nat -A POSTROUTING -o ${netdev} -j MASQUERADE 
  6.         [ "$dhcp" != 'no' ] && dhcp_start 
  7. }  //Vevb.com 
  8. ...

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表