Я хотел бы сделать свое собственное приложение NAT для пользовательского режима.Как написать NAT в пользовательском режиме без привязки порта?
У меня есть на следующие схемы:
VM2 [192.168. 8.2] ------ [192.168. 8.1] Win2003 [192.168. 9.1] ------ [192.168. 9.2] VM1
VM3 [192.168. 8.3] _/
VM4 [192.168. 8,4] _/
- Я захватывая RAW IP-пакеты на 8.1 и 9.1 интерфейсов.
- Некоторые пакеты из 8.1 переносятся на 9.1 интерфейс таким образом: 8.2-> 9.2 заменен на 9.1-> 9.2
- Некоторые пакеты от 9.1 передаются на 8.1 интерфейс таким образом: 9.2-> 9.1 заменен 9.2-> 8.2
Мое приложение не связывает никаких портов вообще - оно захватывается только с интерфейсов.
Я видел этот сценарий:
- 8.2-> 9.2 переведенный в 9.1-> 9.2 содержит SYN пометка
- 9.2-> 9.1 переводилась на 9.2-> 8.2 containt SYN + ACK флаги
- И шаг 2 содержит 9.1-> 9.2 с флагом RST ...
Windows Server 2003 сбрасывает мое NAT-соединение. Я вообще не хочу связывать любые порты.
Как я могу справиться с этим?
UPDATE:
user1202136, как это возможно:
Использование брандмауэра Windows, чтобы блокировать RST пакеты из портов ваш пользовательского пространства NAT использует.
без написания собственного драйвера NDIS?
+1, правильная спецификация, правильный способ отфильтровывать сомнительные пакеты 'RST'. О, я люблю воспоминания о том, когда люди впервые начали делать это, чтобы их интернет-провайдеры не убивали своих загрузок ... \ * shakes cane \ * – MrGomez
... или если вы хотите добавить компонент, отличный от usermode, вы можете создайте промежуточный драйвер NDIS для удаления пакета RST, который вы не хотите видеть стек TCP (ов). – Kimvais
Я только что обновил свой вопрос, спасибо за ваши респирации! – k06a