[an error occurred while processing this directive]
|
Вот такая ситуация. На машине есть два канала в мир иной. То есть в интернет. Один основной, второй резервный. Соответственно два адаптера - eth2 и eth3. Но вот две незадачи - первая. Хочется уметь пинговать снаружи машину в обе дырки (каждая естественно имеет свой постоянный IP адрес). Когда пингуешь основной - проблем нет. Когда резервный - то ответ пинга благодаря дефолтному маршруту уходит тоже в основной, и естественно, не пингуется. Отсюда вопрос - как можно (и можно ли вообще) настроить рутинг так, чтобы ответы на то, что пришло из eth2, отправлялись в eth2, а то, что из eth3 - соотв. в eth3. Ну и дефолт, всех кто с eth0/1 - тех после NATа в eth2.
Проблема №2. Выяснение жив или не жив канал. Постоянно пингую список каких-то айпи-адресов. Если ни один из списка не ответил, значит канал eth2 сдох, переключаюсь на резервный eth3... Но продолжая пинговать через eth2 тех самых. Ожидая, когда провайдер починит канал. Чтобы переключится обратно. Сейчас я для этого перенастраиваю рутинг на время пинга, чтобы маршрут к пингуемому хосту шел через заданный гейт и заданный интерфейс. Потом вертаю взад. А как бы не дергать рутинг, а настроить его, чтобы все пинги по указанному адресу, сделанные с локальной машины (не форварды), шли не в дефолтный интерфейс, а в заданный? Пока смутное подозрение, что через iproute2 и маркирование iptables'ом icmp-пакетов, произведенных на локалхосте... Но не уверен...
P.S. Все это под FC4
P.P.S. Вот блин, какой х-ней только не приходится заниматься.
E-mail: info@telesys.ru