Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: DNAT при раздаче интернета, как шлюз определяет кому отдать пакет на запрос?  (Прочитано 635 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн lega911

  • Автор темы
  • Участник
  • *
  • Сообщений: 203
    • Просмотр профиля
    • python & linux
для раздачи инета нужно:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
если адрес шлюза статический то можно сделать так:
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 208.77.188.166

т.е. во всех уходящих в инет пакета подменяется адрес отправителя на адрес шлюза, что-б сервер знал по какому адресу отправлять пакет в ответ.
когда ответный пакет прилетит у него будет адрес назначения = адрес шлюза. как шлюз определяет что этот пакет нужно переправить на другой хост? мы даже правило для этого не прописываем.
« Последнее редактирование: 28 Июля 2010, 23:23:45 от lega911 »


Оффлайн lega911

  • Автор темы
  • Участник
  • *
  • Сообщений: 203
    • Просмотр профиля
    • python & linux
http://www.google.com/search?q=как+устроен+nat
прочитал первые 5 результатов - ответа нет на мой вопрос.
но я уже догадался как оно могло быть реализовано. когда ответный пакет прилетит, шлюз идентифицирует его по порту на который он прилетел.

и тут видимо шлюз подменяет адрес назначения перед вызовом PREROUTING!

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Зачем гадать? Это всё легко проверяется. Ставишь ловушку ( -j LOG ) в таблицу и смотришь, что там вообще творится.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.03 секунд. Запросов: 23.