История изменений
Исправление intelfx, (текущая версия) :
Более глобально (тут, кажется, про это никто не писал), в Linux есть такой механизм, как connection tracking. Задача этого механизма — сопоставлять пакеты логическим соединениям. В случае (TCP,UDP)/IP это делается по комбинации адресов и портов отправителя и получателя, в случае других протоколов — другими методами.
В Linux информация о применённых (к соединению) NAT-преобразованиях хранится именно внутри этого механизма. Когда приходит ответный пакет, netfilter восстанавливает его принадлежность к конкретному соединению и применяет обратное преобразование.
Исправление intelfx, :
Более глобально (тут, кажется, про это никто не писал), в Linux есть такой механизм, как connection tracking. Задача этого механизма — сопоставлять пакеты логическим соединениям. В случае (TCP,UDP)/IP это делается по комбинации адресов и портов отправителя и получателя, в случае других протоколов — другими методами.
В Linux информация о применённых (к соединению) NAT-преобразованиях хранится именно внутри этого механизма. Когда приходит ответный пакет, netfilter восстанавливает его принадлежность к конкретному соединению и применяет обратное преобразование.
Исходная версия intelfx, :
Более глобально (тут, кажется, про это никто не писал), есть такой механизм, как connection tracking. Задача этого механизма — сопоставлять пакеты логическим соединениям. В случае (TCP,UDP)/IP это делается по комбинации адресов и портов отправителя и получателя, в случае других протоколов — другими методами. В Linux информация о применённых (к соединению) NAT-преобразованиях хранится именно внутри этого механизма. Когда приходит ответный пакет, netfilter восстанавливает его принадлежность к конкретному соединению и применяет обратное преобразование.