如何在Xen客户端中启用Hetzner的DS服务器(Debian Etch)

如何在Xen客户端上启用网络Hetzner的DS服务器(Debian Etch)

本教程将介绍如何在Hetzner的DS服务器上的Xen guest虚拟机(domU)中启用网络 。 使用DS服务器,您可以获得八个附加IP(或更多)的子网 - 通常该子网不同于服务器主IP的子网。 问题是这些附加的IP被绑定到主机系统的MAC地址(dom0) - 如果Hetzner的路由器来自一个未知的MAC地址,它将转发IP数据包。 这意味着我们不能使用Xen的桥接模式,但必须切换到Xen的路由模式,其中主机系统(dom0)充当guest虚拟机的网关。

我不会保证这将为您工作!

1初步说明

我已经在Debian Etch Xen服务器上测试了这个,现有的Xen客户端,我不得不从桥接模式切换到路由模式。 我没有在Debian Lenny上测试过这个,但是我猜并没有太大的不同。

我假设您根据本教程在DS服务器(运行Debian Etch)上设置Xen: Debian Etch和Xen从Debian存储库

我在服务器vm.example.com上有一个现有的Xen guest虚拟机。 现在我需要配置路由模式。

  • DS服务器的IP(dom0): 88.198.70.47
  • 网关: 88.198.70.33
  • 网络掩码: 255.255.255.224
  • 附加子网: 78.47.159.32/255.255.255.240 (可用IP地址: 78.47.159.33 - 78.47.159.46
  • 将从用于vm.example.com (domU)的子网中的IP: 78.47.159.44

2现有网络配置

dom0:

在主机系统上,网络配置目前看起来如下:

cat /etc/network/interfaces
### Hetzner Online AG - installimage
# Loopback device:
auto lo
iface lo inet loopback

# device: eth0
auto eth0
iface eth0 inet static
  address 88.198.70.47
  broadcast 88.198.70.63
  netmask 255.255.255.224
  gateway 88.198.70.33

# default route to access subnet
up route add -net 88.198.70.32 netmask 255.255.255.224 gw 88.198.70.33 eth0

在客户端,网络配置如下:

domU:

cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
 address 78.47.159.44
 gateway 78.47.159.33
 netmask 255.255.255.240

 # post-up  ethtool -K eth0 tx off

#
# The commented out line above will disable TCP checksumming which
# might resolve problems for some users.  It is disabled by default
#
up route add -net 78.47.159.32 netmask 255.255.255.240 gw 78.47.159.33 eth0

在我们继续之前,请确保ethtool包安装在guest虚拟机上:

apt-get install ethtool

3配置主机系统(dom0)

dom0:

首先备份/ etc / network / interfaces

cd /etc/network
cp interfaces interfaces.old

然后打开/ etc / network / interfaces ,看看如下:

vi /etc/network/interfaces
### Hetzner Online AG - installimage
# Loopback device:
auto lo
iface lo inet loopback

# device: eth0
auto eth0
iface eth0 inet static
  address 88.198.70.47
  netmask 255.255.255.255
  gateway 88.198.70.33
  pointopoint 88.198.70.33

删除广播上线路由加 入网线很重要。 网络掩码必须更改为255.255.255.255 ,我们添加一个与网关相同IP的点对点线路(是的,它是pintopoint ,而不是点对点!)。

接下来,我们必须修改文件/etc/xen/xend-config.sxp/etc/xen/scripts/vif-common.sh ,以便我们先创建这两个文件的备份副本:

cd /etc/xen
cp xend-config.sxp xend-config.sxp.old
cd scripts
cp vif-common.sh vif-common.sh.old

现在打开/etc/xen/xend-config.sxp并注释掉(网络脚本网桥)(vif-script vif-bridge)行,并添加(网络脚本网络路由)(vif-script vif -route)代替:

vi /etc/xen/xend-config.sxp
[...]
#(network-script network-bridge)
#(vif-script vif-bridge)
(network-script network-route)
(vif-script     vif-route)
[...]

打开/etc/sysctl.conf并确保你有以下行:

vi /etc/sysctl.conf
[...]
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
net.ipv4.conf.default.proxy_arp=1
[...]

sysctl -p

阅读新配置。

打开/etc/xen/scripts/vif-common.sh并修改函数ip_of()

vi /etc/xen/scripts/vif-common.sh

注释出ip addr show“$ 1”| awk“/^.*inet.*$1\$/{print \ $ 2}”| sed -n'1 s,/。* ,, p'line并添加ip -4 -o addr show primary dev $ 1 | awk'$ 3 ==“inet”{print $ 4; exit}'| sed的#/。* ##'代替:

[...]
##
# ip_of interface
#
# Print the IP address currently in use at the given interface, or nothing if
# the interface is not up.
#
function ip_of()
{
  #ip addr show "$1" | awk "/^.*inet.*$1\$/{print \$2}" | sed -n '1 s,/.*,,p'
  ip -4 -o addr show primary dev $1 | awk '$3 == "inet" {print $4; exit}' | sed 's#/.*##'
}
[...]

然后重新启动系统:

reboot

4配置访客系统

dom0:

重新启动后,请启动客户系统,例如:

xm create /etc/xen/vm.example.com.cfg

然后连接到其控制台:

xm console vm.example.com

domU:

现在在客系统中,备份/ etc / network / interfaces ...的备份

cd /etc/network
cp interfaces interfaces.old

...并编辑/ etc / network / interfaces ,使其看起来如下:

vi /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
 address 78.47.159.44
 gateway 88.198.70.47
 netmask 255.255.255.255
 pointopoint 88.198.70.47
 post-up ethtool -K eth0 tx off

地址行包含客人的IP; 网关线必须包含主机系统的IP地址(dom0)( 88.198.70.47 ),而不是主机系统的网关( 88.198.70.33 )! 网络掩码必须为255.255.255.255重点线路必须再次包含主机系统的IP地址(dom0)( 88.198.70.47 )(是的,它是pintopoint ,而不是点对点!)。

而已! 现在我们可以从主机系统重新启动客人:

dom0:

xm reboot vm.example.com

之后,您应该能够连接到访客并ping通,您还应该能够从访客内部ping其他主机。

5链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