Category Archives: Linux

Wirtualny router w labie, czyli instalacja i podstawowa konfiguracja Vyatty na Hyper-V

W czasie nauki, testów w środowisku laboratoryjnym chcemy mieć możliwość lepszego wyizolowania i dostosowania sieci do naszych potrzeb. Np. wykorzystanie NATu, stworzenia wieli podsieci, symulację rozproszonego środowiska sieciowego. Osobiście często do tego celu używam wirtualnego routera(sieciowego systemu operacyjnego) o nazwie Vyatta, który jest dostępny w wersji opensource oraz płatnej. Dla większości potrzeb wystarczy wersja opensource.

W wpisie przedstawię jak skonfigurować zainstalować i skonfigurować vyatte w labie opartym o Hyper-V dostępne w Windows 8 i 2012, aby uruchomić NAT pomiędzy dwoma sieciami oraz na sieci wewnętrznej skonfigurować DHCP. W moim labie posiadam dwie sieci. Jedną zewnętrzną(sieci o nazwie INET) z dostępem do Internetu oraz drugą sieć wewnętrzną(PRIV) na potrzeby laba. Sieć PRIV mieć dostęp do Internetu poprzez NAT oraz na tej sieci ma działać DHCP.

image

Instalacja

Pierwszą czynnością jest pobranie iso najnowszej edycji Vyatty w wersji Virtualization ISO. Pobieramy ze strony http://www.vyatta.org/downloads.

Następnym krokiem jest stworzenie maszyny wirtualnej z jednym vCPU, 512MB ramu oraz dyskiem dynamicznym o rozmiarze 2GB. Maszynę taka możemy stworzyć za pomocą Powershell’a następującym poleceniem:

New-VM -Name Vyatta -MemoryStartupBytes 512MB -SwitchName INET -NewVHDSizeBytes 2GB -NewVHDPath C:\Hyper-V\vyatta.vhdx
Add-VMNetworkAdapter -VMName Vyatta -SwitchName PRIV

Pierwsza linijka tworzy nową maszynę o nazwie Vyatta zgodnie z potrzebnymi parametrami. Ważny jest parametr NewVHDPath, który wskazuje ścieżkę, w jakiej ma być stworzony nowy dysk dla maszyny wirtualnej. Drugi linijka dodaje drugą kartę sieciową podłączoną do sieci PRIV.

Teraz montujemy ściągnięte ISO w maszynie i uruchamiamy ją, aby rozpocząć proces instalacji Vyatty. Poniżej film jak zainstalować Vyattę. Sama instalacja sprowadza się do wydania jednej komendy i odpowiedzeniu na parę pytań. Cała instalacja od startu maszyny z ISO do restartu i uruchomienia gotowego systemu do konfiguracja trwała 3 minuty.

Konfiguracja

Po instalacji logujemy się do naszej vyatty i wdajemy komendę:

configure

Polecenie to uruchamiamy tryb konfiguracyjny. Pierwszą czynnością jest ustawienie adresacji naszych interfejsów.

Adres na interfejsie INET będzie to 192.168.1.2 z maską 24 bity, czyli 255.255.255.0. Polecenie do tego to:

set interfaces ethernet eth0 address 192.168.1.2/24

Dodatkowo ustawię opis interfejsu poleceniem:

set interfaces ethernet eth0 description INET

Adres na drugiej karcie sieciowej będzie 10.0.0.1/24. Zestaw poleceń analogicznie jak dla pierwszej karty.

set interfaces ethernet eth1 address 10.0.0.1/24 
set interfaces ethernet eth1 description PRIV

Następna czynnością jest ustawienie bramy domyślnej. Moją brama jest router o adresie 192.168.1.1.

set system gateway-address 192.168.1.1

Teraz czas na ustawienie NATu(maskarady) pomiędzy INET, a PRIV. Stworzymy nawą regułę NAT. Wskażemy, jakie adresy źródłowe maja być NATowane i przez jaki interfejs maja wychodzić oraz ustawiamy typ NATu na maskaradę. Polecenie do wykonanie tych czynności to:

set nat source rule 10 
set nat source rule 10 source address 10.0.0.0/24 
set nat source rule 10 outbound-interface eth0 
set nat source rule 10 translation address masquerade

Teraz konfiguracja DCHP na interfejsie PRIV. Zakres DHCP będzie się nazywał 10.0.0.X i rozdawał adresy od 10.0.0.10 do 10.0.0.20. Bramą domyślną będzie interfejs PRIV, czyli 10.0.0.1. Adres serwera DNS u mnie to 192.168.1.1. Jeśli w labie testujecie AD to ustawiacie adres serwera DNS na kontroler domeny.

set service dhcp-server shared-network-name 10.0.0.X subnet 10.0.0.0/24 start 10.0.0.10 stop 10.0.0.20 
set service dhcp-server shared-network-name 10.0.0.X subnet 10.0.0.0/24 default-router 10.0.0.1 
set service dhcp-server shared-network-name 10.0.0.X subnet 10.0.0.0/24 dns-server 192.168.1.1

