Archiwum → Ustawienia sieci dla VMware
Korzystając z VMware, jednym z zagadnień, które warto znać jest sprawa ustawień sieci w maszynach wirtualnych. Nie od razu było tu wszystko dla mnie jasne, ale z czasem zgłębiłem nieco ten temat. Podzielę się kilkoma informacjami w tym zakresie.
NAT czy Bridged?
Wybierając typ sieci mamy kilka opcji, z których z reguły wybieram NAT lub Bridged.
Zaglądając do ustawień konfiguracyjnych (plik VMX) znajdziemy tam wpis tego typu:
ethernet0.connectionType = „bridged”
Różnica pomiędzy siecią NAT a Bridged jest taka, że NAT tworzy wirtualną sieć w ramach maszyny hosta, a Bridged łączy się bezpośrednio. Ustawiając typ sieci NAT mamy możliwość łączenia się z Internetem korzystając z sieci hosta. Nasza maszyna otrzymuje adres IP, który nie będzie rozpoznawany w sieci, do której się włączyliśmy. Otrzymujemy adres prywatny.
Połączenie typu NAT nie sprawdzi się w sytuacji. gdy chcemy postawić wirtualny serwer (np. z systemem SAP) i inne osoby mają mieć do niego dostęp. W takiej sytuacji należy wybrać Bridged.
Ustawiając typ sieci na „Bridged” nasza wirtualna maszyna otrzymuje numer IP (z puli dostępnych) i jest widziana w sieci tak jak każdy inny komputer. Nie oznacza to, że musi to być adres publiczny. W korporacyjnej sieci uruchamiane przeze mnie maszyny otrzymują adresy prywatne dostępne w tej sieci. Wystarcza to jednak, aby inne osoby korzystające z sieci mogły się połączyć z wirtualnym serwerem.
Kwestia adresu MAC
Kiedy pracując w domu wybieram typ sieci „Bridged„, to ze względu na ograniczenie jakie narzuca mi firma dostarczająca Internet, połączenie z siecią nie zadziała. Aby działało muszę zgłosić adres MAC wirtualnej maszyny (sieć sprawdza MAC i jeżeli nie jest zarejestrowany, to nie przydziela adresu IP). Co jednak zrobić, jeżeli ktoś chce eksperymentować z wieloma systemami? VMware za każdym razem generuje inny MAC. Rozwiązaniem jest przydzielenie statycznego numeru. Konfigurując nową maszynę wirtualną adres MAC jest generowany automatycznie. Wpis w pliku konfiguracyjnym może wyglądać następująco:
ethernet0.addressType = „generated”
ethernet0.generatedAddress = „00:0c:29:1d:c4:34″
Teoretycznie nie ma problemu, aby narzucić stały adres MAC i ustawić jego wartość na taką jaka chcemy. Wystarczy zamienić wspomniane wcześniej wpisy na coś takiego:
ethernet0.addressType = „static”
ethernet0.Address = „xx:xx:xx:xx:xx:xx”
przy czym „xx:xx:xx:xx:xx:xx” jest wymaganym adresem MAC. Jest tu jednak małe „ale”. VMware nie pozwala na ustawienie dowolnego adresu MAC. Musi się on zawierać w takim zakresie:
00:50:56:00:00:00 – 00:50:56:3F:FF:FF
Próba uruchomienia maszyny wirtualnej z nieprawidłowym adresem skończy się błędem.
Tags: vmware
Listopad 27th, 2009 at 23:55
Świetny artykuł. Krótko i na temat. Dzięki
Styczeń 21st, 2011 at 17:45
Bzdura.
Po 1) Można wpisać dowolny adres MAC podając ethernet0.checkMACAddress = „false”
po 2) i tak nie działa, tj. ustawiając własny MAC openSuse na mojej wirtualce nie widzi karty sieciowej.
Styczeń 21st, 2011 at 22:14
witam
dziękuję za komentarz.
Pytanie: co konkretnie jest bzdurą? Całość? Część informacji? Jeśli część, to która?
Wpis jest dość stary, ale rozwijając temat:
PRIMO: moje wpisy najczęściej dotyczą vmware player, a jak wiadomo vmware ma wiele produktów. O którym ty piszesz ?
SECUNDO: ethernet0.checkMACAddress = „false” nie testowałem, więc dziękuję za podanie wskazówki.
Co do tego, że nie widzi karty. O co ci dokładnie chodzi ? Jeśli to coś o czym myślę to mam na to obejście z którego korzystałem w SLES 10.2 (nie wiem jak sprawdza się w innych wersjach bo tylko w SLES miałem potrzebę modyfikacji pewnych rzeczy). Podam kilka komend bez szczególnego rozwinięcia tematu:
# rcnetwork stop
# vi /etc/udev/rules.d/30-net_persistent_names.rules
tam powinna być linia w stylu:
SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="00:02:b3:22:84:f3", IMPORT="/lib/udev/rename_netiface %k eth1"(zakładam że po zmianie adresu twoja karta jest teraz widziana jako eth1 a ty chcesz z powrotem eth0)
zamieniasz eth1 na eth0 , czyli masz coś takiego
SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="00:02:b3:22:84:f3", IMPORT="/lib/udev/rename_netiface %k eth0"Potem już tylko:
# /lib/udev/rename_netiface eth1 eth0
# rcnetwork start
TERTIO: jak piszesz że coś jest bzdurą to miło by było abyś przynajmniej zostawił adres emailowy, aby można było się do tego ustosunkować (chyba że zaglądasz tu i sprawdzasz czy dodano komentarz)
pozdrawiam
Rafał