Puncte:2

VM invitat QEMU/KVM nu poate rezolva numele de gazdă DNS sau SSH/ping de la gazdă

drapel mx

Am o mașină virtuală bazată pe QEMU/KVM cu CentosOS 6.4 care nu se poate conecta complet la Internet. Pot da ping la adresele IP (ex. ping 8.8.8.8 funcționează cu succes), dar numele de domenii nu sunt rezolvate (ex. ping google.com se intoarce ping: gazdă necunoscută google.com).

Oaspetele are un IP static alocat și folosesc rețeaua implicită (bazată pe NAT):

<network>
  <name>default</name>
  <uuid>8c257186-7af4-4e19-a086-27f50f692af6</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:d6:62:2d'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>

/run/resolvconf/resolv.conf nu este prezent pe VM; si nici unul dintre rezolvconf, nslookup, systemctl, gazdă, hostnamectl, sau nmcli programele sunt instalate, astfel încât capacitatea de a rula diagnosticarea setărilor de rețea este limitată.

Am încercat următoarele:

  • Editare /etc/sysconfig/network-scripts/ifcfg-eth0 prin adăugarea DNS1=8.8.8.8, DNS2=8.8.4.4 și PEERDNS=da. După repornire, aceasta a fost creată /etc/resolv.conf, care nu a fost prezent inițial.
  • Înlocuirea „hosts: files dns” cu „hosts: files dns nisplus nis” în /etc/nsswitch.conf, apoi repornind.
  • Ca urmare a acest ghid pentru a crea o rețea numai pentru gazdă.
  • Ca urmare a acest ghid pentru a crea o punte virtuală prin qemu-bridge-helper.
  • (Ca o parte, am încercat să creez un partajare de fișiere între invitat și gazdă prin acest ghid, dar acest lucru necesită 9p, un sistem de fișiere cu care CentOS 6 aparent nu este compatibil.)

Dar cu fiecare încercare, gazda încă nu poate SSH în/ping oaspete și nici oaspete nu poate rezolva numele de domenii. Orice ajutor pentru realizarea oricăruia dintre acești doi pași (gazda poate SSH în invitat; oaspetele este complet conectat la internet) ar fi foarte apreciat.

Iată câteva conținuturi de fișiere/ieșiri din linia de comandă care ar putea fi utile. Încântat să ofer mai multe informații.

Conținutul /etc/resolv.conf (Oaspete):

opțiuni edns0 trust-ad
; generat de /sbin/dhclient-script
server de nume 8.8.8.8
server de nume 8.8.4.4

Ieșire din ip a (Oaspete):

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state NECUNOSCUT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft pentru totdeauna preferred_lft pentru totdeauna


2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:7b:6c:27 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.92/22 brd 192.168.123.255 scope global eth0
    inet6 fe80::5054ï¬fe7b:6c27/64 scope link
       valid_lft pentru totdeauna preferred_lft pentru totdeauna

Ieșire din ssh 192.168.122.92 (Gazdă):

ssh: conectați-vă la gazda 192.168.122.92 portul 22: conexiune refuzată

Ieșire din ping 192.168.122.92 (Gazdă):

PING 192.168.122.92 (192.168.122.92) 56(84) octeți de date.
De la 192.168.122.1 icmp_seq=1 Port de destinație inaccesibil
ping: sendmsg: Operațiunea nu este permisă
De la 192.168.122.1 icmp_seq=2 Port de destinație inaccesibil
ping: sendmsg: Operațiunea nu este permisă
De la 192.168.122.1 icmp_seq=3 Port de destinație inaccesibil
ping: sendmsg: Operațiunea nu este permisă
De la 192.168.122.1 icmp_seq=4 Port de destinație inaccesibil
ping: sendmsg: Operațiunea nu este permisă
^C
--- 192.168.122.92 statistici ping ---
4 pachete transmise, 0 primite, +4 erori, 100% pierdere de pachete, timp 3065 ms

EDITARE 1

Conținutul /etc/sysconfig/network-scripts/ifcfg-eth0 (Oaspete):

DEVICE=eth0
HWADDR=52:54:00:7B:6C:27
TYPE=Ethernet
ONBOOT=da
NM_CONTROLLED=nu
BOOTPRONTO=niciuna
IPADDR=192.168.122.92
NETMASK=255.255.252.0
GATEWAY=192.168.122.1
DNS1=8.8.8.8
DNS2=8.8.4.4
PEERDNS=da

EDITARE 2

Ieșire din iptables-salvare (Gazdă):

