>[оверквотинг удален]
>>уровня ядра на уровень приложений, и всё. Натд - это даймон
>>уровня приложений, который умеет принимать и передавать пакеты, используя диверт сокеты,
>>производя соответствующую корректировку заголовков пакетов.
>>
>>Исходя из этого, первое сообщение топика является неверным.
>
>Я делаю Natd с пробросом, но пакеты на внутреенний сервер идут от
>внешнего адреса, тоесть заголовок не меняеться, и веб сервер пытаеться напрямую
>ответить клиенту.
>Разжуйте, ятуплю пипец. бред :-)
Поясняю:
есть s-nat и есть d-nat
когда делаем проброс - заменяется адрес получателя, тоесть д-нат (дестинейшн)
т.е. всё верно, пакеты на внутренний сервер идут от внешнего адреса.
внешние пакеты - до дната имели один адрес получателя, после дната - имеют адресом получателя адрес внутреннего сервера.
веб-сервер должен напрямую отвечать клиенту :-)
только маршрут пакета должен пройти сквозь натд, и натд обратно подменит адрес отправителя (_отправителя_, которым для ответного пакета является внутренний сервер) на адрес рутера, на которой исходно пришел входящий пакет.
Исходя из этих размышлений, делаем вывод, что либо у вас машина, на которой происходит днат, не является шлюзом по умолчанию для машины, на которую делается проброс, либо не происходит заворачивание на натд ответных пакетов в ипфв (что характерно для изначально изучивших айпитаблесы линуха, где это делается "автоматически" :-) ).
Ну и далее, надо как-то это дело исправлять.
-------------------
да, можно забить костыль, заменяя во входящем пакете как адрес отправителя, так и адрес получателя, но тогда вебсервер никогда не узнает, с какого адреса к нему пришел исходный запрос - такое решение технически возможно, но я его считаю некорректным :-)
//запускается два натд и делается по два диверта на каждый из них, два диверта для входящего пакета, на первый натд и на второй, и два диверта для ответных пакетов.