Portál AbcLinuxu, 13. května 2025 13:59
Ahoj, prosím o radu s podivným problémem.
Stáhl jsem si předinstalovaný VMWare obraz Solarisu (SXDE). Spustil jsem ho ve VMWare. Všechno fungovalo hladce, včetně sítě (NAT, vmnet8). Ve firefoxu se dalo normálně surfovat.
Po několika restartech se ale síť začala chovat divně. Nelze zobrazit žádnou webovou stránku ve Firefoxu, nefunguje HTTP ani FTP. Firefox (v rozporu s realitou) tvrdí, že nemůže stránku nalézt. Zkoušel jsem to i pod rootem, ale situace je navlas stejná.
Kupodivu však funguje ssh
z virtuálního stroje ven (tj. kamkoliv na Internetu), a to pod rootem i pod normálním uživatelem. Dál pod rootem zcela normálně funguje dig
a vrací správné hodnoty. Příkaz netstat -rn
vrací routovací tabulku, která vypadá v pořádku a odpovídá situaci. Stejně dobře funguje i route get
.
Zkoušel jsem znovu spustit konfigurační skript VMWare i restartovat VMWare včetně všech jeho služeb, ale nic nepomáhá.
Důležitá poznámka: Mám tam ještě druhý virtuální stroj: PC-BSD. Funguje bez problémů, včetně webu. Přitom je připojen ke stejé síti vmnet8. (Nikdy nespouštím oba stroje najednou.) Nikdy tam nebyly problémy s resolvingem nebo se sítí obecně. Taky jde o předinstalovaný obraz.
Ne, ssh neresolvuje. Musel jsem tam zadat IP adresu ručně. Doménová jména odmítá s tím, že je nezná. Jediné, co opravdu resolvuje, je dig
.
Ale ping
na IP adresu (vnější) normálně funguje a v routovacích tabulkách se správně inkrementuje počítadlo použití gateway.
Podivný je hlavně fakt, že jsem už v tom Solarisu normálně surfoval a fungovalo to. Pokud si dobře vzpomínám, jednou jsem pak zapomněl před spuštěním vmware spustit i jeho služby. Když jsem nabootoval Solaris, síť (pochopitelně) nefungovala. Tedy jsem ho (korektně) vypnul a restartoval jsem vmware se zapnutými službami. Jenže síť už se nevzpamatovala. Jako by se pouhým restartem v tom Solarisu něco změnilo. To mě trochu děsí, protože mi to připomíná Windows. (!)
Všude ve výpisech je rozhraní vmxnet0
, zatímco při bootování se objevují hlášky, že nebylo možné inicializovat zařízení pcn0
pomocí DHCP
. Konkrétně failed to plumb pcn0
a pár dalších hlášek. (Nejspíš je v Solarisu odlišen název fyzických zařízení od rozhraní síťové vrstvy (případně VLAN). Nebo je to jiný důvod?)
Následuje výpis ze session, která přesně dokumentuje podivné chování. Resolving přes dig
funguje, ale ostatní programy neresolvují. Pod výpisem z terminálu je vždy odpovídající výstup příkazu snoop, který ukazuje, že se na síti opravdu něco děje.
ping
# ping 217.112.173.73 217.112.173.73 is alive # ping charon.podzimek.org ping: unknown host charon.podzimek.org
10.84.53.64 -> 217.112.173.73 ICMP Echo request (ID: 1268 Sequence number: 0) 217.112.173.73 -> 10.84.53.64 ICMP Echo reply (ID: 1268 Sequence number: 0)
Poznámka: druhý ping
se vůbec nepokusil resolvovat. Prostě nezná a hotovo...
dig
# dig andrej.podzimek.org ; <<>> DiG 9.3.4-P1 <<>> andrej.podzimek.org ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1688 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;andrej.podzimek.org. IN A ;; ANSWER SECTION: andrej.podzimek.org. 259200 IN CNAME charon.podzimek.org. charon.podzimek.org. 259187 IN A 217.112.173.73 ;; AUTHORITY SECTION: podzimek.org. 259187 IN NS charon.podzimek.org. ;; Query time: 72 msec ;; SERVER: 10.84.53.2#53(10.84.53.2) ;; WHEN: Tue Nov 6 17:17:31 2007 ;; MSG SIZE rcvd: 88
10.84.53.64 -> 10.84.53.2 DNS C andrej.podzimek.org. Internet Addr ? 10.84.53.2 -> 10.84.53.64 DNS R andrej.podzimek.org. Internet CNAME charon.podzimek.org.
Poznámka: Taktéž dig andrej.podzimek.org @217.112.173.73
funguje správně. Snoop pak ukáže:
10.84.53.64 -> 217.112.173.73 DNS C andrej.podzimek.org. Internet Addr ? 217.112.173.73 -> 10.84.53.64 DNS R andrej.podzimek.org. Internet CNAME charon.podzimek.org.
ssh
Výpis je dlouhý, proto ho sem nedávám. Výsledek je přesně stejný jako v případě ping
. Při zadání konkrétní IP adresy funguje ssh
bez problémů. Při zadání doménového jména se vůbec nepokusí resolvovat a ohlásí chybu.
# ssh andrej@217.112.173.73 andrej@217.112.173.73's password: Last login: Tue Nov 6 16:47:42 2007 from vpn-friends.ms.mff.cuni.cz [andrej@charon ~]$ exit logout Connection to 217.112.173.73 closed. # ssh andrej@charon.podzimek.org ssh: charon.podzimek.org: node name or service name not known
Co se tyce toho vmxnet0 vs. pcn0, tak co si matne pamatuju, tak VMware emuluje AMD PCnet kartu
Ne všechny. V novějších verzích je to (přinejmenším pro 64-bitové hosty) gigabitový Intel (Pro/1000 nebo jak se to oficiálně jmenuje).
(přinejmenším pro 64-bitové hosty)
Tenhle je 32-bitový (host i guest).
fgrep hosts /etc/nsswitch.conf
hosts: files
Soubor /etc/resolv.conf by měl být v pořádku. Původně tam bylo:
domain: localdomain nameserver: 10.84.53.2Zkoušel jsem tam dát svůj domácí nameserver nebo servery poskytovatele, ale výsledek je pořád stejný.
ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 vmxnet0: flags=201004843<UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4,CoS> mtu 1500 index 2 inet 10.84.53.65 netmask ffffff80 broadcast 10.84.53.127 ether 0:c:29:0:61:26 lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1 inet6 ::1/128
Děkuji mnohokrát za radu, už mi to funguje. Problém s nsswitch.conf jsem už řešil kdysi dávno v Linuxu, ale vůbec mě nenapadlo, že v Solarisu to bude podobné.
Problém se síťovým rozhraním vznikl skutečně po instalaci VMWare Tools, kdy byl původní „hardware“ nahrazen nějakým lepším, rychlejším. Takže odstraněním pcn0 z /etc se to vyřešilo.
Kdo změnil soubor nsswitch.conf, to zůstává záhadou. Při prvním bootu resolving normálně fungoval... Na tohle už asi nepřijdu. Hlavní je, že to teď funguje.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.