# Generat de iptables-save v1.8.4 pe Luni 3 Ian 22:03:26 2022
*calandru
:ACCEPTAREA PREROUTARE [86972:77359835]
:INPUT ACCEPT [86966:77359331]
: FORWARD ACCEPT [6:504]
: ACCEPT IEȘIRE [87805:9060728]
: POSTROUTING ACCEPT [69226:7583136]
:LIBVIRT_PRT - [0:0]
-A POSTROUTING -j LIBVIRT_PRT
-A LIBVIRT_PRT -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
COMMIT
# Finalizat pe Luni 3 Ian 22:03:26 2022
# Generat de iptables-save v1.8.4 pe Luni 3 Ian 22:03:26 2022
*nat
:ACCEPTAREA PRE-ROUTARE [4:1038]
:INPUT ACCEPT [3:954]
: ACCEPT IEȘIRE [19614:1550200]
: POSTROUTING ACCEPT [1032:73142]
:LIBVIRT_PRT - [0:0]
-A POSTROUTING -j LIBVIRT_PRT
-A LIBVIRT_PRT -s 192.168.122.0/24 -d 224.0.0.0/24 -j RETURN
-A LIBVIRT_PRT -s 192.168.122.0/24 -d 255.255.255.255/32 -j RETURN
-A LIBVIRT_PRT -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
-A LIBVIRT_PRT -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
-A LIBVIRT_PRT -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADA
COMMIT
# Finalizat pe Luni 3 Ian 22:03:26 2022
# Generat de iptables-save v1.8.4 pe Luni 3 Ian 22:03:26 2022
*filtru
:INPUT ACCEPT [86966:77359331]
: FORWARD ACCEPT [0:0]
: ACCEPT IEȘIRE [69220:7582632]
:LIBVIRT_FWI - [0:0]
:LIBVIRT_FWO - [0:0]
:LIBVIRT_FWX - [0:0]
:LIBVIRT_INP - [0:0]
:LIBVIRT_OUT - [0:0]
-A INTRARE -j LIBVIRT_INP
-A FORWARD -j LIBVIRT_FWX
-A FORWARD -j LIBVIRT_FWI
-A FORWARD -j LIBVIRT_FWO
-A IEȘIRE -j LIBVIRT_OUT
-A LIBVIRT_FWI -d 192.168.122.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A LIBVIRT_FWI -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A LIBVIRT_FWO -s 192.168.122.0/24 -i virbr0 -j ACCEPT
-A LIBVIRT_FWO -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A LIBVIRT_FWX -i virbr0 -o virbr0 -j ACCEPT
-A LIBVIRT_INP -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A LIBVIRT_INP -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A LIBVIRT_INP -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
-A LIBVIRT_INP -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A LIBVIRT_OUT -o virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A LIBVIRT_OUT -o virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A LIBVIRT_OUT -o virbr0 -p udp -m udp --dport 68 -j ACCEPT
-A LIBVIRT_OUT -o virbr0 -p tcp -m tcp --dport 68 -j ACCEPT
COMMIT
# Finalizat pe Luni 3 Ian 22:03:26 2022

EDITARE 3

Ieșire din sudo iptables-save (Oaspete):

# Generat de iptables-save v1.4.7 pe joi 6 ianuarie 05:53:35 2022
*filtru
:INPUT ACCEPT [0:0]
: FORWARD ACCEPT [0:0]
: ACCEPT IEȘIRE [0:0]
-A INTRARE -p tcp -m tcp --dport 22 -m conntrack --ctstate NOU,STABILIT -j ACCEPT
-A IEȘIRE -p tcp -m tcp --sport 22 -m conntrack --ctstate STABILIT -j ACCEPT
COMMIT
# Finalizat joi 6 ianuarie 05:53:35 2022
another victim of the mouse avatar
drapel cf
> inet 192.168.122.92/**22** brd 192.168.123.255 scope global eth0 Mi se pare de pește. Putem vedea `cat /etc/sysconfig/network-scripts/ifcfg-eth0`? Se pare că ai o mască de plasă incorectă asupra invitatului tău.> NETMASK=255.255.252.0
another victim of the mouse avatar
drapel cf
> inet 192.168.122.92/**22** brd 192.168.123.255 scope global eth0 Mi se pare de pește. Putem vedea `cat /etc/sysconfig/network-scripts/ifcfg-eth0`?
drapel mx
Mulțumesc @Jacobyoby. Am adăugat mai multe informații mai sus.
another victim of the mouse avatar
drapel cf
măștile tale de plasă nu se potrivesc. Este acest lucru intenționat?
drapel mx
Nu este intenționat. Am setat `NETMASK=255.255.255.0` în `/etc/sysconfig/network-scripts/ifcfg-eth0` pentru a se potrivi cu rețeaua virtuală. Acum primesc `inet 192.168.122.92/24 brd 192.168.122.255 scope global eth0` sub `eth0` în `ip a` în guest. Dar DNS încă nu rezolvă numele de domenii, iar IP-ul invitatului nu poate fi accesat prin SSH/ping în gazdă.
another victim of the mouse avatar
drapel cf
ai dezactivat firewalld pentru testare?
drapel mx
@Jacobyoby @AlexD Nu este firewalld, dar probabil se datorează acestor două reguli în `iptables`: `-A LIBVIRT_FWI -o virbr0 -j REJECT --reject-with icmp-port-unreachable` și `-A LIBVIRT_FWO -i virbr0 - j REJECT --reject-with icmp-port-unreachable` (mai multe detalii mai sus). Cu toate acestea, le-am eliminat (temporar), am repornit VM-ul invitat și am primit în continuare aceleași erori.
another victim of the mouse avatar
drapel cf
vă rugăm să adăugați o regulă pentru a permite intrarea SSH pe portul 22 la iptables.
drapel mx
Am adăugat două reguli noi la iptables în invitat: `sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT` și `sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT`. Am adăugat, de asemenea, `sudo iptables -A OUTPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT` și `sudo iptables -A INPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT` către gazdă. Totuși, primesc aceleași erori. Îmi lipsește ceva?
another victim of the mouse avatar
drapel cf
poți dezactiva iptables pentru testare?
Puncte:1
drapel jp

Următoarele mesaje de eroare de la ping indică faptul că comunicarea este blocată de un firewall.

Portul de destinație inaccesibil
ping: sendmsg: Operațiunea nu este permisă
drapel mx
Se pare că VPN-ul a fost problema. Fie dezactivarea VPN-ului, fie permiterea partajării rețelei locale în cadrul VPN, a rezolvat problema. Acum pot face ping/SSH în VM-ul invitat cu succes. Vă mulțumesc tuturor!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.