Как настроить Linux NAT маршрутизатор с одной сетевой картой


0

У меня есть несколько серверов Windows, работающих в виртуальной сети Azure с двумя подсетями. У меня есть контроллер домена 10.0.0.4 и серверы 10.0.1.4, 10.0.1.5 и т. Д. Я настроил VPN-соединение «точка-сайт», чтобы я мог установить VPN-подключение к виртуальной сети с моего компьютера. Когда я устанавливаю VPN-соединение, мой ПК получает IP-адрес 10.0.16.x. По умолчанию VPN-подключение, предоставляемое Azure, маршрутизирует только трафик 10.xxx через VPN, но я изменил это, установив флажок Использовать шлюз по умолчанию в удаленной сети.потому что я хочу, чтобы весь интернет-трафик проходил через Azure, когда я подключен к VPN. Когда я устанавливаю это соединение, я могу получить доступ к серверам в виртуальной сети Azure, но у меня нет подключения к Интернету. Насколько я понимаю, для обеспечения возможности подключения к Интернету потребуется маршрутизатор NAT.

Я добавил CentOS VM на 10.0.1.6. Он имеет только один сетевой адаптер, так как виртуальные машины Azure не могут иметь более одного сетевого адаптера. У меня есть два вопроса:

  1. Можно ли будет настроить маршрутизатор NAT с одним NIC? Если так, то как? Поиск в Google скрывает меня в лавине команд iptables, в основном для NAT-маршрутизаторов с двумя сетевыми картами. Я не могу найти ничего, что упрощает шаги настройки, необходимые для этого типа сценария. Я попробовал команды здесь , но это не удалось.

  2. На моем ПК после подключения к VPN я не совсем понимаю, что мне нужно делать. По сути, я хочу сделать шлюз по умолчанию 10.0.1.6? Если так, то как я это сделаю?

    route delete 0.0.0.0     
    route add 0.0.0.0. MASK 0.0.0.0 10.0.1.6
    

В случае, если это помогает, вот вывод ifconfigна CentOS VM:

eth0      Link encap:Ethernet  HWaddr 00:15:5D:61:7E:1E
          inet addr:10.0.1.6  Bcast:10.0.1.255  Mask:255.255.255.0
          inet6 addr: fe80::215:5dff:fe61:7e1e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:931 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1034 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:101709 (99.3 KiB)  TX bytes:162650 (158.8 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Вот фрагмент страницы конфигурации виртуальной сети Azure, который, как мы надеемся, поможет описать структуру сети. Я использую «Подсеть-1» для контроллеров домена, а «Подсеть-2» - это место, где живут все остальные серверы (включая виртуальную машину CentOS, которую я пытаюсь использовать в качестве маршрутизатора). Azure автоматически настраивает виртуальные машины в «Подсети-1» со шлюзом по умолчанию 10.0.0.1, а виртуальные машины в «Подсети-2» со шлюзом по умолчанию 10.0.1.1. Но эти шлюзы не являются серверами, которые я могу контролировать. Клиентам VPN выделяются IP-адреса из адресного пространства «подключение к сайту».

Скриншот конфигурации виртуальной сети Azure

(Я не могу публиковать изображения, по-видимому)

А вот ссылка на таблицу маршрутизации на (windows) vpn-клиенте (в данном случае после настройки 10.1.0.1 в качестве шлюза по умолчанию):

Таблица маршрутов на VPN-клиенте


Я заметил, что никто еще не ответил на этот пост. Я собирался, но это было «слишком сложно», так как не сразу видно (без лучших, чем в среднем, аналитических навыков / навыков чтения / моделирования), как работает сеть. Если никто не поможет, и вы создадите диаграмму, показывающую, как все это выглядит, я попробую помочь. Я подозреваю, что проблема связана с сетевыми масками и шлюзами.
Давидго

я не знаю, как создать диаграмму сети, но она проста: centos vm ip: 10.0.1.6 шлюз по умолчанию: 10.0.1.0 подключение к интернету: да клиент vpn ip клиента: 10.0.16.2 шлюз по умолчанию: 10.0.1.6 подключение к интернету: нет, когда я подключен к vpn, я могу пропинговать 10.0.1.6, и я могу пинговать 10.0.16.2 из 10.0.1.6. но у меня нет подключения к интернету. Я пытаюсь настроить iptables на Centos VM, но я не смог заставить что-либо работать, и я хочу убедиться, что это возможно только с 1 ник.
almaplayera

опечатка: шлюзом по умолчанию для CentOS VM является 10.0.1.1
almaplayera

Извините, недостаточно ясно - я не мог легко нарисовать сетевую диаграмму из предоставленной информации - никаких сетевых масок и неочевидно, где боксы совмещаются относительно маршрутизаторов. Да, это возможно с 1 никелем - VPN должен выступать в качестве второго сетевого адаптера, но для начала вам нужно настроить свои маски сетей. Вы можете скачать Dia (dia-installer.de) для большинства ОС, собрать диаграмму в виде png и загрузить или ссылку на нее.
Давидго

чтобы быть понятным, CentOS VM не является сервером VPN. я просто пытаюсь настроить его как маршрутизатор. Мне очень трудно полностью описать сеть, потому что некоторые компоненты являются частью инфраструктуры Azure, которую я не контролирую и о которой ничего не знаю. надеюсь, скриншот, который я разместил, предоставляет достаточно информации.
almaplayera

Ответы:


0

Сервер vpn, например, 10.0.0.1, всегда является первой остановкой для всего трафика ip, выходящего из клиента.

Так, если у вас есть трафик, идущий, например, на www.google.com, он должен сначала пересечь этот сервер vpn, потому что соединение vpn является связью точка-точка, то есть трафик от клиента имеет только один выход, который сервер.

Затем сервер vpn увидит пункт назначения трафика, и, поскольку сервер настроен не переадресовывать трафик, пунктом назначения которого является Интернет, он отбросит этот трафик.

Таким образом, сервер vpn всегда будет перехватывать и пропускать трафик, идущий в Интернет, вы не можете обойти его.

Вывод, трафик даже не достигнет сентосов, поэтому не будет запускать NAT.

Вы можете создать 2-й туннель от клиента до Centos (например, openvpn) внутри исходного туннеля vpn, чтобы скрыть интернет-трафик от сервера vpn.

Или другое решение - настроить веб-прокси на виртуальной машине Centos и настроить веб-браузер для этого прокси-сервера. Таким образом, http-трафик всегда будет исходить от клиента с целевым IP-адресом centos, а затем он достигнет прокси-сервера. , который будет перенаправлять в интернет, однако это решение работает только для http трафика.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.