Freesco, NND, CDN, EOS
http://forum.freesco.pl/

zmiana ip
http://forum.freesco.pl/viewtopic.php?f=22&t=11965
Strona 1 z 1

Autor:  b0dzi0 [ poniedziałek, 3 kwietnia 2006, 18:20 ]
Tytuł:  zmiana ip

witam, wykorzystałem skrypt który znalazłem na tym forum do zmiany ip (mam dsl i kilka adresów ip):
: [/] [] ()
#!/bin/sh
USECOLOR=yes
. /etc/rc.d/functions
zewip=xx.xx.xxx.83      #zewnetrzne ip ktore ma byc przydzielone
wewip=192.168.7.5       #wewnetrzne ip
brd=xx.xx.xxx.87        #adres rozgloszeniowy
mask=255.255.255.248    #maska sieci
dev=eth0                #interfejs zewnetrzny (np. eth0)

case "$1" in
    start)
        stat_busy "Start przydzielania zewnetrznego IP"
        ifconfig $dev:3 $zewip broadcast $brd netmask $mask up
        /usr/sbin/iptables -t nat -I PREROUTING -s 0/0 -d $zewip -j DNAT --to $wewip
        /usr/sbin/iptables -t nat -I POSTROUTING -s $wewip -d 0/0 -j SNAT --to $zewip
        /usr/sbin/iptables -I FORWARD -d $zewip -j ACCEPT
        /usr/sbin/iptables -I FORWARD -s $wewip -j ACCEPT
        /usr/sbin/iptables -I FORWARD -d $wewip -j ACCEPT
        /usr/sbin/iptables -I INPUT -d $zewip -j ACCEPT
        stat_done
        ;;
    stop)
        stat_busy "Zatrzymanie przydzielania zewnetrznego IP"
        ifconfig $dev:3 down
        /usr/sbin/iptables -t nat -D PREROUTING -s 0/0 -d $zewip -j DNAT --to $wewip
        /usr/sbin/iptables -t nat -D POSTROUTING -s $wewip -d 0/0 -j SNAT --to $zewip
        /usr/sbin/iptables -D FORWARD -d $zewip -j ACCEPT
        /usr/sbin/iptables -D FORWARD -s $wewip -j ACCEPT
        /usr/sbin/iptables -D FORWARD -d $wewip -j ACCEPT
        /usr/sbin/iptables -D INPUT -d $zewip -j ACCEPT
        stat_done
        ;;
    restart)
        $0 stop
        sleep 1
        $0 start
        ;;
    *)
        echo "usage $0 (start|stop|restart)"
esac
exit 0
Działa ok.
poszedlem o krok dalej i zrobilem podobny skrypt z ip .84 tez dla ip wew. 7.5, ze zmianą $dev:3 na $dev:4. Działa też ok. Problem mam teraz taki, że gdy chce aby komp 7.5 miał ip to samo co serwer i pozostali, nie zawsze mi to wychodzi, przerobilem powyzszy skrypt na taki
: [/] [] ()
#!/bin/sh
USECOLOR=yes
. /etc/rc.d/functions
zewip=xx.xx.xxx.82      #zewnetrzne ip ktore ma byc przydzielone
wewip=192.168.7.5       #wewnetrzne ip
brd=xx.xx.xxx.87        #adres rozgloszeniowy
mask=255.255.255.248    #maska sieci
dev=eth0                #interfejs zewnetrzny (np. eth0)

case "$1" in
    start)
        stat_busy "Powrot do IP 82"
        /usr/sbin/iptables -t nat -I PREROUTING -s 0/0 -d $zewip -j DNAT --to $wewip
        /usr/sbin/iptables -t nat -I POSTROUTING -s $wewip -d 0/0 -j SNAT --to $zewip
        /usr/sbin/iptables -I FORWARD -d $zewip -j ACCEPT
        /usr/sbin/iptables -I FORWARD -s $wewip -j ACCEPT
        /usr/sbin/iptables -I FORWARD -d $wewip -j ACCEPT
        /usr/sbin/iptables -I INPUT -d $zewip -j ACCEPT
        stat_done
        ;;
    stop)
        stat_busy "Dziala jedynie START"
        stat_done
        ;;
    restart)
        $0 stop
        sleep 1
        $0 start
        ;;
    *)
        echo "usage $0 (start|stop|restart)"
esac
exit 0
i nie zawsze mi to działa: raz uda sie wrócić na "normalne" ip, raz niestety nie, czasem jest nawet tak że jak wracam z ip 86 na "normalne" to wraca mi np na 83, lub dowolne inne, bałwan jestem wraca na 82. Co robie źle :?:

Autor:  tasiorek [ poniedziałek, 3 kwietnia 2006, 18:44 ]
Tytuł: 

