skrypt do zmiany adresu mac

Potrzebujesz pomocy z C, C++, perl, python, itp.
toffi84
Posty: 2
Rejestracja: 31 października 2010, 13:33

skrypt do zmiany adresu mac

Post autor: toffi84 »

Witam serdecznie.
Mam dość nietypowy problem i potrzebuję pomocy w stworzeniu skryptu, aby go rozwiązać.

Problem jest następujący:
w mojej firmie zaszła konieczność wymiany plików z innymi placówkami, wysyłanie ogromnej liczby e-maili z załącznikami mija się z celem, więc uruchomiłem FTP-a. Problem polega na tym, że serwer zainstalowany jest na zwykłym komputerze PC, bez RAID-u, UPS-a itd., a kierownictwo zdaje się mieć gdzieś względy bezpieczeństwa danych, i nie zapowiada się na to, by w najbliższym czasie pojawiła się jakaś lepsza maszyna, a ja zostałem z tym problemem sam.

Na szczęścia mam do dyspozycji drugą identyczną maszynę (Dell Optiplex 755.

Komputery mają przydzielane IP na podstawie MAC adresu karty sieciowej. Wpadłem więc na pewien pomysł. Chciałbym, aby komputer B (zapasowy, umieszczony w innym miejscu) co jakiś czas sprawdzał dostępność komputera A (podstawowy) i w razie braku odpowiedzi zmieniał MAC adres swojej karty sieciowej i restartował interfejs sieciowy eth0. Otrzymałby wtedy adres IP komputera A, co pozwoliłoby na zapewnienie ciągłości działania FTP-a (katalogi oczywiście są automatycznie synchronizowane co jakiś czas - rsync). Niestety, moja wiedza w tym zakresie skończyła się na:

Kod: Zaznacz cały

#!/bin/sh 
sudo ifconfig eth0 down 
sudo ifconfig eth0 hw ether 00112233445566 
sudo ifconfig eth0 up  
Liczę na Waszą pomoc. Wszelkie pomysły mile widziane. Z góry dziękuję za okazane łaski.

toffi84
Czocher
Beginner
Posty: 140
Rejestracja: 26 maja 2007, 23:19

Post autor: Czocher »

Cześć,
Ciekawy pomysł z tą zmianą MAC adresu, jednak osobiście poleciłbym ci zrobić to odrobinę inaczej.
Do głowy przychodzą mi dwa pomysły, podam je w kolejności zależnej od trudności ich wykonania (na początku łatwiejsze):
  1. Skoro masz dwa takie same komputery, to pewnie mają one takie same dyski twarde. By stworzyć RAID nie potrzebny jest specjalnie do tego przeznaczony kontroler, gdyż nowoczesne systemy linuksowe mają coś takiego jak "RAID programowy", który działa tak samo jak normalny ale nie potrzebuje kontrolera (choć przez to jest mniej wydajny, ale skoro byłby to RAID typu "mirroring" to wydajność byłaby zaledwie minimalnie mniejsza). Jest o tym sporo w sieci, z pewnością znajdziesz coś dla siebie wyszukując frazy "software raid linux".
  2. Można by wyciągnąć kartę sieciową z właściwym MAC adresem z tego serwera, który aktualnie ma przydzielany zewnętrzny adres IP, a następnie kupić jakąś (właściwie dowolną) maszynę, do której włożyłoby się właściwą kartę sieciową i pobawiło iptables tak, by równomiernie rozkładała obciążenie na dwa podległe sobie komputery (którymi byłyby te twoje dwie siostrzane maszyny, które by się ze sobą synchronizowały i miały idealnie te same pliki i konfigurację).
  3. Stworzyć ten skrypt, o którym mówisz.
    Skrypt wyglądałby pewnie jakoś tak:
    Jeżeli polecenie:

    Kod: Zaznacz cały

    nmap ADRES_IP_KOPUTERA_A -p PORT_FTP | grep open -c
    zwróci wartość 0 wówczas uruchom tę Twoją zmianę adresu MAC, w innym wypadku nie rób nic.
    Trzeba taki skrypt umieścić w nieskończonej pętli z oczekiwaniem np. minuty po każdym sprawdzeniu lub dodać do zadać crona co określony czas.
Odnosząc się do twoich pytań. Dlaczego "nmap" a nie "ping"? Bo komputer może działać i na pingi odpowiadać a usługa ftp nie, wówczas ping pokaże, że wszystko jest w porządku, natomiast nmap zwróci, że usługa jest niedostępna (co jest chyba tym co powinniśmy zrobić).
Awatar użytkownika
grzesiek
Junior Member
Posty: 932
Rejestracja: 06 stycznia 2008, 10:41
Lokalizacja: Białystok

Post autor: grzesiek »

toffi84 masz serwer z dynamicznie przydzielanym IP? Jeżeli miąłby statyczny, to ta zabawa z MAC adresami nie była by potrzebna, drugi komputer przejmuje pałeczkę (IP) a MAC szybko się zaktualizuje w LAN-ie.
toffi84
Posty: 2
Rejestracja: 31 października 2010, 13:33

Post autor: toffi84 »

Dziękuje Wam za odpowiedź.

Co do twoich propozycji Chocher to jak najbardziej brałem pod uwagę raid programowy, jednak zrezygnowałem z niego z prostej przyczyny, druga maszyna umieszczona w innej części budynku będzie mniej podatna na awarie zasilania, które z uwagi na trwające remonty są dosyć częste.

Grzesiek - komputery mają stałe IP, jest ono przydzielane poprzez DHCP na podstawie MAC adresu karty sieciowej. Aby komputer zapasowy dostał po awarii komputera podstawowego jego IP, karta sieciowa musi mieć MAC adres karty z komputera podstawowego
ODPOWIEDZ