| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Сетевые технологии > какие порты в ответном UDP у сервера за NAT? |
| Автор: semibug 11.10.2011, 19:35 |
| Есть клиент (PC), и сервер (железяка на микроконтроллере). Клиент отправляет UDP пакет с портом источника 1100, и портом назначения 1200. Сервер принимает его и отправляет ответное с портом источника 1200, и портом назначения 1100. Пока все работает. Теперь выношу сервер за NAT, вижу, что на него приходят UDP пакеты с портом назначения 1200, а вот портом источника совсем другим, причем не одинаковым. Это в общем то нормально для NAT. Но не понятно как теперь выдать ответ, чтобы он попал клиенту? Какие указать порты источника/назначения? Честно говоря перепробовал все варианты, не работает, поэтому причина не только в этом, а ещё в настройках роутера/фаирвола, но чтобы сузить область поиска, хотелось бы знать наверняка, какие должны быть указаны порты источника/назначения в ответе от сервера? |
| Автор: semibug 11.10.2011, 20:56 | ||
Упс, здесь я не в теме, можно подробнее.
Т.е. адрес порта назначения исходящего от сервера пакета = адрес порта назначения входящего пакета? В какое значение установить адрес источника для исходящего от сервера пакета? |
| Автор: Akina 11.10.2011, 22:58 |
Если я верно понимаю, то сервер в Инете, а клиент в локалке. Не суть, где именно, но принцип тот же. В этом случае следует использовать настройку NAT на обеспечение отдачи пакетов с определёнными характеристиками с определённого исходящего порта. Впрочем, это несколько противоречит идеологии NAT... (в скобках замечу, что не знаю ни одной имеющей практический смысл реализации такого подхода) Однако возможно иное и решение - трансляция внутрь на опредедлённый адрес и порт пакетов с определёнными характеристиками. Но при этом придётся изменить схему установления соединения. Проблема - только один клиент из локалки сможет в любом из вариантов общаться с сервером. Для нормальной работы, я полагаю, Вам следует отказаться от статического назначения клиентского порта, и устанавливать сеанс именно с тем портом, с которого инициировано подключение. |
| Автор: semibug 12.10.2011, 00:31 |
| Akina, спасибо. Заработало когда в ответном сообщении менял местами источник и цель у портов, ip и mac адреса. |