LINUX.ORG.RU
ФорумAdmin

Доступ с одной машины к двум хостам с одним ip

 , , , ,


0

1

Добрый день!

В наличии имеется виртуалка под управлением Debian 10 buster. На виртуалке несколько физических интерфейсов. Так же имеются два роутера Dlink 192.168.0.1 Tplink 192.168.0.1

На виртуалке настроен прокси сервер Squid3.

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

При этом необходимо оставить доступ к каждому роутеру именно через ip 192.168.0.1

Очень прошу помочь, так как уже всю голову сломал над решением.

Ответ на: комментарий от FireFighter

Рискну предположить что это не его устройства, он ими не управляет и по какой то причине пароль ему тоже не дадут. И на них обоих тупо дефолтный адрес.

Я так понимаю что может помочь source policy routing, создаём два маршрута, один через eth0, другой через eth1, метим пакеты от разных ip разными метками и загоняем их в разные маршруты по меткам. Как это сделать написано в LARTC (just google it!), который каждый занимающийся подобными извращениями просто обязан прочесть.

Но вот прокся тут будет мешать, так как она прокся, коннекты с внешним миром пойдут с её адреса и разделить их будет уже невозможно. Выброси прокси, настрой NAT и routing.

А вообще ты бы архитектуру своей сети нам нарисовал, было бы легче советовать. Пока не особо понятно кто откуда и куда и причём тут прокси.

Jameson ★★ ()
Последнее исправление: Jameson (всего исправлений: 2)

Если у них МАС-адреса разные, то тупо в arp добавляешь нужный (явно указывая интерфейс) и работаешь с ним.

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

через arping получал список мас-ов для адреса, по номеру порта на коммутаторе определял где эта точка и заливал конфиг.

vel ★★★★★ ()

Как это понимать:

доступ к каждому роутеру именно через ip 192.168.0.1

ip 192.168.0.1 назначен маршрутизаторам или вашему дебиану? Если маршрутизаторам, то назначайте на eth0 и eth1 разные адреса и PBR. Ну и arp нужно настроить, чтобы Linux отвечал только на arp-запросы адресом, назначенным на интерфейс, чтобы не мешал локальной сети, если помимо маршрутизаторов ещё что-то подключено к eth0 и eth1.

mky ★★★★★ ()
Ответ на: комментарий от Jameson

Спасибо всем за отзывчивость.

Немного подробнее схему распишу.

Имеется сервер на Debian, к которому будут периодически подключаться физически к интерфейсам роутеры с одинаковым ip, как и говорил ранее с адресами 192.168.0.1

На Debian настроен прокси сервер Squid для того чтоб удаленно подключаться и заходить на веб интерфейсы роутеров.

На данный момент схема c сетевыми интерфейсами такая:

eth0 10.0.0.2 255.255.255.0 10.0.0.1 - Внешка для подключения к прокси

eth1 192.168.0.2 255.255.255.0 192.168.0.1 - роутер dlink

eth2 192.168.0.3 255.255.255.0 192.168.0.1 - роутер tplink


Вот при такой схеме если я подключаюсь через прокси то спокойно могу зайти на dlink.

если прописать статик арп для eth1 и eth2, то через прокси открывается все равно только dlink. И только если интерфейс eth1 выключить, то только тогда появляется доступ к tplink.

r4w3e5 ()
Ответ на: комментарий от r4w3e5

В вашей схеме может возникнуть конфликт адресов, если два разных роутера с одинаковым ip адресом, и при этом, им назначены различные mac-адреса. Потому кстати(и скорее всего), у вас не работает второй роутер до выключения первого. Хотя, можно попробовать побаловаться с разделением сред в контексте самого дебиан, представив различные физические интерфейсы в отдельную, разграниченную среду, например посредством cgroups(и еще немного помудрить с mac маршрутизацией), но такой вариант спорный и не факт что правильно сработает, я просто пока что, исходя из вашего вопроса, не совсем ясна суть того, что именно вы хотите получить, тоесть конечная цель.

ChAnton ★★ ()
Ответ на: комментарий от mky

Вот собственно конфиг сквида

http_port 3128

auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/test

auth_param basic realm test-proxy

acl user1 proxy_auth test1 REQUIRED

acl user2 proxy_auth test2 REQUIRED

acl block max_user_ip 1

authenticate_ip_ttl 10 minute

acl block_users proxy_auth test1 test2

http_access deny block block_users

http_access allow test1 user1

http_access allow test2 user2

http_access deny all

tcp_outgoing_address 192.168.0.2 test1

tcp_outgoing_address 192.168.0.3 test2

Основной интерфейс внешки eth0 На интерфейс eth1 статически прописываю мак длинка На интерфейс eth2 статически прописываю мак тплинка

при такой схеме одновременно нет доступа к двум роутерам, только если либо eth1 отключить, либо eth2.

Вот и ломаю голову

r4w3e5 ()
Ответ на: комментарий от r4w3e5

Ну это начало. Теперь нужно настроить PBR (policy based routing). Как-то так:

ip route del 192.168.0.0/24 dev eth2
ip route add 192.168.0.0/24 dev eth2 table 20
ip rule add from 192.168.0.3 table 20

Проверяете ping'ом (и tcpdump'ом). Запускаете:

ping 192.168.0.1

смотрите tcpdump'ом, что пакеты идут через eth1. Потом запускаете:

ping -I 192.168.0.3 192.168.0.1

и смотрите tcpdump'ом, что пакеты идут через eth2.

Вроде, mac-адреса на интерфейсы можно не прописывать.

mky ★★★★★ ()