Qwadros писал(а): ↑20.11.2019 22:15
у каждого из них не только один и тот-же MAC,
Один и тот же MAC - это странно. Даже в Вашем выводе видно, что у двух устройств MAC отличается.
Qwadros писал(а): ↑20.11.2019 22:15
Начал пытаться поднять прокси через 3proxy, прописав там конфиг. НО обнаружил, что прокси не работает.
Здесь ещё нужно обратить внимание на маршрутизацию.
Кстати, если у Вас запланировано 4 устройства, которые будут работать одновременно, то неплохо бы понять, как это всё должно маршрутизироваться. Какова идея?
Однако, давайте по порядку.
Я не стал разворачивать у себя CentOS, попробуем обойтись.
В моём случае используется Slackware 14.1/14.2.
Вам нужно будет делать поправку на отличия в Вашей системе.
Ниже излагается тот вариант решения задачи, который я реализовал на своей системе.
Все файлы с правилами udev находятся в каталоге /etc/udev/rules.d/.
Итак, прежде всего, необходимо позаботиться о переключении устройства в нужный режим.
/etc/udev/rules.d/40-usb_modeswitch.rules
ATTR{idVendor}=="12d1", ATTR{idProduct}=="14fe", RUN+="usb_modeswitch '%b/%k'"
ATTR{idVendor}=="12d1", ATTR{idProduct}=="15e7", RUN+="usb_modeswitch '%b/%k'"
ATTR{idVendor}=="12d1", ATTR{idProduct}=="1f01", RUN+="usb_modeswitch '%b/%k'"
По одной строке на каждое устройство.
Возможно, эти правила уже есть в файле /lib/udev/rules.d/40-usb_modeswitch.rules, тогда здесь они не нужны, но можно продублировать - на всякий случай.
idVendor - это VID, idProduct - это PID устройства, их можно узнать по команде lsusb.
Теперь нужно обеспечить постоянные имена сетевым интерфейсам, особенно если устройств больше одного (в моём случае два).
В каталоге есть файл 70-persistent-net.rules, который содержит соответствующие правила
Там уже есть правило для сетевой карты, добавим по одному правилу на каждый модем.
/etc/udev/rules.d/70-persistent-net.rules
# USB device 0x12d1:0x14db (usb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="<здесь указать MAC-адрес устройства>", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
# USB device 0x12d1:0x14dc (usb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="<здесь указать MAC-адрес устройства>", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
Как можно видеть, одному модему назначается имя eth1, второму eth2. Без этих правил имена вполне могли быть другими и каждый раз разными.
С именами разобрались, теперь активация сетевых интерфесов при подключении модема.
/etc/udev/rules.d/52-modem-add.rules
KERNEL=="eth*",SUBSYSTEMS=="usb",ACTION=="add",ATTRS{idVendor}=="12d1",ATTRS{idProduct}=="14dc",RUN+="ifup eth1",ENV{MODEM_READY}="1"
KERNEL=="eth*",SUBSYSTEMS=="usb",ACTION=="add",ATTRS{idVendor}=="12d1",ATTRS{idProduct}=="14db",RUN+="ifup eth2",ENV{MODEM_READY}="1"
Для RUN нужно указать команду поднятия сетевого интерфейса. Поскольку CentOS у меня нет, я указал примерно, подправьте при необходимости.
Для своей машины я указывал деактивацию встроенной сетевой карты перед активацией модемной карты.
Кроме этого, были ещё правила на извлечение модема, там указывалась, наоборот, активация встроенной сетевой карты. Мне это было нужно для автоматического переключения между сетевыми картами по событию подключения модема.
Попробуйте эти правила на своей системе, посмотрите, как будет работать.
Здесь возможны проблемы, если используется systemd. Я с systemd не знаком и не могу сказать, будут ли работать правила udev в присутствии systemd.
И, кстати, изложите более точно Вашу идею использования четырех модемов одновременно.
Может статься, мы решаем не совсем ту задачу, которую нужно.