私はこれを機能させるために過去数日間を費やしましたが、この投稿の下部にあいまいまたは時代遅れのガイドがあります。私が従おうとしたいくつかのガイドへのリンクを追加しました。 hetznerに専用のマシンがあり、仮想化をセットアップしたいです。vmを作成できます。ネットワークに問題はありません。hetznerネットワークでは、追加のサブネットをホストメインにルーティングするため、単純なブリッジを使用できません。 IPであり、MACアドレスがホストマシンと一致しない場合はパケットを受け入れません。
ルーティングされたネットワークを使用して、eth0接続を介してサブネットをルーティングする必要があることがわかりました。何度も試しましたが、ネットワークを機能させることができず、仮想マシンからdom0にさえアクセスできません。通常、dom0から割り当てたアドレスからサーバーにSSH接続できます。tcpdumpを実行しましたが、domU用ではないのにpingパケットがdom0に到達していますが、そこで停止し、domUに到達していません。
私が試した1つの解決策は、virtualizorを使用することでした。それが最初に機能したのは、その構成を取得して、コントロールパネルなしで複製することでした。これは、必要がなく、不要なものにお金を払うのは無意味に思えるからです。私はこのマシンとその仮想マシンの唯一のユーザーであるため、私には。
私は主にDebianJessieを使用しているので、debianベースのオペレーティングシステムとxlツールを使用しています。OSをセキュリティアップデートの妥当なサポート範囲内に収めたいので、Ubuntuも14.04以降で試しました。問題はインターフェースファイルの設定だと思いますが、何が悪いのかわかりません。
どんな助けでも大歓迎です
ルーティングされたXEN VM LVMに基づく
Hetzner XenIPv4サブネット+ IPv6サブネット
Hetzner専用サーバーでのXENのセットアップ
HetznerでのUbuntu 12.04とXenのセットアップ
Hetzner、OVH、およびOnline.netサーバーでのルーテッドモードの仮想マシンネットワーク構成は、次のようなネットワークがあるため、直感に反します。
Host IP: 192.168.0.2
Host Netmask: 255.255.255.0 (/24)
Host Gateway: 192.168.0.1
Guest IP: 10.0.0.1
Guest Netmask: 255.255.255.255 (/32)
Guest Gateway: 192.168.0.1
Guest MAC: 02:00:00:01:02:03
上記の例は単なる例示であり、前述のホスティングプロバイダーのいずれかから期待できるサンプルIPアドレスではありません。
え?何? 1つのIPアドレス(10.0.0.1/32
)だけのサブネットを作成するにはどうすればよいですか?ゲートウェイの余地はありません!ゲートウェイが非常に異なるサブネット(192.168.0.0/24
)にあるのはなぜですか?
これらは、LinuxとWindowsがネットワークの健全性チェックに失敗する原因となる質問です。これは、ネットワークが意味をなさないためです。彼らは、ゲートウェイに到達できないと考えています。
Hetzner、OVH、およびOnline.Netとにかくゲートウェイに到達できるようにする、いくつかのネットワークトリックを使用します。
幸い、LinuxとWindowsの両方で、サニティチェックをオーバーライドし、上記のインターフェイス構成を設定できます。
これが最も簡単です。ホストで行う必要のあるほとんどの構成は、ブリッジを作成することです。
Debian/Ubuntuで、管理/インターネットインターフェースがeth0
の場合、/etc/network/interfaces
を編集して、次のようにブリッジbr0
を作成できます。
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 192.168.0.2 # Host IP
netmask 255.255.255.0 # Host Netmask
gateway 192.168.0.1 # Host Gateway
metric 0
bridge_ports eth0
bridge_stp on
bridge_fd 0
bridge_maxwait 0
Sudo service networking restart
を実行して、ブリッジネットワーク構成を有効にします。
RHEL/CentOSで、管理/インターネットインターフェイスがeth0
の場合、/etc/sysconfig/network-scripts/ifcfg-eth0
を編集して、次のようにブリッジbr0
を使用できます。
TYPE="Ethernet"
BOOTPROTO="none"
DEVICE="eth0"
ONBOOT="yes"
NM_CONTROLLED="no"
BRIDGE="br0"
次に、新しいファイル/etc/sysconfig/network-scripts/ifcfg-br0
を作成して、ブリッジを構成します。
DEVICE="br0"
BOOTPROTO="static"
IPADDR="192.168.0.2" # Host IP
NETMASK="255.255.255.0" # Host Netmask
GATEWAY="192.168.0.1" # Host Gateway
ONBOOT="yes"
TYPE="Bridge"
NM_CONTROLLED="no"
Sudo service network restart
を実行して、ブリッジネットワーク構成を有効にします。
サーバーに接続したままの場合は、おめでとうございます。ブリッジが機能しています。
純粋な Xen xl (libxenlight)では、仮想インターフェイス構成に書き込む必要があるのはこれだけです。
vif=[ 'mac=02:00:00:01:02:03,bridge=br0' ]
02:00:00:01:02:03
は、Hetzner、OVH、またはOnline.netがゲストのネットワーク用に提供したMACアドレスであり、br0
は、上記で構成したブリッジであることに注意してください。
libvirt を使用している場合は、<devices>
タグ内に次のインターフェイスを追加します。
<interface type='bridge'>
<mac address='02:00:00:01:02:03'/>
<source bridge='br0'/>
</interface>
この仮想インターフェイスを適切なMACアドレスとブリッジで構成したら、ゲストを起動してコンソールに接続します(xl console domU
、virsh console domU
、または該当する場合はゲストのVNCセッションに接続します)。
ここに醜い部分があります。ネットワークの健全性チェックをオーバーライドする方法は、オペレーティングシステムによって異なります。 Debian/Ubuntu、RHEL/CentOS、およびMicrosoft Windows NT。
Debian/Ubuntuで、インターフェースがeth0
と呼ばれる場合は、これを/etc/network/interfaces
に書き込みます。
auto eth0
iface eth0 inet static
address 10.0.0.1 # Guest IP
broadcast 10.0.0.1 # Guest IP
netmask 255.255.255.255
gateway 192.168.0.1 # Guest Gateway, a.k.a. Host Gateway
post-up route add 192.168.0.1 dev eth0
post-up route add default gw 192.168.0.1
pre-down route del 192.168.0.1 dev eth0
pre-down route del default gw 192.168.0.1
post-up
およびpost-down
iproute2コマンドは、別のサブネット上にある場合でも、とにかくゲートウェイを適用するようにオペレーティングシステムに指示します。
Sudo service networking restart
を実行すると、ゲストIP10.0.0.1
を介してゲストにアクセスできるようになります。
RHEL/CentOSで、インターフェースがeth0
と呼ばれる場合は、これを/etc/sysconfig/network-scripts/ifcfg-eth0
に書き込みます。
DEVICE="eth0"
BOOTPROTO="none"
ONBOOT="yes"
USERCTL="no"
PEERDNS="yes"
TYPE="Ethernet"
NETMASK="255.255.255.255"
IPADDR="10.0.0.1" # Guest IP
GATEWAY="192.168.0.1" # Guest Gateway, a.k.a. Host Gateway
ARP="yes"
HWADDR="02:00:00:01:02:03" # Guest MAC
次に、以下を/etc/sysconfig/network-scripts/route-eth0
に書き込みます。
192.168.0.1 dev eth0
default via 192.168.0.1 dev eth0
このファイルは、別のサブネット上にある場合でも、とにかくゲートウェイを適用するようにiproute2に指示します。
Sudo service network restart
を実行すると、ゲストIP10.0.0.1
を介してゲストにアクセスできるようになります。
Microsoft Windows NTで、コントロールパネルの[ネットワーク接続]に移動し、インターフェイスを右クリックして、[プロパティ]をクリックします。 [ネットワーク]タブで、[インターネットプロトコルバージョン4(TCP/IPv4)]を選択し、[プロパティ]をクリックします。図のようにフィールドに入力します。
[OK]をクリックすると、次の警告が表示されます。
「OK」をクリックして、とにかくゲートウェイを使用することを確認します。
数秒後、ゲストIP10.0.0.1
を介してゲストに連絡できるようになります。
残念ながら、これは不可能です。どういうわけかゲストのDHCPDISCOVERを傍受したとしても、DHCPサーバーはあなたに10.0.0.1/32
を割り当て、ゲートウェイは192.168.0.1
であることを通知しません。そして、DHCPクライアントはこの奇妙な構成を受け入れるつもりはありません。
DHCPを設定するには、サブネット内にゲートウェイを備えた適切に構造化されたネットワークが必要です。これを行う唯一の方法は、プライベートネットワーク(172.16.0.0/12
)を作成し、ゲートウェイ(172.16.0.2
)を介してゲストのプライベートIPアドレス(10.0.0.1
)とそのパブリックIPアドレス(172.16.0.1
)の間でネットワークアドレス変換を行うことです。
上記のすべての手順を確認しましたが、プライベートIPからパブリックIPへの1対1 /基本NATの作成に成功しませんでした。その理由の一部は、ネットワークを構築するためにやるべきことがたくさんあるということです。
ネットワークは次のようになります。
Guest Public IP: 10.0.0.1
Guest Private IP: 172.16.0.2
Guest Netmask: 255.240.0.0 (/12)
Guest Gateway: 172.16.0.1
次に、ホストは、ゲストゲートウェイ10.0.0.1
を介してゲストパブリックIP172.16.0.2
とゲストプライベートIP172.16.0.1
の間でトラフィックを転送します。
OpenStack ( libvirtを介してXenをサポート )は、ネットワークの抽象化を通じて、このNATセットアップとプライベートサブネットDHCPサーバーを提供する可能性があります OpenStack Neutron ですが、OpenStack自体のセットアップは非常に面倒です。
単一ノードのOpenStackインストールとNovaインスタンス/ゲスト/サーバー用のNeutronプライベートネットワークを実行することはできましたが、プライベートIPアドレス(172.16.0.0/12
)を外部ネットワークIPにNATする方法がわかりませんでしたOpenStackはHetzner、OVH、およびOnline.netの仮想マシン用の通常とは異なるネットワーク構造をサポートしていないため、アドレス(10.0.0.1/32
、10.0.0.2/32
など)。これは未解決の問題のままです。