Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Изменение правил iptables "на лету"  (Прочитано 1240 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sochinets

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Прошу сильно не пинать, с Linux общаюсь совсем недолго, поиском пользовался, но не нашел ответа!
Проблема в следующем, не могу добиться, чтобы при наступлении определенного момента, а именно автоматического изменения шлюза по умолчанию, происходили изменения в iptables.
Опишу мой случай в примере:
-A TRY-SNAT -j SNAT --to-source 192.168.0.1 это работа через основной канал
-A TRY-SNAT -j SNAT --to-source 192.168.20.1 а вот так должно получиться при переходе на резервный канал
прикручивание в скрипт действий iptables -t nat -D TRY-SNAT -j SNAT --to-source 192.168.0.1
iptables -t nat -A TRY-SNAT -j SNAT --to-source 192.168.20.1 не приводят к желаемому результату!
Подскажите пожалуйста, что делаю не так!
« Последнее редактирование: 20 Июня 2013, 13:26:10 от sochinets »

Оффлайн vselax

  • Активист
  • *
  • Сообщений: 309
    • Просмотр профиля
Re: Изменение правил iptables "на лету"
« Ответ #1 : 20 Июня 2013, 13:39:00 »
Может, основной канал удаляется из начала правил, а дополнительный добавляется в конец? Наверно, лучше будет написать скрипт, который умеет полностью вычищать правила и полностью прогружать их, с нужними опциями и в правильном порядке.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13758
    • Просмотр профиля
Re: Изменение правил iptables "на лету"
« Ответ #2 : 20 Июня 2013, 13:49:16 »
А интерфейс тот же? Если два разных интерфейса, то и изменять ничего не надо - добавьте в условия обоих правил свой исходящий интерфейс и всё.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28479
    • Просмотр профиля
Re: Изменение правил iptables "на лету"
« Ответ #3 : 20 Июня 2013, 15:58:58 »
Пишешь два файла по шаблону
*nat
:TRY-NAT - [0:0]
-A POSTROUTING -j SNAT --to-source 192.168.0.1
COMMIT

Загружаешь нужный через iptables-restore... готово.
Но это лирика. Проза в том, что у вас, совершенно очевидно, правила совтавлены в отрыве от реальности. Какое может быть TRY в iptables?...
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн sochinets

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Изменение правил iptables "на лету"
« Ответ #4 : 30 Сентября 2013, 10:50:00 »
А интерфейс тот же? Если два разных интерфейса, то и изменять ничего не надо - добавьте в условия обоих правил свой исходящий интерфейс и всё.
три интерфейса: eth0 - основной канал, eth1 - резервный канал, eth2 - локальная сеть.
а как добавить интерфейс, если уже указано --to-source 192.168.0.1 это для eth0 или --to-source 192.168.20.1 это для eth1
постоянно работает только одно правило или первое или второе и меняются местами (одно удаляется - другое добавляется) при изменении основного шлюза!
Если я что-то не так понял, поправьте меня!

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13758
    • Просмотр профиля
Re: Изменение правил iptables "на лету"
« Ответ #5 : 30 Сентября 2013, 11:17:21 »
тяжко вспоминать, что там было 3 месяца назад.
Вам уже сказали, что правило SNAT далеко... ОЧЕНЬ далеко от совершенство. И для того, чтобы не костылить надо добавить хотя бы одно условие, например -o ethX

Оффлайн sochinets

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Изменение правил iptables "на лету"
« Ответ #6 : 30 Сентября 2013, 11:37:33 »
тяжко вспоминать, что там было 3 месяца назад.
Вам уже сказали, что правило SNAT далеко... ОЧЕНЬ далеко от совершенство. И для того, чтобы не костылить надо добавить хотя бы одно условие, например -o ethX
Правильно ли я понимаю, что две такие записи могут быть одновременно?
-A TRY-SNAT -o eth1 -j SNAT --to-source 192.168.20.1
-A TRY-SNAT -o eth0 -j SNAT --to-source 192.168.0.1

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13758
    • Просмотр профиля
Re: Изменение правил iptables "на лету"
« Ответ #7 : 30 Сентября 2013, 13:30:34 »
совершенно верно

Оффлайн sochinets

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Изменение правил iptables "на лету"
« Ответ #8 : 30 Сентября 2013, 14:49:09 »
совершенно верно
Спасибо большое, на днях попробую!

 

Страница сгенерирована за 0.085 секунд. Запросов: 25.