kaktak Опубликовано 25 июля, 2018 есть centos 7 понадобилось стерминировать на нем 256 ip адресов первое, что нагуглил - ifcfg-xxx-range0. В принципе работает... Генерирует кучу интерфейсов типа xxx:0 xxx:1 и т.д. Но оочень медленно. Сервер уже загружается,а интерфейсы все еще генерируются.. Потом наткнулся на использование IPADDR1..2 и т.д. и прикрутил на лупбек 256 адресов примерно так: DEVICE=lo IPADDR=127.0.0.1 NETMASK=255.0.0.0 NETWORK=127.0.0.0 BROADCAST=127.255.255.255 ONBOOT=yes NAME=loopback IPADDR0=1.1.1.0 PREFIX0=32 IPADDR1=1.1.1.1 PREFIX1=32 IPADDR2=1.1.1.2 PREFIX2=32 ... IPADDR255=1.1.1.255 PREFIX255=32 все устраивает. загружает быстро и работает. Но. Понадобилось прикрутить еще 256 адресов... И тут выяснилось, что записи IPADDR256 и выше конфиг уже не воспринимает... Попытался создать алиас вида: DEVICE=lo:1 IPADDR0=1.1.2.0 PREFIX0=32 IPADDR1=1.1.2.1 PREFIX1=32 ... IPADDR255=1.1.2.255 PREFIX255=32 Тут опять странности... если сделать ifup lo:1, то все корректно поднимается, а если systemctl restart network, то нет... Подскажите, что я не так делаю то? И как вообще в centos такие вещи кошерно делаются? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
LostSoul Опубликовано 25 июля, 2018 я вдоволь натрахавшись, передумал делать кошерно. и сделал прямо грубо, цинично и вот так вот #!/bin/bash blocks="100.125.0 100.125.1 100.125.2 100.125.3 100.125.4 100.125.5 100.125.6 100.125.7 100.125.8 100.125.9" for i in $blocks do for n in `seq 0 255` do ip addr add $i.$n dev lo done done несколько лет полет нормальный. были-бы это какие-то внешние интерфейсы тогда имеет смысл стараться. А loopback - да что ему будет то? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vlad11 Опубликовано 25 июля, 2018 Попробуйте указать диапазон: [root@linuxhelp network-scripts]# vim ifcfg-eth0-range0 DEVICE=eth0 HWADDR=00:0C:29:3F:43:A5 TYPE=Ethernet UUID=9aba66e1-41ab-4f3f-8f29-5a9c188f19ab ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR_START=192.168.5.184 IPADDR_END=192.168.5.186 NETMASK=255.255.255.0 DNS2=8.8.4.4 GATEWAY=192.168.5.1 DNS1=8.8.8.8 IPV6INIT=no USERCTL=no Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kaktak Опубликовано 25 июля, 2018 (изменено) 21 minutes ago, LostSoul said: и сделал прямо грубо, цинично и вот так вот так то ничего, но что если при загрузке стартует приложение, которое создает сокеты на этих адресах? конечно можно не менее цинично вставить рестарт этого приложения в конец скрипта .. )) 20 minutes ago, vlad11 said: Попробуйте указать диапазон я писал выше, что пробовал range. неплохо работает на небольших диапазонах, но даже 256 интерфейсов создаются неприемлемо долго. Изменено 25 июля, 2018 пользователем kaktak Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
LostSoul Опубликовано 25 июля, 2018 16 минут назад, kaktak сказал: так то ничего, но что если при загрузке стартует приложение, которое создает сокеты на этих адресах? конечно можно не менее цинично вставить рестарт этого приложения в конец скрипта .. )) ну так и настройте в systemd запуск этого скрипта раньше, чем вашего приложения. а можно и net.ipv4.ip_nonlocal_bind=1 в sysctl.conf прописать 18 минут назад, kaktak сказал: но даже 256 интерфейсов создаются неприемлемо долго. ARPCHECK=no прописали? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kaktak Опубликовано 25 июля, 2018 arpcheck не пробовал спасибо за наводку. А вас тогда почему range не устроил? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
LostSoul Опубликовано 25 июля, 2018 2 минуты назад, kaktak сказал: arpcheck не пробовал спасибо за наводку. А вас тогда почему range не устроил? ну потому что если вы посмотрите на мой скрипт, то увидите что IP явно больше, чем 256. Под такое количество IP пришлось в системе крутить уже и лимиты на число файлов, и приложение пересобирать. Редактировать подобный конфиг в текстовом редакторе было уже лень, и я решил что раз все равно кодить скрипт, то чем кодить генератор конфига к ifcg проще подгружать напрямую так сказать в ядро сразу. И быстрее и лучше и побочных эффектов я не нашел. ( но у меня отдельный контейнер lxc под эти задачи ) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 25 июля, 2018 всегда посмеиваюсь над квалификацией местных советчиками вот так можно заасайнить на хост целую подсеть: Цитата # ip -4 route add local 192.168.16/24 dev lo после чего хост будет считать всю сеть "своей", т.е. (в том числе) отвечать на arp (кстати, без всяких proxy-arp и proxy-arp-pvlan), любое приложение может биндится на любой ip из такой сети без non-local binding фичи Цитата # nc -l -s 192.168.16.100 -p 5000 & [1] 23830 # netstat -ntplu | grep 5000 tcp 0 0 192.168.16.100:5000 0.0.0.0:* LISTEN 23830/nc советовать делать алиасы через костыли типа IPADDR_START и IPADDR_END, которые скрипт разворачивает в кучу алиасов - ну привет вам из криокамеры Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
LostSoul Опубликовано 25 июля, 2018 1 час назад, s.lobanov сказал: после чего хост будет считать всю сеть "своей", т.е. (в том числе) отвечать на arp попробовал , работает, даже на centos 6. Да ты просто шайтан :-) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kaktak Опубликовано 26 июля, 2018 Красиво. А как это увязать с сетевыми скриптами centos? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
guеst Опубликовано 26 июля, 2018 (изменено) Static route configuration is stored in a /etc/sysconfig/network-scripts/route-interface file. попробуйте наверно в файл просто прописать: local 192.168.16/24 dev lo Изменено 26 июля, 2018 пользователем guеst Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...