1 (28.02.2014 16:35:08 отредактировано yuriisa)

Добрый день.
Сразу признаюсь, что в c Linux я на "Вы".. ac
Возникла ситуация,когда нужно настроить сервере на линукс со статическим айпи как шлюз и перебросить порты на другой сервер так же со статическим айпи.

Более пробробнее:
- Есть сервер на линукс и статическим айпи IP1;
- Есть сервер на винде, на котором 2 интернет каналы К2 и К3 со статическими айпи IP2 и IP3;
- Есть КПК с программой, которая передает по gprs данные по порту 1126 на IP2.
Иногда один из каналов перестает работать,потому нужно использовать сервер с IP1 как внешний шлюз и настроить переброску порта 1126 с IP1 на IP2, а когда IP2 недоступен, тогда с IP1 на IP3.
Как мне объяснили, нужно все настраивать через iptables, но так как я в линукс ноль, поршу помощи у гуру ab
Заранее, спасибо!

2 (28.02.2014 16:35:38 отредактировано Vascom)

Дистрибутив уже выбрал, установил? Какой именно?

Модераторы, перенесите эту тему в Администрирование и настройка сетей.

3

На сервере в данный момент графической оболочки нет, все через командную строку

4

Операционную систему нужно угадать?

5

Покажите вывод

# cat /proc/version

6

Или

cat /etc/os-release

7

Linux version 2.6.32-042stab084.10 (root@rh6-build-x64) (gcc version 4.4.6 20120  305 (Red Hat 4.4.6-4) (GCC) )

8 (28.02.2014 18:34:42 отредактировано lone_wolf)

yuriisa,
покажика лучше

Vascom пишет:

cat /etc/os-release

как просил Vascom,

Но это точно не Centos у него выхлоп немного другой.

Спросить - стыд минуты, не узнать - стыд всей жизни

9

root@sk:~# cat /etc/os-release
cat: /etc/os-release: No such file or directory

10

lone_wolf пишет:

покажика лучше

Этого файлика в старых осях не было.
(пришёл вместе c systemd)

11 (28.02.2014 18:49:07 отредактировано lone_wolf)

verg пишет:
lone_wolf пишет:

покажика лучше

Этого файлика в старых осях не было.
(пришёл вместе c systemd)

да соглашусь....  bs

Спросить - стыд минуты, не узнать - стыд всей жизни

12

Ответили люди, чей сервер я пользую, что там стоит debian 6 или 7

13 (01.03.2014 03:16:31 отредактировано lone_wolf)

yuriisa пишет:

Ответили люди, чей сервер я пользую, что там стоит debian 6 или 7

bj  да хозяева жгут напалмом
Ну что же 1 из сопутствующих возникших вопросов решен, едим дальше видим пень.

yuriisa пишет:

с IP1 на IP2, а когда IP2 недоступен, тогда с IP1 на IP3.

думаю это придется делать через скриптик с проверками bw

Спросить - стыд минуты, не узнать - стыд всей жизни

14

lone_wolf пишет:

думаю это придется делать через скриптик с проверками

можете "озвучить"?

15 (01.03.2014 03:36:18 отредактировано lone_wolf)

yuriisa пишет:
lone_wolf пишет:

думаю это придется делать через скриптик с проверками

можете "озвучить"?

к сожалению я в написании скриптов так же селен как в балете  ah
но общяя концепция такова :
ну скажем делается раз в 5 минут проверка пингом IP2 и если он не доступен то Стирается правило в табле :

 Консоль:
iptables -t nat -I PREROUTING --dport 1126 -j DNAT --to IP2:1126
iptables -I FORWARD -d IP2 --dport 1126 -j ACCEPT

и добавляет новое :
 Консоль:
iptables -t nat -I PREROUTING --dport 1126 -j DNAT --to IP3:1126
iptables -I FORWARD -d IP3 --dport 1126 -j ACCEPT

Спросить - стыд минуты, не узнать - стыд всей жизни

16

yuriisa пишет:

Как мне объяснили, нужно все настраивать через iptables, но так как я в линукс ноль, поршу помощи у гуру

за 2-3к рубля вам сделают все это за час-два :-)

It is good day to die ...
MS Windows 10
Заметки о главном...

17

