Путь интерфейса интерфейса туннеля 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? если да, то как?

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.

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

  • Как установить беспроводной ключ с помощью nmcli интерактивно и безопасно, не вводя его в команду
  • VMware трассирует только хост-виртуальную машину через двойную виртуальную машину только для хоста / NAT
  • Протокол маршрутизации AODV на модели малины Pi B?
  • Arch Linux не подключается к Wi-Fi больше
  • Есть ли способ восстановить сетевой стек?
  • Разделение портов / IP-трафик между интерфейсами
  • Ubuntu eth0 не обнаружен
  • контролировать состояние сети для сценария systemd
  • Интернет не работает при использовании статического IP-адреса. Никаких текущих решений не работает
  • Как маршрутизировать пакеты между частными сетями в Linux?
  • Остановить netcat, когда VirtualBox закрывается
  • Interesting Posts

    Запись и воспроизведение того, что происходит от микрофона одновременно

    Проблема с командой wc

    Функция bash, которая отправляет электронную почту после завершения работы

    Как я могу обернуть расширение переменной в кавычки?

    Как я могу форматировать флэш-накопитель, чтобы удалить все существующие файлы?

    Kernel Panic не выдает никаких файлов журнала

    NTPDate запускается три раза при загрузке, что приводит к неправильной дате

    Разрешить все команды через sudo, но nopasswd для определенных команд

    библиотека perl getopts.pl

    Как отображать команды, выполняемые через ssh и их IP-адрес пользователя?

    Почему я не могу использовать Maltego на Kali?

    Нужна помощь в преобразовании строки из файла в дату

    Найти использование дискового пространства в каталоге и всех его файлов

    Does -o и -i имеют смысл, когда целевой хост уже подключен к указанному интерфейсу?

    Выполните процесс в текущей области, перенаправляя stdio в / из панели

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