Jaki powrot? Jaka zmiana ip? Skrypt sluzy do przydzielenia userowi zewnetrznego ip. Modyfikujesz tylko te 5 zmiennych na gorze, a jak chcesz przydzielic jeszcze jedno innemu kompowi to zmieniasz tez :2 na :3 (jest w skrypcie 2 razy). Reszty nie tykaj. Odpalasz go poleceniem: /pelna/sciezka/do/pliku start, a zatrzymujesz /pelna/sciezka/do/pliku stop nie wiecej nie kombinuj. Jak chciales osiagnac cos innego to opisz to, ale mniej pokretnie niz w poscie powyzej.

Autor:  b0dzi0 [ poniedziałek, 3 kwietnia 2006, 19:06 ]
Tytuł: 

chciałem osiągnąć to, że moge zmieniać userowi ip zewnętrzne, aby miał raz ip .82, raz .83 itd...
może wybrałem do tego złą metodą z tym zewnętrznym ip, ale tylko to mi przyszło do głowy i znalazłem to na forum i coś z tym zrobiłem. jak odpalić ten skrypt to wiem :)

Autor:  tasiorek [ poniedziałek, 3 kwietnia 2006, 19:12 ]
Tytuł: 

No to po co w nim grzebiesz i tworzysz jakies cudaki "do powrotu"? Po prostu uruchom go z parametrem stop i gosc bedzie mial takie ip jak reszta.

Autor:  b0dzi0 [ poniedziałek, 3 kwietnia 2006, 19:18 ]
Tytuł: 

niestety tak nie jest, po komendzie STOP w ifconfig nie ma utworzonego dev:3 ale internet dalej chodzi na tym ip...

Autor:  tasiorek [ poniedziałek, 3 kwietnia 2006, 19:32 ]
Tytuł: 

W cuda wierzysz? Wyczysc sobie cache przegladarki, albo popros kogos, zeby spingowal to ip z zewnatrz jak juz wylaczysz.

Autor:  b0dzi0 [ poniedziałek, 3 kwietnia 2006, 19:35 ]
Tytuł: 

czyszczony cash był, niestety to nie dziala... sprawdzalem wielokrotnie na roznych stronkach podajacych moje ip...
po komendzie STOP, koleś mógł się podłączyć do mojego FTP na ip 83 (a powinien być 82 po stop) :?

Autor:  tasiorek [ poniedziałek, 3 kwietnia 2006, 19:38 ]
Tytuł: 

Widze trzy mozliwosci: uruchomiles skrypt kilka razy, komenda stop sypie bledami, albo masz cudowny serwer, bo jak inaczej moze przekazywac pakiety z ip na ktorym nawet nie nasluchuje.

Autor:  b0dzi0 [ poniedziałek, 3 kwietnia 2006, 19:42 ]
Tytuł: 

nie wiem co jest nie tak, stop nie wywala zadnych błędów :/
może powiesz jakTy byś to zrobił :?: aby można było szybko i sprawnie zmienić ip, i wrócić na stare, nie koniecznie musi to być zewnętrzne ip.
Dodałbym dev:2, dev:3 itd dla poszczególnych ip, i dalej nie wiem jak przypisać ipLAN do danego dev:nr :?

Autor:  -MW- [ poniedziałek, 3 kwietnia 2006, 19:56 ]
Tytuł: 

cos mi sie zdaje ze wszyscy mowia ale nie o tym samym.

klient w dalszym ciagu ma ip lan po uruchomieniu skryptu, a widziany jest w necie pod ip zewnetrznym utworzonym na aliasie.
wszystkie pakiety na ip zew. aliasu kierowane sa do niego i odwrotnie.

jesli wylaczysz skrypt to widoczny jest pod ip interfejsu rzeczywistego routera.

Autor:  tasiorek [ poniedziałek, 3 kwietnia 2006, 20:09 ]
Tytuł: 

Ok przyjrzalem sie temu dokladnie i faktycznie jest z tym problem. Dopoki wpis o polaczeniu jest w ip_conntrack, to mozna z niego korzystac. Tzn. jak ktos sie niedawno laczyl z tym kompem, to bedzie sie mogl dalej laczyc. Mozna sie zastanowic nad blokiem forwardu z danego ip zew do wew dopoki wpis w ip_conntrack nie wygasnie.

Autor:  b0dzi0 [ poniedziałek, 3 kwietnia 2006, 22:10 ]
Tytuł: 

no wlasnie widze ze jest nie tak jak bym tego chcial, ale jestem zbyt "zielony" by to naprawić :?
Na starym serwerze znalazłem regułkę którą używałem do przekierowania usera na inne ip:
: [/] [] ()
$IPTAB -s 192.168.7.2 -t nat -I POSTROUTING -j SNAT --to-source xx.xx.xxx.83                   
$IPTAB -d xx.xx.xxx.83 -t nat -I PREROUTING -j DNAT --to-destination 192.168.7.2
i to dzialało, może teraz da sie to przerobić na nnd i też będzie :?:

Autor:  tasiorek [ poniedziałek, 3 kwietnia 2006, 22:41 ]
Tytuł: 

Jakbys nie zauwazyl, to ten skrypt, ktory wkleiles dziala na tej samej zasadzie.

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/