Po dokonaniu konfiguracji należy ją zatwierdzić i zapisać.

commit 
save

Podsumowanie

W ten sposób z wykorzystaniem vyatty w około 15 minut możemy mieć skonfigurowany prosty router do naszego laba. Taka konfiguracja, może być z powodzeniem stosowana też po za labem do normalnego użycia zamiast zwykłego routera. Vyatte możemy zainstalować na normalny PC czy serwerze i potrafi nam dać możliwości takie jak rozwiązania kosztujące pięciocyfrowe kwoty w złotówkach.

Tworzenie szablonu maszyny wirtualnej z linuksem z wykorzystaniem System Center 2012 SP1 – Virtual Machine Manager

Jedną z ułatwiających życie funkcjonalności SCVMM jest tworzenie maszyn wirtualnych z szablonów z wstępną konfiguracją systemu np. nazwa komputera, hasło administratora itp.. Wadą tego rozwiązania była możliwość używania tego tylko dla maszyn z Windowsem. Od SP1 dla SCVMM2012 pojawiła się możliwość tworzenia szablonów maszyn wirtualnych z linuksem na pokładzie i wykorzystaniem ich do tworzenia nowych maszyn wirtualnych.

Tworzenie szablonu

Do stworzenia szablonu przygotowałem maszynę wirtualną z zainstalowanym 64-biotwym Centos 6.4 w wersji Minimal.

Tworzenie szablonu zaczynamy od instalacji VMM agent for Linux. Jest to agent SCVMM, który służy do skonfigurowania maszyny podczas tworzenia jej z szablony. Po poprawnym zakończeniu tworzenia maszyny agent sam usuwa się z systemu. Procedura instalacji agenta znajduję się na stronie – http://technet.microsoft.com/en-us/library/jj860429.aspx. Procedura jest szybka do wykonania i polega na:

  1. Skopiowaniu plików agenta z katalogu na serwerze VMM na naszą wzorcową maszynę. Pliki na serwerze znajdują się w C:\Program Files\Microsoft System Center 2012\Virtual Machine Manager\agents\Linux. Kopiowania możemy dokonać darmowym programem WinSCP
  2. Na linuksie przechodzimy do ścieżki gdzie skopiowaliśmy pliki agenta i nadajemy plikowi install prawo do uruchomienia poleceniem chmod +x install.
  3. Instalujemy agenta poleceniem ./install scvmmguestagent.1.0.0.544.x64.tar, dla 32-bitowego linuksa będzie to ./install scvmmguestagent.1.0.0.544.x86.tar.

Po instalacji agenta wyłączamy maszynę wirtualną i kopiujemy jej dysk do biblioteki VMM. Następnym krokiem jest stworzenie szablonu maszyny wirtualnej z przygotowanego dysku. W konsoli SCVMM przechodzimy do Library i wybieramy ze wstążki Create VM Template. Wskazujemy nasz dysk wzorcowy.

clip_image002

Podajemy nazwę szablonu.

clip_image004

W konfiguracji sprzętu dla karty sieciowej zaznaczamy statyczny adres MAC.

clip_image006

W Guest OS Profile wybieramy Create new Linux… i w Operating System wybieramy nasz system operacyjny.

clip_image008

Kreator ignoruje Configure Applications i Configrue SQL Server, ponieważ dotyczą one tylko Windows Server 2003 i wyższych.

Ostatnią krokiem jest podsumowanie tworzenia naszego szablonu. Klikamy Create i szablon jest gotowy do użycia.

clip_image010

Tworzenie maszyny wirtualnej z szablonu

W konsoli SCVMM wybieramy Create Virtual Machine. Wskazujemy nasz przygotowany szablon z linuksem.

clip_image012

Podajemy nazwę maszyny wirtualnej.

clip_image014

W konfigurację sprzętu maszyny na karcie sieciowej wybieramy, do jakiej sieci ma być podłączona.

clip_image016

Podajemy hostname systemu operacyjnego. W Root Credentials podajemy jakie ma być ustawione dla root’a.

clip_image018

Dalsza część kreatora jest już standardowa tak jak dla tworzenia pustej maszyny wirtualnej, czy z szablonu z Windowsem.

Podsumowanie

Tworzenie podstawowych szablonów z linuksem w SCVMM działa prosto i szybko. W wpisie zostało przedstawione tylko podstawowe tworzenie takiego szablonu. Dodatkowe możliwości rozbudowy szablonu daje RunOnce Commands, w których możemy wykonywać komendy, które zostaną uruchomione w czasie tworzenia maszyny. Jedną z możliwości tego mechanizmu jest wykorzystanie go do uruchamiania dodatkowych skryptów z zasobu NFS w celu bardziej zaawansowanej konfiguracji systemu operacyjnego.

Linux Integration Services 2.1 i upgrade krenela na maszynie wirtualnej.

Posiadając maszynę wirtualną na Hyper-V z zainstalowanym linuxem wraz z Intergration Services do niego po instalacji nowej wersji kernelu możemy być niemiło zaskoczeni, np. po restarcie nasz system na maszynie nie podsienie się i da nam taki komunikat: “Unable to mount root file system”.

