VM无法ping通两台交换机和路由器通过NAT

时间:2017-07-26 10:07:39

标签: linux networking nat

我有一台Linux VM(Kali)连接到仅限主机的交换机

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.0.40  netmask 255.255.255.0  broadcast 192.168.0.255

接口已启动,interfaces文件如下所示

auto eth0
iface eth0 inet static
    address 192.168.0.40
    netmask 255.255.255
    gateway 192.168.0.254
    dns-nameservers 8.8.8.8

交换机连接到Ubuntu Server虚拟机,该虚拟机已启用到192.168.0.0/24网络,并通过桥接交换机连接到运行Ubuntu 16.04的实际主机

NAT规则在POSTROUTING链上,它就像这样

Chain POSTROUTING (policy ACCEPT 20 packets, 1440 bytes)
pkts bytes target     prot opt in     out     source               destination         
0     0 MASQUERADE  all  --  *      ens33   192.168.0.0/24       0.0.0.0/0 

并且服务器计算机上的interfaces文件看起来像这样

 # The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto ens33
iface ens33 inet static
    address 172.16.23.100
    netmask 255.255.0.0
    gateway 172.16.0.254
    dns-nameservers 8.8.8.8
#iface ens33 inet dhcp


#Gateway for LAN1 - 192.168.0.0/24
auto ens38
iface ens38 inet static
    address 192.168.0.254
    netmask 255.255.255.0

主机上的路由表如下所示

default via 172.16.0.254 dev enp3s0 
169.254.0.0/16 dev enp3s0  scope link  metric 1000 
172.16.0.0/16 dev enp3s0  proto kernel  scope link  src 172.16.0.6 

现在我试图从Kali机器(从192.168.0.40到172.16.0.6)ping主机,但ping没有通过,我只在主机上执行了tcpdump与192.168.0.40接口作为主机,但它不会接收任何流量。 NAT规则由于某种原因没有被使用。

我可以使用Kali ping默认网关和服务器/路由器虚拟机,但主机的ping不会通过。我做错了什么?

我认为应该发生的是,数据包通过Kali的默认网关进入服务器,一旦它在服务器机器中被转换为ens33的地址,就从那里开始将转到主机,主机将其发送回ens33,因为这应该是当前的源IP,但显然没有发生

1 个答案:

答案 0 :(得分:0)

我不注意事情,我把NAT规则作为eth33而不是ens33,修复它现在有效