не люблю крон, когда уже все будет основано на событиях?

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

18

moshell пишет:

не люблю крон, когда уже все будет основано на событиях?

cron рулит  bo

Спросить - стыд минуты, не узнать - стыд всей жизни

19

moshell пишет:

не люблю крон, когда уже все будет основано на событиях?

Оно? =)

20

verg пишет:

Оно? =)

не совсем понятно что это.

нужно что то в роде "вызов скрипта(функции/демона/etc) на основе какого то события"
и cron не нужен

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

21

moshell пишет:

нужно что то в роде "вызов скрипта(функции/демона/etc) на основе какого то события"
и cron не нужен

События - они разные бывают. Может inotify поможет?

22

было бы круто на уровне ядра.
чтоб было монолитно и не костыляво.
ядро сказало "да" и тут же запустился скрипт, или это из области фантастики?
безопасность и прочая лабуда

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

23

lone_wolf пишет:

ну скажем делается раз в 5 минут проверка пингом IP2 и если он не доступен то Стирается правило в табле :

IP2="192.168.1.1"
if ping -c1 $IP2; then
 # пингуется
 : # пустой оператор нужен для синтаксиса
else
  # не пингуется
  echo "не пингуется, TODO здесь нужно правила переписывать
fi
Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

24

moshell пишет:

не люблю крон, когда уже все будет основано на событиях?

на КАКИХ?

moshell пишет:

ядро сказало "да" и тут же запустился скрипт, или это из области фантастики?
безопасность и прочая лабуда

чего вы хотите-то?

напомню:

Иногда один из каналов перестает работать

мыши перегрызли витуху, ядро сказало "да"?

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

25

drBatty пишет:
if ping -c1 $IP2; then # пингуется 
 : # пустой оператор нужен для синтаксиса
else # не пингуется
 echo "не пингуется, TODO здесь нужно правила переписывать"
fi

Тогда уж

if ! ping -c1 $IP2 1>/dev/null 2>/dev/null; then # не пингуется 
 echo "не пингуется, TODO здесь нужно правила переписывать"
fi

26

bormant, я шаблончик сделал, который и сам по себе работает, и видно, как его дальше менять. Ну ваш вариант тоже годен. Как недостаток(ИМХО) -- он молча выполняется.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

27

lone_wolf пишет:
yuriisa пишет:
lone_wolf пишет:

думаю это придется делать через скриптик с проверками

можете "озвучить"?

к сожалению я в написании скриптов так же селен как в балете  ah
но общяя концепция такова :
ну скажем делается раз в 5 минут проверка пингом IP2 и если он не доступен то Стирается правило в табле :

 Консоль:
iptables -t nat -I PREROUTING --dport 1126 -j DNAT --to IP2:1126
iptables -I FORWARD -d IP2 --dport 1126 -j ACCEPT

и добавляет новое :
 Консоль:
iptables -t nat -I PREROUTING --dport 1126 -j DNAT --to IP3:1126
iptables -I FORWARD -d IP3 --dport 1126 -j ACCEPT

При попытке прописать  правило в таблицу выдает сообщение "iptables v1.4.8: unknown option `--dport'", в хелпе по iptables нет описание команды `--dport', связано ли это с версией ОС или iptables, или ошибка в самом тексте правила?

28 (04.03.2014 18:16:13 отредактировано lone_wolf)

yuriisa пишет:

При попытке прописать  правило в таблицу выдает сообщение "iptables v1.4.8: unknown option `--dport'", в хелпе по iptables нет описание команды `--dport', связано ли это с версией ОС или iptables, или ошибка в самом тексте правила?

в студию

 Консоль:
sudo iptables -V

Спросить - стыд минуты, не узнать - стыд всей жизни

29

root@sk:~# sudo iptables -V
iptables v1.4.8

30 (04.03.2014 18:18:26 отредактировано lone_wolf)

признаю допустил косяк надо так :

 Консоль:
iptables -t nat -I PREROUTING -p tcp --dport 1126 -j DNAT --to IP2:1126
iptables -I FORWARD  -d IP2 -p tcp --dport 1126 -j ACCEPT

ну так как неизвестно по какому протоколу идут пакеты я для наглядности написал tcp

Спросить - стыд минуты, не узнать - стыд всей жизни