手动设置Xen Host网络

本文介绍了如何手动配置Xen Host网络,包括关闭NetworkManager,设置Bridge网络,配置ifcfg文件,修改iptables以允许转发,并提供了NAT方式的详细步骤,确保虚拟机可以访问外网。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在《虚拟化与云计算系列文章:四、启动一个xen半虚拟化PV客户机》中,使用了网络源来安装PV Guest OS,今天按照此方法再一次安装时,发现新的环境中,Xen Host网络没配好,导致虚拟机无法访问外网,也就无法自动下载镜像和安装Guest系统。上次没有网络配置这一步的原因可能是,Host因为安装有Libvirt,所以存在一个直接可用的virbr0,而且libvirt自动配置好了iptables。然而这次是新安装的Host系统,网络环境需要一步一步手动配置。
以CentOS6/Redhat6 Host为例,假设Host端有两个网卡eth0和eth1,并且eth1连接外网,eth0空闲。
Bridge方式:
1)关闭NetworkManager服务
# chkconfig NetworkManager off
# chkconfig network on
# service NetworkManager stop
# service network start
2)设置ifcfg配置文件
为了在RedHat类系统中创建一个桥接网络配置,需要在/etc/sysconfig/network-scripts/目录下设置两个ifcfg文件:
ifcfg-eth0
DEVICE=eth0
HWADDR=00:16:76:D6:C9:45
ONBOOT=yes
BRIDGE=xenbr0
NM_CONTROLLED=no
ifcfg-xenbr0自动获取IP方式:
DEVICE=xenbr0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
DELAY=0
NM_CONTROLLED=no
ifcfg-xenbr0静态IP方式,这里我们采用效仿libvirt给xenbro设置一个静态IP192.168.122.1:
DEVICE=xenbr0
TYPE=Bridge
BOOTPROTO=static
BROADCAST=192.168.122.255
IPADDR=192.168.122.2
NETMASK=255.255.255.0
ONBOOT=yes
DELAY=0
NM_CONTROLLED=no
重启网络
# service network restart

3)修改iptables允许bridge转发
注:在配好NAT方式后,发现即便iptables中没有这个配置也是可以的。domU之间可以互相Ping通,也可以访问外网。所以这一步可以省略。
# echo "-I FORWARD -m physdev --physdev-is-bridged -j ACCEPT" > /etc/sysconfig/iptables-forward-bridged
# lokkit --custom-rules=ipv4:filter:/etc/sysconfig/iptables-forward-bridged
# service iptables restart

  在没有设置NAT方式的iptables和sysctl.conf的情况下,仅设置允许bridge转发,当虚拟机的配置是bridge=xenbr0时,虚拟机之间现在已经可以互通了。但是不能访问外网。

NAT方式:
配置iptables的Masquerading
比如我的网卡设置如下:

虚拟机设置192.168.122.x网段,默认网关为192.168.122.1,因此虚拟机到xenbr0(eth0)打通,通过配置MASQUERADE,将192.168.122.x的数据包伪装来经由eth1访问外网,并且还要设置FORWARD。
# iptables -t nat -A POSTROUTING -o eth1 -s 192.168.122.0/24 -j MASQUERADE  
下面的省略也可以。。。
# iptables -A FORWARD -d 10.10.10.0/24 -o xenbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -s 10.10.10.0/24 -i xenbr0 -j ACCEPT
# iptables -A FORWARD -i xenbr0 -o xenbr0 -j ACCEPT
# iptables-save > /etc/sysconfig/iptables
# service iptables restart

# vim /etc/sysctl.conf
   net.ipv4.ip_forward = 1
# sysctl -p /etc/sysctl.conf

精简后的iptables只有MASQUERADE

domU之间可以互通,domU也可以访问外网。。

5)查看验证
经过上述4步,Host端的网络基本配置完毕,可以重启一下,查看ifconfig和brctl如下:



用xl create -c /etc/xen/虚拟机配置文件 创建一个虚拟机(参考系列文章第四篇,虚拟机网络配置为vif = [ 'bridge=xenbr0' ]),再brcrl查看:


如果Host上没有运行dhcpd,则需要为虚拟机手动分配和xenbr0在一个网段的IP地址。
一般情况下,只要Host和Guest能够互ping通,则IP和网桥都是没太大问题的,主要的设置可能就是防火墙转发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值