CentOS専用サーバー(Hetzner)があります:
IP:aa.bb.cc。16
ゲートウェイ:aa.bb.cc.1
ネットマスク:255.255.255.255
および追加のIP(DebianがインストールされたゲストVM(libvirt)):
IP:aa.bb.cc。61
ゲートウェイ:aa.bb.cc.1
ネットマスク:255.255.255.192
Hetznerのドキュメントを使用してルーティングされた構成をセットアップしました( https://wiki.hetzner.de/index.php/Netzkonfiguration_CentOS/en#Routed_.28brouter.29 )。
ホスト構成:
cat /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
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.eth0.send_redirects=0
net.ipv4.conf.br0.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
cat/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
HWADDR=XX:XX:XX:XX:XX:XX
BOOTPROTO=none
IPADDR=aa.bb.cc.16
NETMASK=255.255.255.255
SCOPE="peer aa.bb.cc.1"
IPV6INIT=yes
IPV6ADDR=2a01:4f8:yyy:yyyy::2/128
IPV6_DEFAULTGW=fe80::1
IPV6_DEFAULTDEV=eth0
cat/etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
ONBOOT=yes
TYPE="Bridge"
BOOTPROTO=static
IPADDR=aa.bb.cc.16
NETMASK=255.255.255.255
IPV6INIT=yes
IPV6ADDR=2a01:4f8:yyy:yyyy::2/64
STP=off
DELAY=0
cat/etc/sysconfig/network-scripts/route-br0
ADDRESS0=aa.bb.cc.61
NETMASK0=255.255.255.255
ゲスト設定:
cat/etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address aa.bb.cc.61
netmask 255.255.255.255
pointopoint aa.bb.cc.16
gateway aa.bb.cc.16
dns-nameservers 212.133.98.98 212.133.99.99 212.133.100.100
iface eth0 inet6 static
address 2a01:4f8:yyy:yyyy::4
netmask 64
address 2a01:4f8:yyy:yyyy::2
ゲストVMからインターネットへのインターネットアクセスについては、次のルールを追加しました。
iptables -t nat -A POSTROUTING -o eth0 -s aa.bb.cc.61 -j SNAT --to-source aa.bb.cc.16
質問:インターネットからゲストにアクセスすることは可能ですVMゲストIP経由aa.bb.cc。61inルーティングモード?外部(インターネット)からaa.bb.cc。61にpingを実行すると、「リクエストがタイムアウトしました」と表示されますが、aa.bb .cc.16(ホスト)ping ok。どのルールを追加する必要がありますか?
ありがとうございました。
これが解決策です:
cat/etc/sysconfig/network-scripts/ifcfg-eth
DEVICE=eth0
ONBOOT=yes
HWADDR=XX:XX:XX:XX:XX:XX
BOOTPROTO=none
IPADDR=aa.bb.cc.16
NETMASK=255.255.255.255
SCOPE="peer aa.bb.cc.1"
BRIDGE=br0
cat/etc/sysconfig/network-scripts/ifcfg-br
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=aa.bb.cc.16
NETMASK=255.255.255.255
SCOPE="peer aa.bb.cc.1"
ONBOOT=yes
DELAY=0
mv/etc/sysconfig/network-scripts/route-eth0/etc/sysconfig/network-scripts/route-brcat cat/etc/sysconfig/network-scripts/route-br
### Hetzner Online GmbH - installimage
# routing for eth0
ADDRESS0=0.0.0.0
NETMASK0=0.0.0.0
GATEWAY0=aa.bb.cc.1
ゲスト設定:
cat/etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address aa.bb.cc.61
netmask 255.255.255.255
pointopoint aa.bb.cc.16
gateway aa.bb.cc.16
dns-nameservers 212.133.98.98 212.133.99.99 212.133.100.100
hwaddress ether 00:01:02:ab:cd:de # MAC Address for additional IP
まず、いくつかのことを明確にする必要があります。
使用しているガイドは、「ルーターモード」と「ブリッジモード」を参照しています。
説明されているルーターモードはほとんど無意味です。これには、空の「ホストのみ」ブリッジを作成し、VMをそれに接続してから、そのブリッジからアウトバウンドインターフェイスにIPレベルのトラフィックをルーティングすることが含まれます。これは、libvirtが独自のブリッジを作成できるという事実を無視します。 NAT仮想インターフェイス(オプションのルーティング、DHCP、およびDNSを使用)および接続VMインターフェイス。実際、libvirtではこのネットワークが作成され、デフォルトで有効になっています。 。これは「デフォルト」ネットワークと呼ばれます。
あなたの場合、2つのサブネットがあります(ほとんどすべての状況でそうであるように、これは別々のレイヤー2ドメインにあると思います)。 1つのアドレスがハイパーバイザー「aa.bb.cc.16/32」へのアクセスに使用されます(これは無効なサブネットです。これについては後で詳しく説明します)。このアドレスは、インターフェイスに直接配置できます。
そして、別のサブネット(aa.bb.cc.61/26)に2番目のIPがあります。このアドレスは、ゲスト内のVMインターフェイスに配置する必要があります。これは、ブリッジを使用して直接実行できます。投稿したガイドは、元々「ルーテッドモード」の悪い解決策を提供していますが、提案されています直接使用されるブリッジの構成は、実際には正しい方法ですが、完全に誤った構成も提供します。
シナリオを反映するように値を更新すると、次のネットワーク構成が上記のブリッジで機能します。
# /etc/sysconfig/network-scripts/ifcfg-eth0
# device: eth0
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
BRIDGE=br0
# /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE="Bridge"
BOOTPROTO=static
ONBOOT=yes
これが完了したら、このブリッジをデバイスとして使用して、VM NICに接続します。必要に応じて、ブリッジ自体にIPアドレスを設定できます。 、ホストとゲスト間の通信を許可します。ただし、パブリックアクセスを求めているサブネット上にあります。ホストからゲストへの通信が必要な場合は、「デフォルト」=を使用してプライベートレイヤー2ドメインをお勧めします。 NATインターフェイス、またはホストとゲストの両方にプライベートIPスペースを持つ空のブリッジを介して(VM上に合計2つのNICを作成します)。
ちなみに、ハイパーバイザーIP(255.255.255.255)用に投稿したネットマスクは32ビットです。それはそのネットワーク上で単一のアドレスを許可しません、そして私はそれが単なるタイプミスであると思います。タイプミスでない場合は、31ビットのネットマスクであっても、実際にホストを許可するアドレス空間を使用する必要があります。
それは一般的な意味で物事をカバーしています。うまくいけば、それはあなたが決定を下し、物事を適切に構成するのに十分な情報です。