Перейти к содержанию

Вопрос

Опубликовано (изменено)

Привет! Я пишу всякие сетевые приложули, и столкнулся с проблемой их тестирования, ибо при обращении по wan, роутер подставляет ответкой свой lan-адрес.
То есть, схема "мастер-сервер" + "сервер" + "клиент" - не работает в пределах одной локальной сети:
1. Сервер пробует условно залогиниться у мастера через wan, мастер от кинетика в ответке получает локальный адрес этого самого кинетика.
2. Клиент пробует получить по wan список серверов, и получает список одинаковых локальных адресов кинетика.
3. Клиент пробует подключиться по wan к серверу через локальный адрес кинетика который получил, и закономерно не может подключиться: кинетик не знает кому переправлять (разве что мучить таблицы трансляции адресов по отдельности для lan и wan).

Или пример посложнее, который принципиально не решаем с текущим положением дел:
1. Тот же сервер в локалке логинится у мастера по wan-адресу кинетика
2. Клиент из внешней сети, пытается получить у мастера тот же список адресов серверов, получает тот же список локальных адресов самого кинетика
3. Клиент пытается подключиться к своей локалке, и вообще ничего не может, ибо в его локалке вообще может не быть такого адреса.

Предлагаю более логичную схему, которая позволит работать в данных условиях, хотя возможно чуть нагрузит прошивку.
1. Если к роутеру обращаются по wan, он подменяет ответный адрес на свой wan, и мутит nat, мол если придёт ответ на wan по этому порту - отправить назад тому кто обращался.
2. Если к роутеру обращаются по lan  подменять оветку на свой lan.

Это вроде не очень сложно, хотя и сложнее чем сделать фон веб-интерфейса тёмным, и я сталкивался с подобной схемой работы nlb у старых кинетиков (вроде  giga 2, там, помнится, внешний подставлял)  : )

Изменено пользователем Alexey Wordly

Рекомендуемые сообщения

  • 0
Опубликовано

Можно создать для экспериментов отдельный сегмент и отключить на нём nat loopback. Команда появилась в прошивке 2.11: 

  • interface {name} no ip nat loopback

Если так сделать, кинетик не будет подставлять свой локальный адрес, и клиент будет получать от мастера список локальных адресов серверов, а не список адресов самого кинетика.

Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.