*net, inet, pppoe, provider
сижу минуты 3 и незнаю как написать приветствие и задать приятный тон беседы, ну да похуй.
Возникла проблема с нехваткой ipv4.
Дано:
есть 2 пула. 1024 + 512.
Абоненты цепляются по PPPoE.
5 виланов.
2 сервера FreBSD 7.3 + mpd5.
В данный момент все функционирует так. 1 сервер с пулом 1024 адреса слушает 3 вилана, другой с пулом 512 адресов слушает 2 вилана. Оптимального распределения адресов в данном случае нет, т.к. может возникнуть ситуация, когда на одном сервере пул исчерпан, а на другом имеются свободные адреса.
Если же выпускать оба сервера во все 5 виланов, то сервер, у которого весь пул адресов занят, всем будет слать "Идите нахуй, адресов нет" и абонент будет получать "ошибку 738 сервер не назначил адрес". Такое может продолжаться раз 10-20, пока другой сервер не соизволить ответить на мольбы абонента об интернете раньше. Но в этом случае удобство в том, что в случае падения одного из серверов абонент без манипуляций подключается к другому серверу (благо servicename пуст) и спокойно работает. Правда такое резервирование ограничено размером пула.
И тут возникает вопрос.
делаем скрипт, который делает x — $(ifconfig | grep -c ng) (где x — количество адресов в пуле.). Если x <=1, то
ipfw add deny all from any to any layer2 mac-type arp,0x8863. если же больше, то соответственно правило сие убирать.
В итоге получится так, что при переполнении пула сервер просто не будет отвечать на новые PADI (Active Discovery Initiation = 0x8863) запросы абонентов, а второй будет работать и пускать абонов в интернеты.
будет ли работать эта схема? не будут ли валиться абоны при заблокированом 0x8863?

add comment
recommend
bookmark
subscribe