Есть 2 сетевых смотрящих наружу интерфейса, eth0 195.34.32.11 шлюз 195.34.32.1, и eth1 88.88.1.20 шлюз 88.88.1.1.Шлюз по умолчанию - 195.34.32.1.
Для внешнего адреса 80.81.200.88 прописан маршрут через шлюз 88.88.1.1.
С локальной машины все нормально - весь трафик наружу идет через eth0, а трафик на 80.81.200.88 идет через eth1.
Вопрос - можно ли не заморачиваясь с разными таблицами маршрутизации сделать MASQUERADE, чтобы трафик с машин локалки шел согласно прописаным маршрутам?
> Есть 2 сетевых смотрящих наружу интерфейса, eth0 195.34.32.11 шлюз 195.34.32.1, и eth1
> 88.88.1.20 шлюз 88.88.1.1.
> Шлюз по умолчанию - 195.34.32.1.
> Для внешнего адреса 80.81.200.88 прописан маршрут через шлюз 88.88.1.1.
> С локальной машины все нормально - весь трафик наружу идет через eth0,
> а трафик на 80.81.200.88 идет через eth1.
> Вопрос - можно ли не заморачиваясь с разными таблицами маршрутизации сделать MASQUERADE,
> чтобы трафик с машин локалки шел согласно прописаным маршрутам?этот маршрут будет применяться как для пакетов от локальной машины, так и для транзитных ,если конечно в этих "разных таблицах ничего не на прописывали". смотрите чтобы SNAT/MASQUERADE правильно отработал
> Есть 2 сетевых смотрящих наружу интерфейса, eth0 195.34.32.11 шлюз 195.34.32.1, и eth1
> 88.88.1.20 шлюз 88.88.1.1.
> Шлюз по умолчанию - 195.34.32.1.
> Для внешнего адреса 80.81.200.88 прописан маршрут через шлюз 88.88.1.1.
> С локальной машины все нормально - весь трафик наружу идет через eth0,
> а трафик на 80.81.200.88 идет через eth1.
> Вопрос - можно ли не заморачиваясь с разными таблицами маршрутизации сделать MASQUERADE,
> чтобы трафик с машин локалки шел согласно прописаным маршрутам?А что, хотите сказать, сейчас он идет не согласно прописанным маршрутам ?
>> Есть 2 сетевых смотрящих наружу интерфейса, eth0 195.34.32.11 шлюз 195.34.32.1, и eth1
>> 88.88.1.20 шлюз 88.88.1.1.
>> Шлюз по умолчанию - 195.34.32.1.
>> Для внешнего адреса 80.81.200.88 прописан маршрут через шлюз 88.88.1.1.
>> С локальной машины все нормально - весь трафик наружу идет через eth0,
>> а трафик на 80.81.200.88 идет через eth1.
>> Вопрос - можно ли не заморачиваясь с разными таблицами маршрутизации сделать MASQUERADE,
>> чтобы трафик с машин локалки шел согласно прописаным маршрутам?
> А что, хотите сказать, сейчас он идет не согласно прописанным маршрутам ?Ну да! маршруты прописаны как указано.
Так же указано iptables -t nat -A POSTROUTING -j MASQUERADE.
При запросе с машины локальной сети на 80.81.200.88 пакет ломится через шлюз по умолчанию, т.е. eth0. Если запрос сделать с маршрутизатора то все нормально.
> Ну да! маршруты прописаны как указано.
> Так же указано iptables -t nat -A POSTROUTING -j MASQUERADE.
> При запросе с машины локальной сети на 80.81.200.88 пакет ломится через шлюз
> по умолчанию, т.е. eth0. Если запрос сделать с маршрутизатора то все
> нормально.Значит, как было сказано выше, всётаки "в разных таблицах что-то да понапрописано"....
рекомендую ознакомиться с
ip ru sh
ip ro sh table default
ip ro sh table main
=====
а также, не ленясь, сделать всё по уму:iptables -t nat -A POSTROUTING -j MASQUERADE -o eth0
iptables -t nat -A POSTROUTING -j MASQUERADE -o eth1т.е. два правила, с четким указанием интерфейсов, а еще лучше переделайте на -j SNAT
и также не ленясь, всё-таки сделать "линукс и два провайдера", заморачиваясь на таблицы маршрутизации.
Переделка "линукс и два провайдера" в контексте данного обсуждения особой важности не имеет, просто маршрутизация у вас не верна, была бы верна - трафик хоста маршрутизировался и маскарадился бы как ожидалось.
Ещё есть цель ROUTE, которая может применяться в самой последней цепочке таблицы mangle - POSTROUTNG. С помощью неё можно принудительно отправить пакет на нужный интерфейс уже после того как он прошел таблицы маршрутизации, но лучше сделать правильную маршрутизацию саму по себе, чем так извращаться.