По моему скудному разумению:
- пакет прилетевший гейту с первого провайдера имеющий адрес назначения $IP1 и порт 80 проходит PREROUTING
- у пакета адрес назначения меняется на 192.168.0.93, пакет проходит маршрутизацию и уходит в локалку
- апач отвечает на него пакетом у которого адрес назначения интернет, а адрес отправителя 192.168.0.93 и порт 80
- пакет проходит POSTROUTING, у него меняется адрес отправителя и по идеи пакет должен отправится через явно указанный интерфейс
Я дал ссылку, куда читать...
Не надо пытаться порвать TCP протокол на сотню маленьких медвежат - всё выдумано ещё до вас. DNAT сам разберётся, как менять адреса пакетов.
С пакетами пришедшими со второго провайдера ситуация должна быть аналогична, только IP веб-сервера в этом случае будет 192.168.0.193
C какого перепугу? Если адрес веб-сервера в локальной сети 192.168.0.93, то он такой и будет, независимо от того, с какого роутера ты к нему отсылаешь пакеты.
А вот на какой роутер возвращать ответы - читать ссылку выше.
Но судя по tcpdump пакеты уходят согласно правилам "веса" провайдеров.
С какого перепугу на веб сервере какие-то "весы" фигурируют?
У меня есть предложение, вы берёте в руки Dia, GIMP или Paint, рисуете свою сеть и внятно объясняете, чего вы хотите добиться.