Официальный сайт студ.городка НГТУ
Software » Резервирование по IP, а-ля vrrp 

#1  20.07.07 22:07

Резервирование по IP, а-ля vrrp

Есть сервер с 2мя eth-интерфейсами воткнутыми в разные свичи. Нужно сделать виртуальный ip который будет висеть на  одном интерфейсе, и если у этого интерфейса падает линк, нужно чтобы ип перескочил на другой интерфейс.  Как подобное реализовать? В линуксе есть софт такой, а в винде есть нечто подобное?
Система w2k3.

Offline

#2  21.07.07 12:52

Re: Резервирование по IP, а-ля vrrp

Можно пакетниками реализовать.

Предположим, у тебя 2 подключения. Net1 и Net2
Net1:
IP: 192.168.0.2
mask: 255.255.255.0
gateway: 192.168.0.1

Net2:
IP: 192.168.1.2
mask: 255.255.255.0
gateway:192.168.1.1

Виртуальный адрес, который будем втюхивать:
192.168.2.2/255.255.255.0

Код::

@echo off
rem Copyright (c) Destructor-X, 2007
:net1
netsh interface ipv4 delete address "Net2" addr=192.168.2.2
netsh interface ipv4 add address "Net1" 192.168.2.2 255.255.255.0
:net1repeat
if exist tmp.tmp del tmp.tmp
if exist temp.tmp del temp.tmp
ping -n 2 192.168.0.1 >> tmp.tmp
type tmp.tmp |findstr 100% >> temp.tmp
call checksize temp.tmp
if exist temp.tmp goto net2
goto net1repeat

:net2
netsh interface ipv4 delete address "Net1" addr=192.168.2.2
netsh interface ipv4 add address "Net2" 192.168.2.2 255.255.255.0
:net2repeat
if exist tmp.tmp del tmp.tmp
if exist temp.tmp del temp.tmp
ping -n 2 192.168.1.1 >> tmp.tmp
type tmp.tmp |findstr 100% >> temp.tmp
call checksize temp.tmp
if exist temp.tmp goto net1
goto net2repeat

checksize также является пакетником со следующим текстом

Код::

if  %~z1 == 0 del temp.tmp

При запуске файла айпи нашивается на первый интерфейс, когда связь со шлюзом пропадает, адрес автоматически нашивается на второй. Если связь опять пропадёт, то снова на первый. И так пока окошко не закроешь.

Исправлено Destructor-X (21.07.07 12:55)

Offline

#3  21.07.07 13:04

Re: Резервирование по IP, а-ля vrrp

Можно ещё чё-то типа лога изменений сделать.
После :net1 вставить:

Код::

echo "Switching to network 1" >> log.txt
date /t >> log.txt
time /t >> log.txt

После :net2 вставить:

Код::

echo "Switching to network 2" >> log.txt
date /t >> log.txt
time /t >> log.txt

Offline

#4  21.07.07 14:40

Re: Резервирование по IP, а-ля vrrp

Спасибо огромное!
Вчера тоже начал в этом направлении думать... надо будет затестить
только наверное лучше еще к пингу добавить -w 1

Offline

#5  21.07.07 14:49

Maq
Профиль

Re: Резервирование по IP, а-ля vrrp

Destructor-X написал(а):

:net1repeat
if exist tmp.tmp del tmp.tmp
if exist temp.tmp del temp.tmp
ping -n 2 192.168.0.1 >> tmp.tmp
type tmp.tmp |findstr 100% >> temp.tmp
call checksize temp.tmp
if exist temp.tmp goto net2
goto net1repeat

не проще так:

:net1repeat
ping -n 2 192.168.0.1
IF %ERRORLEVEL% == 0 goto net2
goto net1repeat

??))

Offline

#6  21.07.07 14:52

Re: Резервирование по IP, а-ля vrrp

Maq написал(а):

Destructor-X написал(а):

:net1repeat
if exist tmp.tmp del tmp.tmp
if exist temp.tmp del temp.tmp
ping -n 2 192.168.0.1 >> tmp.tmp
type tmp.tmp |findstr 100% >> temp.tmp
call checksize temp.tmp
if exist temp.tmp goto net2
goto net1repeat

не проще так:

:net1repeat
ping -n 2 192.168.0.1
IF %ERRORLEVEL% == 0 goto net2
goto net1repeat

??))

пробовал, не везде работает как ни странно

Offline

#7  21.07.07 15:18

Maq
Профиль

Re: Резервирование по IP, а-ля vrrp

да и еще... вместо ип лучше использовать переменные, а то в случае если нужно что-либо менять, то не во всем скрипте, а только в одной строке))

Offline

Software » Резервирование по IP, а-ля vrrp 

ФутЕр:)

© Hostel Web Group, 2002-2026.   Сообщить об ошибке

Сгенерировано за 0.052 сек.
Выполнено 14 запросов.