skrypt do zmiany adresu mac - prośba o pomoc

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
toffi84
Piegowaty Guziec
Piegowaty Guziec
Posty: 7
Rejestracja: 31 paź 2010, 11:07
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: Brak
Architektura: x86_64

skrypt do zmiany adresu mac - prośba o pomoc

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 maili z załącznikami mija się z celem, wiec postawiłem FTP-a. Problem polega na tym, że serwer stoi na zwykłym PC, bez RAIDa, UPSa 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 :x. Na szczęścia mam do dyspozycji drugą identyczną maszynę (Dell Optiplex 755 :-P). 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
:rotfl:
Liczę na Waszą pomoc ;-) Wszelkie pomysły mile widziane. Z góry dziękuję za okazane łaski :-D

toffi84
Awatar użytkownika
karmelek
Przyjaciel
Przyjaciel
Posty: 883
Rejestracja: 10 lut 2007, 17:45
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: skrypt do zmiany adresu mac - prośba o pomoc

Post autor: karmelek »

Badanie dostępności zrób tak jak tutaj:

viewtopic.php?t=98647

Wyjście ze sprawdzenia zrób na zmienną sobie i potem
if zmienna=1
then
wszsytko do resetowania (po DHCP tam przydziela czy jakoś inaczej, dopasoawnie tego jest proste)
else
zakonczyc skrypt
i coś takiego do crona bym zapodał na awaryjnym.
Wszystkich moderatorów Bóg po śmierci zabiera do nieba, żeby ci dwadzieścia cztery godziny na dobę moderowali modlitwy do niego.
http://karmelek.wordpress.com
inny OS=debian lenny
Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 4707
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: x86_64

Odp: skrypt do zmiany adresu mac - prośba o pomoc

Post autor: jacekalex »

A nie lepiej to: http://en.wikipedia.org/wiki/Virtual_Ro ... y_Protocol

Opis znajdziesz tutaj: http://bromirski.net/docs/translations/lartc-pl.html
Stworzona całkowicie dla zapewnienia redundacji. Dwie maszyny ze swoimi własnymi adresami IP i MAC tworzą razem trzeci adres IP i MAC, który jest wirtualny. Oryginalnie protokół tworzono dla ruterów, które potrzebowały stałych adresów MAC, ale działa również dla innych serwerów.
Piękno tego podejścia przejawia się w niewiarygodnie prostej konfiguracji. Bez kompilacji kernela czy łatania - wszystko w przestrzeni użytkownika.
Uruchom po prostu to polecenie na wszystkich maszynach uczestniczących w implementacji:
# vrrpd -i eth0 -v 50 10.0.0.22


I już działa! 10.0.0.22 jest teraz obsługiwany przez jeden z twoich serwerów, prawdopodobnie pierwszy na którym uruchomiono demona vrrp. Odłącz ten komputer od sieci i zobaczysz, że bardzo szybko drugi komputer przyjmie adres 10.0.0.22 jak również adres MAC.
Próbowałem tego u siebie i miałem działającą konfigurację w ciągu minuty. Z jakiegoś dziwnego powodu implementacja postanowiła odrzucić moją domyślną bramę, ale flaga `-n' temu zapobiegła.
Poniżej `na żywo' symulacja awarii jednej z maszyn:

64 bytes from 10.0.0.22: icmp_seq=3 ttl=255 time=0.2 ms
64 bytes from 10.0.0.22: icmp_seq=4 ttl=255 time=0.2 ms
64 bytes from 10.0.0.22: icmp_seq=5 ttl=255 time=16.8 ms
64 bytes from 10.0.0.22: icmp_seq=6 ttl=255 time=1.8 ms
64 bytes from 10.0.0.22: icmp_seq=7 ttl=255 time=1.7 ms


Nie straciliśmy nawet jednego pinga! Zaraz po pakiecie numer 4 odłączyłem swoje P200 od sieci i 486 przejęło obsługę, co można poznać po większym opóźnieniu.
Vrrpd ma już kilka lat, ostatnio wypiera go program ucarp.
http://www.admin-hints.com/2009/04/ucar ... boxes.html
http://www.gentoo-wiki.info/HOWTO_Setup ... ring_UCARP

To by było na tyle
:craz:
Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux :)
toffi84
Piegowaty Guziec
Piegowaty Guziec
Posty: 7
Rejestracja: 31 paź 2010, 11:07
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: Brak
Architektura: x86_64

Odp: skrypt do zmiany adresu mac - prośba o pomoc

Post autor: toffi84 »

Dziękuję Wam za pomoc,
poczytałem trochę o Vrrpd i ucarp, niestety nie zdadzą one egzaminu do końca... Wszystko będzie chodzić ładnie w sieci lokalnej, ale serwer musi być widoczny "na zewnątrz" czyli musi dostać IP z publicznej puli adresów a nie z lokalnej i nie wiem czy jest to do wykonania przy użyciu pakietu ucarp albo vrrpd. Pozostaje mi chyba zasiąść do googli, poczytać trochę i spróbować napisać ten skrypt :)

pozdrawiam
toffi84
Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 4707
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: x86_64

Odp: skrypt do zmiany adresu mac - prośba o pomoc

Post autor: jacekalex »

Czyli adres IP dla interfejsu ucarp musi być adresesem publicznym, widocznym z internetu.
Łącze internetowe jest z księżyca przez antenę satelitarną, czy zarządza tym jakiś admin.
Oryginalnie protokół tworzono dla ruterów, które potrzebowały stałych adresów MAC, ale działa również dla innych serwerów.
I czy nie próbujesz przypadkiem pokonać szczytu lamerstwa, wystawiając publicznie dostępną usługę (ftp) na dhcp?

Bo jeśli masz powiązane IP z mac, to oznacza statyczne ustawienia, wystarczy skonfigurować ucarpa, żeby maszyny współdzieliły adres publiczny, i po sprawie.

A jak chcesz rzeźbić skrypty do podmiany maca na drugim serwerze, (moim zdaniem zupełnie bezsensowne działanie), to poczytaj o tym.

To by było na tyle
:craz:
Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux :)
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 8 gości