Rozwiązaniem problemu jest użycie Dynamic Kernel Module Support wraz z Linux Integration Services. Opis jak to zrobić dla supportowanych dystrybucji linuxa znajdziemy w KB2387594(http://support.microsoft.com/kb/2387594)

Migracja Centos 6 z ESXi 5 do Hyper-V 2008 R2

Prosta maszyna z jednym nic i hdd. Nazwa vm to Audyt. Do konwersji dysku będzie potrzebny darmowy program StarWind V2V Image Converter(http://www.starwindsoftware.com/converter).

  1. Przy pomocy vSphere Client pobieramy plik vmdk z ESXi.Otrzymałem w ten sposób dwa pliki: Audyt-flat.vmdkAudyt.vmdk
  2. Dokonujemy konwersji dysku maszyny wirtualnej z vmdk do vhd.

    Wybieramy plik Audyt.vmdk do konwersji.

    Wybieramy format MS Virtual PC – w tym programie jest to nazwa określająca VHD

    Wskazujemy docelowy plik VHD

    Konwersja zakończyła się powodzeniem

  3. Tworzymy maszynę wirtualną Hyper-V z wykorzystaniem utworzonego wcześniej VHD.
  4. Uruchamiamy maszynę na Hyper-V i logujemy się do Linux
  5. Na uprawnieniach roota usuwamy VMware Open Tools poleceniem:
    yum remove vmware-open*
  6. Pobieramy i instalujemy Linux Integration Services Version v3.2 for Hyper-V(link). Instrukacja dostępna w PDF na stronie razem z  Linux Integration Services Version v3.2. Instalujemy zgodnie z instrukcją dla Red Hat Enterprise Linux 6.

Netflow probe za darmo

Potrzebowałem wyeksportować ruch do analizy w postaci pakietów NetFlow z przełączników, które nie posiadają takiej opcji. Po przeszukaniu Internetu padło na rozwiązanie w postaci serwera z Centos 6 i pakietem Softflowd oraz sklonowaniem całego ruchu(mam nadzieję, że ten zwrot jest poprawny :)) z jednego portu przełącznika na interfejs serwera, który nie ma przypisanego adresu ip z wykorzystaniem port mirroringu na przełączniku.
Serwer wyposażony w 2 karty sieciowe:

  • eth0 – interfejs, z którego będą generowane flowy
  • eth1 – interfejs do zarządzania serwerem

Konfiguracja Centos 6:

  1. Instalacja Centos 6 w wersji “Basic Server”
  2. Konfiguracja eth0
    DEVICE="eth0"
    ONBOOT=yes
    TYPE=Ethernet
    BOOTPROTO=no
  3.  Konfiguracja eth1
    DEVICE="eth1"
    ONBOOT=yes
    TYPE=Ethernet
    BOOTPROTO=dhcp
    DEFROUTE=yes
  4. Wykonanie aktualizacji poleceniem yum update
  5. Instalacji Development tools poleceniem yum groupinstall Development tools
  6. Wydanie polecenia yum install *pcap*
  7. Pobranie Softflowd poleceniem wget http://softflowd.googlecode.com/files/softflowd-0.9.8.tar.gz
  8. Wypakowanie Softflowd tar xvzf softflowd-0.9.8.tar.gz
  9. Przejście do katalogu Softflowd poleceniem cd softflowd-0.9.8
  10. Wydanie polecenia ./configure
  11. Wydanie polecenia make
  12. Wydanie polecenia make install

Przełącznik użyty w tym przypadku to 3com 5500G. Port, który będzie monitorowany to GigabitEthernet1/0/1, a port, na który będzie mirrorowany ruch to GigabitEthernet1/0/2.

Konfiguracja przełącznika 5500G:

<5500G>system
System View: return to User View with Ctrl+Z.
[5500G]interface GigabitEthernet1/0/2
[5500G-GigabitEthernet1/0/2]stp disable
[5500G-GigabitEthernet1/0/2]stp edged-port disable
[5500G-GigabitEthernet1/0/2]quit
[5500G]mirroring-group 1 local
[5500G]mirroring-group 1 mirroring-port GigabitEthernet1/0/1 both
[5500G]mirroring-group 1 monitor-port GigabitEthernet1/0/2
[5500G]display mirroring-group all
mirroring-group 1:
    type: local
    status: active
    mirroring port:
        GigabitEthernet1/0/1  both
    monitor port: GigabitEthernet1/0/2
[5500G]

Użycie softflowd

W celu testowego wyeksportowania pakietów NetFlow wydajemy polecenie na serwerze softflowd -i eth1 -m 30 -v 5 -n ip:port -L 64 -D

Aby eksport startował automatycznie po stracie systemu należy dodać do pliku /etc/rc.local linię z poleceniem:
/usr/local/sbin/softflowd -i eth1 -m 30 -v 5 -n ip:port -L 64

Do analizy polecam NetFlow Analyzer lub ntop.


WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera
Skip to toolbar