Путь интерфейса интерфейса туннеля Linux

У меня есть вопросы по потоку IP-пакетов для следующего сценария.

Сценарий:

  1. Интерфейс tun0 (10.0.0.2/8) и физическая беспроводная LAN-карта wlan0 (ip-адрес не исправляется) на стороне клиента, wlan0 может подключаться к Интернету,
  2. Другой интерфейс tun0 (10.0.0.1/8) и физическая карта ethernet eth0 (192.168.1.38/24) на стороне сервера (Ubuntu 12.04 amd64), eth0 находится в частной сети за брандмауэром NAT и может подключаться к Интернету через брандмауэр (межсетевой экран как шлюз),
  3. запустили « echo 1 > /proc/sys/net/ipv4/ip_forward » на стороне сервера,
  4. выполнили « iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE » на стороне сервера,

Вот схема сценария:

 --------------- ---------------- | | | | | client tun0 |----------| client wlan0 | | 10.0.0.2 | | ip not fix | | | | | --------------- ---------------- | | internet | | ---------------- | | | firewall | | (gateway) | | 192.168.1.1 | | | ---------------- | | private network | 192.168.1.0/24 | --------------- ---------------- | | | | | server tun0 |----------| server eth0 | | 10.0.0.2 | | 192.168.1.38 | | | | | --------------- ---------------- 

Я использовал две очень простые vpn-подобные клиент-серверные программы для чтения / записи ip-пакетов двух интерфейсов tun0 и создания туннеля между wlan0 и eth0, так что ip-пакеты от 10.0.0.2 могли достигать 10.0.0.1 и наоборот ( например, может запускать ftp с 10.0.0.1 до 10.0.0.2).

Однако, если я хочу использовать клиент tun0 (10.0.0.2) для просмотра веб-страниц, http-запрос будет происходить из 10.0.0.2 и дестабилизировать по интернет-адресу ip (конечно же, не 10.0.0.1). HTTP-запрос (я думаю) после достижения сервера tun0 (10.0.0.1) затем будет перенаправлен на сервер eth0 (поскольку ip_forward включен, и я думаю, что этот перенаправленный HTTP-запрос все равно будет иметь IP-адрес источника 10.0.0.2, исправьте меня, если я ошибаюсь), и там NAT выполняется, чтобы переупаковать HTTP-запрос как исходящий из eth0 (т.е. исходный ip-адрес изменяется на 192.168.1.38, поскольку я запустил команду iptables), а затем переупакованный HTTP-запрос проходит через брандмауэр (а затем и Интернет) до места назначения.

Когда HTTP-ответ (с веб-сайта) достигает сервера eth0, там должен быть обратный NAT. Мой вопрос:

  1. будет ли обратный NAT возвращать IP-адрес назначения ответа http на 10.0.0.2,
  2. как сервер eth0 знает, куда перенаправить HTTP-ответ с обратным NAT?
  3. будет ли eth0 перенаправлять HTTP-ответ на сервер tun0 (10.0.0.1), поскольку адрес IP-адреса получателя обратный-NATed должен быть 10.0.0.2?
  4. мне нужно добавить маршрут на стороне сервера для правильной маршрутизации / пересылки HTTP-ответа с обратным NAT? если да, то как?
  5. мне нужно добавить некоторые правила iptables на стороне сервера для правильной маршрутизации / пересылки HTTP-ответа с обратным NAT? если да, то как?

  • Почему на моем Linux PPPoE-подключении отображается иногда ошибка аутентификации?
  • Как получить доступ к сети без NetworkManager?
  • перенаправление веб-сервера?
  • CentOS на HyperV - eth0 не в ifconfig?
  • Маршрутизация мобильных соединений для нескольких восходящих линий
  • Периодически вызывается arp для проверки возможности подключения?
  • Настройка физической / виртуальной сети
  • Существуют ли какие-либо лазейки в IP, ограничивающие sshd?
  • One Solution collect form web for “Путь интерфейса интерфейса туннеля Linux”

    Предполагая, что ваш клиент отправляет весь трафик через tun0, вам нужно добавить следующее на стороне сервера (после включения / proc / sys / net / ipv4 / ip_forward):

     iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT 

    После этого шага, когда вы будете просматривать веб-страницы со своего клиента, следующий поток пакетов:

    1. Клиент отправит пакет в 10.0.0.1.
    2. На стороне сервера пакет, полученный на tun0, будет переведен с 10.0.0.2 на 192.168.1.38.
    3. В таблице NAT будет создана запись отображения.
    4. Пакет будет отправлен в интернет через 192.168.1.1 (шлюз).
    5. Ответ будет получен по адресу 192.168.1.38.
    6. Обратный NAT будет происходить согласно записи отображения, созданной на шаге 3.
    7. Пакет ответа будет перенаправлен обратно в 10.0.0.2.

    Надеюсь, что я не пропущу какой-то важный шаг 🙂

    Interesting Posts

    Как настроить двухсторонний дисплей в портретном режиме? (Арка)

    Использование sed для выравнивания текста, начиная с шаблона и заканчивая строкой

    У Linux была ошибка, когда чтение / dev / null привело к сбою системы?

    Clang / LLVM устанавливается в Slackware?

    rpm на CentOS 6.5

    Автоматический сценарий обновления с использованием Cron, Exit Codes и Logging

    Как я могу применить `cut` к нескольким файлам, а затем« вставить »результаты?

    Если процессы не могут изменить среду своего родителя, что делает MC?

    Гость Virtualbox Debian не может загрузить модуль xorg

    Добавление gdbm на Debian (Beagle Bone Black)

    ubuntu 13.04 wifi потерял соединение – как заставить его работать снова? (broadcom4313)

    Как удалить строки, соответствующие foo, но не соответствующие строке?

    Предупреждать о истечении срока действия пароля без изменения

    Какие платформы часто используют Linux, помимо x86?

    Запуск ядра реального времени на Debian

    Linux и Unix - лучшая ОС в мире.