Как настроить сеть если 2 сетевых интерфейса с одинакковым IP шлюза? Привет!
У нас в наличии 4 одинаковых 3g модема Huawei E3533, они работают в режиме HiLink. С прошивкой HILINK модем работает в режиме роутера, и представляется компьютеру в виде сетевого интерфейса (usb-ethernet-rndis). Компьютер получает с этого интерфейса сетевые настройки через DHCP, и далее ходит через него в интернет, как через обычную проводную локальную сеть. Всю заботу об установлении соединения и поддержании канала модем берет на себя, компьютер даже не замечает, что доступ в интернет осуществляется через сототвую сеть. В этом режиме модем имеет свой собственный локальный IP-адрес (обычно 192.168.8.1), видимый со стороны компьютера как шлюз по умолчанию (default route), а также внешний IP-адрес, получаемый из сотовой сети.
Если подключить все 4 модема в компьютер - на всех соответственно будет один и тот же IP шлюза.
Нужно поднять http прокси-сервер.
К примеру если приходит запрос на порт 8001 -> он пройдет через Модем №1, 8002 -> Модем №2 и тд.
Для этого можно использовать утилиту 3proxy, которая может проксировать запросы через нужный шлюз.
И тут проблема - шлюз у всех один и тот же. Как в таком случае можно как-то виртуально переназначить шлюзы или же настроить роутинг.
Пример конфига 3proxyproxy -n -a -p8001 -i0.0.0.0 -e192.168.8.100 // 192.168.8.100 выдан модемом, но если сменить, то тоже работает
proxy -n -a -p8002 -i0.0.0.0 -e192.168.8.101
netstat -rKernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default _gateway 0.0.0.0 UG 0 0 0 wlp2s0
default _gateway 0.0.0.0 UG 0 0 0 enp0s20f0u1u3
default _gateway 0.0.0.0 UG 0 0 0 enp0s20f0u3
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlp2s0
192.168.8.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s20f0u1u3
192.168.8.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s20f0u3
ifconfigenp0s20f0u3: flags=4163 mtu 1500
inet 192.168.8.100 netmask 255.255.255.0 broadcast 192.168.8.255
inet6 fe80::5d7f:ea8a:8b6a:b39d prefixlen 64 scopeid 0x20
ether 02:cb:0f:fb:0d:fa txqueuelen 1000 (Ethernet)
RX packets 112 bytes 34668 (33.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 105 bytes 11655 (11.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp0s20f0u1u3: flags=4163 mtu 1500
inet 192.168.8.100 netmask 255.255.255.0 broadcast 192.168.8.255
inet6 fe80::78bd:ac24:6caa:44e3 prefixlen 64 scopeid 0x20
ether 9a:eb:91:34:dc:25 txqueuelen 1000 (Ethernet)
RX packets 214 bytes 73288 (71.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 204 bytes 31245 (30.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

21 Авг 2019 в 06:35
182 +1
1
Ответы
1

Для настройки роутинга в данном случае можно использовать правила iptables. Необходимо настроить NAT для перенаправления трафика на нужный модем в зависимости от порта.

Например, чтобы перенаправить трафик на порт 8001 через модем №1 (с IP-адресом 192.168.8.100), можно создать следующее правило iptables:

iptables -t nat -A PREROUTING -p tcp --dport 8001 -j DNAT --to-destination 192.168.8.100

Аналогично нужно создать правила для других портов и модемов.

Также можно настроить маршрутизацию для трафика через определенный интерфейс с помощью правил ip route. Например, чтобы отправить трафик на порту 8001 через модем №1:

ip route add default via 192.168.8.100

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

Для точной настройки роутинга и NAT могут потребоваться дополнительные действия в зависимости от требуемой конфигурации сети.

20 Апр 2024 в 13:16
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир