Page 1 of 2

2 IP на одном сервере

Posted: Fri Sep 22, 2017 12:11 pm
by hdseo
Приветствую!

Возникла следующая ситуация...

Есть сервер на Ubuntu 16.04 с VestaCP подключенный по проводному соединению к роутеру с внешним статическим IP, на котором крутятся сайты.
Есть второй роутер с Wi-Fi, с динамическим IP и настроенным dynamic DNS сервисом от dlinkddns.com.

Есть большое желание задействовать для нового сабдомена (предположим www.site.ru) ресурсы второго роутера (того, который с динамическим IP).
Проблема заключается еще и в том, что на сервере есть только одна сетевая карта, но у меня имеется Wi-Fi приемник D-Link DWA-125 и я подумал, что можно попробовать использовать его, вместо второй сетевухи.
В общем вставил свисток, подключился через Wi-Fi к второму роутеру, настроил на роутере DMZ для нового подключения к серверу (192.168.0.12), добавил в админке "Весты" новый IP (192.168.0.12) к уже имеющемуся (192.168.0.13) с статическим IP, добавил www.site.ru и связал его с новым IP.
В итоге все добавилось и настроилось, но новый сайт не открывается с удаленных компьютеров, также я не могу получить доступ к веб-интерфейсу второго роутера с сервера. Вероятно это происходит из-за того, что в качестве основного подключения используется проводное подключение к первому роутеру с статическим IP. Возможно именно по этой же причине я не могу получить доступ к www.site.ru с удаленной машины.

Не ругайте, не бейте, а знающие пожалуйста помогите советом!
Я прекрасно понимаю, что все это то еще извращенство, но другого варианта на данный момент не имею.

Re: 2 IP на одном сервере

Posted: Fri Sep 22, 2017 6:36 pm
by upxbotx
очень сложно понять что к чему
используйте схемы вида сервер1 -> роутер1
так будет проще понять
по поводу открытия админки роутера
роутер1 и роутер2 должны быть в разных подсетях
то есть роутер1 192.168.1.1
роутер2 192.168.2.1 для примера

Re: 2 IP на одном сервере

Posted: Sat Sep 23, 2017 7:50 pm
by hdseo

Code: Select all

server1 -> wired connection -> router1 (192.168.0.13)

Code: Select all

server1 -> wi-fi connection -> router2 (192.168.1.12)
Сделал так как вы посоветовали, т.е. перенастроил router2 на другую подсеть.
К сожалению цель пока не достигнута...
В первом случае сайты работают без проблем.
Во втором случае изменилось только то, что сайт начал открываться с других компьютеров в одной подсети (при обращении к 192.168.1.12), но с удаленных компьютеров сайт по прежнему недоступен.
Очень странная ситуация... Причем несмотря на использование DDNS router2 работает правильно. В качестве эксперимента я запускал на своем ноутбуке Open Server и сайт открывался с удаленных компьютеров.

Re: 2 IP на одном сервере

Posted: Mon Sep 25, 2017 9:45 am
by gecube_ru
то есть роутер1 192.168.1.1
роутер2 192.168.2.1 для примера
необязательно, но это ОЧЕНЬ упрощает настройку....
Причем несмотря на использование DDNS router2 работает правильно.
с роутером история какая... Внешний адрес НА НЕМ. Т.е. это означает, что
(а) на нем нужно разрешить 80-й порт
(б) пробросить его внутрь сети на локальный сервер (DMZ, port forwarding - может по-разному называться)
(в) на файрволле в весте разрешить трафик на 80-й с любых адресов и учесть, что т.к. роутер в локальной сети по отношению к серверу, то нужно закрыть с него ssh и все потенциально опасные сервисы (на свой вкус)
(г) проверить, что в виртуальных зонах для nginx прописаны директивы listen :80 (т.е. БЕЗ IP и сервер слушает на всех возможных адресах), либо прописаны директивы для локального адреса, который доступен с роутера #2.

Re: 2 IP на одном сервере

Posted: Mon Sep 25, 2017 4:22 pm
by hdseo
gecube_ru wrote: (а) на нем нужно разрешить 80-й порт
(б) пробросить его внутрь сети на локальный сервер (DMZ, port forwarding - может по-разному называться)
Т.к. DMZ на обоих роутерах уже включен, необходимость в пробросе портов, как мне кажется, отпадает. Тем более сайт доступен с удаленных компьютеров при использовании Open Server на моем ноутбуке, как я уже описывал выше.
gecube_ru wrote: (в) на файрволле в весте разрешить трафик на 80-й с любых адресов и учесть, что т.к. роутер в локальной сети по отношению к серверу, то нужно закрыть с него ssh и все потенциально опасные сервисы (на свой вкус)
(г) проверить, что в виртуальных зонах для nginx прописаны директивы listen :80 (т.е. БЕЗ IP и сервер слушает на всех возможных адресах), либо прописаны директивы для локального адреса, который доступен с роутера #2.
Пробовал в файрволле разрешать доступ на 80 порт с 0.0.0.0/0, с 192.168.1.12, с внешнего динамического IP, а также полностью выключал файрволл, но все безрезультатно.
Также менял конфиг nginx для сайта с listen 192.168.1.12:80 на listen :80, что тоже никак не повлияло на ситуацию.
Результат пока прежний... _www.site.ru привязанный к router2 открывается только внутри сети router2, в т.ч. и с других компьютеров при обращении к 192.168.1.12.

Re: 2 IP на одном сервере

Posted: Mon Sep 25, 2017 7:04 pm
by ahouse
для начала, вам нужно разделить трафик на вашем сервере. чтобы понимать какой куда отправлять.
%99 что у вас 1 дефолтный маршрут
тоесть пришел пакет на один роутер, занатился. попал на сервр, обработался, и ушел не обратно, а на дефолтный гейт. естественнно это не догма, стоит проверить. пишите, сюда, будем разбираться

Re: 2 IP на одном сервере

Posted: Tue Sep 26, 2017 12:28 am
by hdseo
ahouse wrote:для начала, вам нужно разделить трафик на вашем сервере. чтобы понимать какой куда отправлять.
%99 что у вас 1 дефолтный маршрут
тоесть пришел пакет на один роутер, занатился. попал на сервр, обработался, и ушел не обратно, а на дефолтный гейт. естественнно это не догма, стоит проверить. пишите, сюда, будем разбираться
Признаться честно, я совершенно не разбираюсь в детальной настройке сетей.
Вот что выводят команды:

Code: Select all

# ifconfig
enp2s0    Link encap:Ethernet  HWaddr 6c:62:6d:b5:e9:66  
          inet addr:192.168.0.13  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::9949:7449:2dd4:9f5f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14209288 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14218111 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:10377642195 (10.3 GB)  TX bytes:8472213769 (8.4 GB)

lo        Link encap:Локальная петля (Loopback)  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:3620703 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3620703 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:25528980027 (25.5 GB)  TX bytes:25528980027 (25.5 GB)

wlx9094e405370c Link encap:Ethernet  HWaddr 90:94:e4:05:37:0c  
          inet addr:192.168.1.12  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::5c73:33f0:55cc:c173/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:63122 errors:0 dropped:1 overruns:0 frame:0
          TX packets:44667 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:20062181 (20.0 MB)  TX bytes:4409620 (4.4 MB)

Code: Select all

# ip route show
default via 192.168.0.1 dev enp2s0  proto static  metric 100 
default via 192.168.1.1 dev wlx9094e405370c  proto static  metric 600 
169.254.0.0/16 dev enp2s0  scope link  metric 1000 
192.168.0.0/24 dev enp2s0  proto kernel  scope link  src 192.168.0.13  metric 100 
192.168.1.0/24 dev wlx9094e405370c  proto kernel  scope link  src 192.168.1.12  metric 600
Как для всего этого настраивать маршруты, не имею ни малейшего понятия...

Re: 2 IP на одном сервере

Posted: Tue Sep 26, 2017 5:01 am
by ahouse
просто так не может быть два дефолтных маршрута. нато он и дефолтный

соответствнно, первый дефолтный затирается настройками второго.

Нужно вместо одного дефолтного добавить запись вида

route add -net 192.168.1.0 netmask 255.255.255.0 wlx9094e405370c


для проверки как ходят пакеты используй mtr

Re: 2 IP на одном сервере

Posted: Tue Sep 26, 2017 6:32 am
by gecube_ru
для начала, вам нужно разделить трафик на вашем сервере. чтобы понимать какой куда отправлять.
%99 что у вас 1 дефолтный маршрут
тоесть пришел пакет на один роутер, занатился. попал на сервр, обработался, и ушел не обратно, а на дефолтный гейт. естественнно это не догма, стоит проверить. пишите, сюда, будем разбираться
честно говоря, думал о таком. А здесь в голове у меня уже немного путаница происходит. Роутер только лишь DST адрес пакета подменяет на целевой внутри локалки? Или он еще и SRC поменяет, чтобы пакет пошел через него наружу? Кстати, это важно, т.к. если он SRC не поменяет, то действительно выходной пакет пойдет через default gateway, т.е. первый роутер, а оттуда его не ждут...

Получается, нужно или
(а) колхозить правила файрволла на самом сервере, чтобы он определял откуда пришел пакет, метил его и отправлял туда же
(б) или на роутере еще включать подмену SRC...

Есть еще третий вариант - выкинуть всю конструкцию нафиг и купить один нормальный роутер, завести на него все входящие потоки и настроить его нормально )

Re: 2 IP на одном сервере

Posted: Tue Sep 26, 2017 7:06 am
by ahouse
тут все решится роутом на сервере, и одним дефолтным гейтом, маркитровать правила не прийдется.
этой подменой и перемаркировкой пакетов занимается NAT роутера. именно его таблицы помнят чьи пакеты и куда идут. у вас правятся там и DST и SRC поля. и получается что пакет зашел в роутер, занатился, ушел на ваш сервер. обработался и отправился обратно по адресу дефольного гейта, тоесть совсем в другом направлении.



А вообще да, если у вас дефицит белых ip, то действительно нужно более менее адекватный роутер. к примеру микротик впределах (80-100 американских рублей хватит вам с хорошим зхапасом) или самострой на базе компа.