Привет!
У нас в наличии 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, которая может проксировать запросы через нужный шлюз.
И тут проблема - шлюз у всех один и тот же. Как в таком случае можно как-то виртуально переназначить шлюзы или же настроить роутинг.
Пример конфига 3proxy
proxy -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 -r
Kernel 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
ifconfig
enp0s20f0u3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> 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<link>
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<UP,BROADCAST,RUNNING,MULTICAST> 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<link>
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