web-dev-qa-db-ja.com

RRAS NAT特定のHyper-VVMに転送しない

Windows Server 2012 R2をインストールし、Hyper-V、RRAS、およびNATセットアップを使用しています。

2つのVMとRRASNATに問題があります。

基本的に、これら2つのVMはローカルサブネットの外部と通信しません。ローカルネットワーク内のすべて(他のVM、ゲートウェイ)と通信できますが、外部のネットワークとは通信できません。これら2つのVMと他のVMの唯一の違いは、Linuxベースのシステムであるということです。他のすべてのVMは、Windows Server 2012R2ベースのシステムです。

この問題を引き起こすLinuxに固有の何かがありますか? 1つはCentOSインストールで、もう1つはDebianインストールです。

Linuxボックスのいずれかを公開インターフェースに割り当てると、外部接続が可能になります。明らかに、これはIPアドレス空間を浪費するので、やりたくありません。

注:サーバーはデフォルトゲートウェイ(10.0.0.1)に正常にpingを実行できます。時間は通常約0.450msです。


今のところ、私はdebianインストールの問題を解決したいだけなので、ここにデータの一部を示します。

# ifconfig
eth0    Link encap:Ethernet  HWaddr 00:15:5d:91:82:07
        inet addr:10.0.4.0  Bcast:10.0.255.255  Mask:255.255.0.0
        inet6 addr: fe80::215:5dff:fe91:8207/64 Scope:Link
        UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
        RX packets:1842 errors:0 dropped:0 overruns:0 frame:0
        TX packets:7245 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:119697 (116.7 KiB)  TX bytes:701216 (684.7KiB)

(ループバックは含まれていません)

# route
Kernel IP routing table
Destination    Gateway        Genmask        Flags Metric Ref    Use Iface
default        10.0.0.1       0.0.0.0        UG    0      0        0 eth0
localness      *              255.255.0.0    U     0      0        0 eth0

# ip route
default via 10.0.0.1 dev eth0
10.0.0.0/16 dev eth0  proto kernel  scope link  src 10.0.4.0

/etc/network/interfacesファイルは次のとおりです。

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
        address 10.0.4.0
        netmask 255.255.0.0
        network 10.0.0.0
        broadcast 10.0.255.255
        gateway 10.0.0.1

いくつかの詳細情報:

# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

# iptables -L
Chain INPUT (policy ACCEPT)
target     port opt source           destination

Chain INPUT (policy ACCEPT)
target     port opt source           destination

Chain OUTPUT (policy ACCEPT)
target     port opt source           destination

ネットワークは基本的に次のようにセットアップされます。Hyper-VWindowsServerには、インターネットに接続された1つのネットワークポートがあります。次に、ホストにRRASとNATがインストールされ、パブリックIPスペース全体を使用してVMのNATを変換します。各VM = getは/24範囲とは異なる10.0.0.0/16IPアドレスのブロックですが、/16サブネットマスクを保持します。たとえば、DebianVMは10.0.4.0 - 10.0.4.255です。

1
Der Kommissar

したがって、問題はチェックサムのオフロードが原因であることが判明しました。

何らかの理由で、LinuxゲストはNAT IPv4チェックサムオフロードがアクティブ化されている場合は機能しません(NATは問題なく、奇妙です)。)

したがって、物理インターフェイスと仮想インターフェイスの両方でIPv4チェックサムオフロードを無効にし、サーバーを再起動すると、すべてが期待どおりに機能します。

1
Der Kommissar