RRAS NAT不转发特定的Hyper-V虚拟机

我有一个Windows Server 2012 R2安装,Hyper-V,RRAS和NAT设置。

我有两个我的虚拟机和RRAS NAT的问题:

本质上,这两个虚拟机将不会在本地子网之外进行通信。 他们可以与本地networking(其他虚拟机,网关)中的所有内容进行通信,但是除此之外没有任何内容。 这两者和其他虚拟机的唯一区别在于它们是基于Linux的系统。 所有其他虚拟机都是基于Windows Server 2012 R2的系统。

有什么特定的Linux会导致这个问题? 一个是CentOS安装,另一个是Debian安装。

如果我将任何一个Linux盒子分配给一个公开的界面,那么他们就具有外部连接。 显然我不想这样做,因为这浪费了我的IP地址空间。

请注意:服务器可以ping默认网关(10.0.0.1)就好了。 时间通常在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 

networking基本上设置如下:Hyper-V Windows服务器有一个networking端口,插入互联网。 然后,主机安装了RRAS和NAT,并使用我的整个公共IP空间来转换虚拟机的NAT。 每个虚拟机从10.0.0.0/16范围获得不同的/24个IP地址块,但是它们保留/16子网掩码。 Debian虚拟机,例如, 10.0.4.0 - 10.0.4.255

所以,事实certificate这个问题是由于校验和卸载造成的。

出于某种原因,当IPv4校验和卸载激活时,Linux客户端不能在NAT上工作。 (他们在没有NAT的情况下工作很好,这是奇怪的。)

因此,在物理接口和虚拟接口上禁用IPv4校验和卸载并重新启动服务器后,一切都按预期工作。