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

  • systemd - как заставить его отображать сетевую конфигурацию сразу после запуска сети?
  • Остановить netcat, когда VirtualBox закрывается
  • невидимый мостовой маршрутизатор с 2 таблицами маршрутов
  • беспроводная сеть
  • Обоснование статистики NIC (ethtool -S eth1)
  • Что именно происходит, когда я запускаю `netctl-auto enable-all`?
  • если HTTP-запрос похож на HTTP: // IP / path с прокси-сервером http, он перейдет в Интернет или Ethernet
  • Как настроить режим устройства через сеть
  • 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

    выйти из окна tmux без выхода из программы терминала

    Как выполнить повторение цикла while для возврата суммы?

    Найти создателя задачи

    команда bash / script для сброса маршрута по умолчанию

    Добавить строку, используя Sed на удаленной системе

    Как заставить кодировку / локаль (отличную от моей локали системы Linux) для приложений, отличных от Unicode Wine?

    Являются ли ограничения в linux (например, контролируемыми ulimit или /etc/security/limits.conf) для каждого пользователя или для каждого пользователя за процесс?

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

    Сначала необходимо выпустить команду STARTTLS, даже с ней в main.cf

    Проблемы с сетевым подключением между разными хостами из сетевого пространства имен в одном хосте

    Восстановить сформированную таблицу разделов на LVM Physical

    Правильное избежание двойных котировок для данных зацикливания?

    Apache – 403 Запрещено

    Сетевой апплет KDE не перечисляет AP, в то время как iwlist делает после некоторых дополнительных шагов

    Ubuntu Linux и SCO UNIX OpenServer

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