O host KVM CentOS 7 não passa o tráfego de visitantes, mas sim o ping uns dos outros

1

Estou procurando a resposta por alguns dias e qualquer configuração é certa para eu definir o funcionamento da rede.

Eu tenho o CentOS 7 ( 10.120.0.57 ) com o KVM instalado nele. Eu criei guest simples ( 10.120.0.58 ) vm com o CentOS7 também, mas eu tenho algum problema com a rede no guest. O host pode acessar a Internet e fazer ping na máquina convidada. O convidado também pode pingar o host, mas quando ele executa ping em outro IP, ele fica: Destino inacessível . Desativei com antecedência o firewalld e o selinux em ambas as máquinas para eliminar problemas.

Meus hosts bridge devem passar tráfego porque eu configurei o /etc/sysctl.conf (!!!)

net.ipv4.ip_forward = 1
net.ipv4.conf.all.proxy_arp = 1

No host em tcpdump eu posso ver os pacotes ICMP do convidado, mas são apenas pedidos de uma maneira (sem respostas), quando tento fazer ping no gateway real da rede ( 10.120 .0.1 )

IP 10.120.0.58 > gateway: ICMP echo request, id 3716, seq 1, length 64
IP 10.120.0.58 > gateway: ICMP echo request, id 3716, seq 2, length 64

Se eu fizer ping do convidado, por exemplo, google.com ( tcpdump do host ):

 IP localhost.localdomain > 10.120.0.58: ICMP localhost.localdomain udp port domain unreachable, length 64
 IP localhost.localdomain > 10.120.0.58: ICMP localhost.localdomain udp port domain unreachable, length 64

Mas é claro que o ping está funcionando quando eu faço ping no Guest ( 10.120.0.58 ) < = > Host ( 10.120.0.57 ):

10.120.0.58 > localhost.localdomain: ICMP echo request, id 3719, seq 8, length 64
localhost.localdomain > 10.120.0.58: ICMP echo reply, id 3719, seq 8, length 64

Alguém poderia me informar o que há de errado com minha configuração de host / convidado?

HOST: ifconfig -a:

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.120.0.57  netmask 255.255.255.0  broadcast 10.120.0.255
        inet6 fe80::20c:29ff:fed5:14fa  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:d5:14:fa  txqueuelen 1000  (Ethernet)
        RX packets 74849  bytes 6444652 (6.1 MiB)
        RX errors 0  dropped 100  overruns 0  frame 0
        TX packets 1033  bytes 88046 (85.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno16780032: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
        inet6 fe80::20c:29ff:fed5:14fa  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:d5:14:fa  txqueuelen 1000  (Ethernet)
        RX packets 2975  bytes 239252 (233.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 164  bytes 23286 (22.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 6  bytes 644 (644.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6  bytes 644 (644.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:9f:de:66  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0-nic: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 52:54:00:9f:de:66  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether fe:54:00:7f:c5:c5  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 5885 overruns 0  carrier 0  collisions 0

vnet1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether fe:54:00:b0:3d:40  txqueuelen 1000  (Ethernet)
        RX packets 420  bytes 34697 (33.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 111762  bytes 9374955 (8.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

configuração br0:

DEVICE=br0
BOOTPROTO=static
TYPE=Bridge
ONBOOT=yes
IPADDR="10.120.0.57"
NETMASK="255.255.255.0"
#GATEWAY="10.120.0.1"
#DNS1="10.120.0.1"
#DNS2="8.8.8.8"
STP=yes
DELAY=0
NM_CONTROLLED=no

configuração eno16780032:

TYPE="Ethernet"
#NAME="eno16780032"
#UUID="4fc9740c-536a-4330-aab4-bdef7489582f"
DEVICE="eno16780032"
ONBOOT="yes"
NM_CONTROLLED=no
BRIDGE=br0

ponte:

bridge name     bridge id               STP enabled     interfaces
br0             8000.000c29d514fa       yes             eno16780032
                                                        vnet0
                                                        vnet1
virbr0          8000.5254009fde66       yes             virbr0-nic

Hosts / etc / sysconfig / network:

# Created by anaconda
NETWORKING=yes
GATEWAY=10.120.0.1

Configuração eth0 do convidado:

DEVICE=eth0
NAME=eth0
TYPE=Ethernet
BOOTPROTO=static
ONBOOT=yes
IPADDR="10.120.0.58"
NETMASK="255.255.255.0"
GATEWAY="10.120.0.57" (!?)
DNS1="10.120.0.57"
DNS2="8.8.8.8"

Agradeço desde já por dar uma olhada.

EDITAR

Eu adiciono o resultado do iptables do host:

[root@localhost ~]# iptables -L -v -n -t nat
Chain PREROUTING (policy ACCEPT 59 packets, 4981 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain INPUT (policy ACCEPT 34 packets, 3619 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain OUTPUT (policy ACCEPT 2 packets, 103 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain POSTROUTING (policy ACCEPT 2 packets, 103 bytes)
 pkts bytes target     prot opt in     out     source               destination

Iptables do convidado:

[root@localhost ~]# iptables -L -v -n -t nat
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Ponto de rastreio do convidado ( 10.120.0.58 ) para o 8.8.8.8:

 1?: [LOCALHOST]                                         pmtu 1500
 1:  10.120.0.58                                         3012.516ms !H
                   Resume: pmtu 1500

EDIT2

Eu adiciono resultados iptables -L -v -n . Do host:

[root@localhost ~]# iptables -L -v -n
Chain INPUT (policy ACCEPT 162K packets, 17M bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain FORWARD (policy ACCEPT 8 packets, 476 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain OUTPUT (policy ACCEPT 3894 packets, 309K bytes)
 pkts bytes target     prot opt in     out     source               destination

De convidado:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    
por Tiroue 22.01.2017 / 19:18

2 respostas

0

Como você conectou o dispositivo físico de seu host com a máquina virtual (eu acho que vnet0 e / ou vnet1 são os dispositivos usados para a VM), você tem acesso físico à rede 10.120.0.0/24 dentro sua VM.
Então você deve substituir

GATEWAY="10.120.0.57" (!?)
DNS1="10.120.0.57"

por

GATEWAY="110.120.0.1"
DNS1="10.120.0.1"
    
por 22.01.2017 / 19:46
0

Eu tenho exatamente o mesmo problema. parece um bug no driver de rede do virtio. Para resolver o problema, fiz as seguintes alterações:

No Centos 7 - KVM - >

  1. Desative o serviço NetworkManager no Centos 7 executando o KVM e ative o antigo serviço de 'rede'.
  2. Defina seu GATEWAY em / etc / sysconfig / network e faça todas as alterações necessárias em / etc / sysconfig / network-scripts / ifcfg-eth0 (ou similar). Definir IPADDR, NETMASK, etc.
  3. Altere o Virtual Network Driver (por meio do virt-manager) para suas máquinas convidadas. Defina como 'e1000'

Em seu convidado - >

  1. Faça exatamente o mesmo. Desative o NetworkManager e ative o serviço de rede.
  2. Isso altera meu efeito no nome da interface de rede, então verifique o novo nome usando o comando #cat / proc / net / dev (centos guests)

O trabalho acima para mim. Eu gastei mais de uma semana para encontrar uma solução.

    
por 21.04.2018 / 22:15