Для прикладу припустимо, що Ubilling з усіма потрохами розташований за адресою 172.16.0.1 і що наш rc.conf на момент початку встановлення має такий вигляд:
defaultrouter="1.2.3.4" gateway_enable="YES" hostname="nas.isp" ifconfig_igb0="inet 172.16.0.2 netmask 255.255.252.0" ifconfig_igb1="inet 1.2.3.5 netmask 255.255.255.0" sshd_enable="YES"
З чого не складно зробити висновок, що аплінковим у нас буде інтерфейс igb1 з айпішкою 1.2.3.5, який дивиться в бік дефолтраута 1.2.3.4. На ньому ж буде здійснюватися NAT призначеної для користувача підмережі 172.16.0.0.0/22, яка доступна через інтерфейс igb0. Шейпінг буде, зі свого боку, проводитися на інтерфейсі igb0.
Усе автоматизовано якраз до того рівня, щоб убезпечити від цього дійства домогосподарок, а нормальним людям можна було швиденько встановити необхідні параметри і піти пити чай, поки скрипт збере все, що потрібно, сам
# fetch http://ubilling.net.ua/ubinstaller.tar.gz # tar zxvf ubinstaller.tar.gz # cp -R ubinstaller/nas_preconf /tmp/ # cd /tmp/nas_preconf/ # vi autosetup.sh
Далі нам слід встановити всі опції відповідно до реальності нашого NAS-a:
############ CONFIG SECTION ############# #Інтерфейс що "дивиться" в інтернет (WAN) EXT_IF="igb1" #Інтерфейс що "дивиться" на користувачів (LAN) INT_IF="igb0" INT_IP="172.16.0.2" #Підмережа користувачів і масочка у вигляді CIDR INT_NET="172.16.0.0" INT_NET_CIDR="22" #Налаштування хоста Ubilling MYSQL_HOST="172.16.0.1" MYSQL_LOGIN="somelogin" MYSQL_PASSWORD="somepassword" MYSQL_DB="stg" #Ключ rscriptd (дивимося його в stargazer.conf), місце розташування колектора Netflow та ком'юніті SNMP RSCRIPTD_KEY="kotiki" NETFLOW_HOST="172.16.0.1:42111" SNMPCOMM="changeme" #Шлях за яким має розташовуватися bandwidthd BANDWIDTHD_PATH="band"
Архітектура вашої системи вибирається за допомогою опції
#binary packages distro (141_6K, 140_6K, 133_6K, 132_6E) DL_NAME="141_6K"
Де як не складно здогадатись, 141 це не що інше як FreeBSD 14.1 amd64 чи 132_6E це FreeBSD 13.2 amd64. Логіка зрозуміла?
Після чого в принципі можна пробувати запускати наш скрипт збірки:
# sh autosetup.sh
Після завершення роботи скрипта збірки слід перезавантажитися.
Ось у загальних рисах і все.
Чому саме так? “Так склалося історично” і “Тому що так захотілося” - по-моєму достатні причини. У будь-якому разі вам ніхто не забороняє зробити як завгодно, але ми прагнемо до однаковості та певної стандартизації, щоб під час розбору ваших же проблем не витрачати зайвих зусиль на те, щоб зрозуміти, що це, і як воно, за вашою задумкою, мало б працювати.
CREATE USER 'somelogin'@'%' IDENTIFIED BY 'somepassword'; GRANT ALL PRIVILEGES ON *.* TO 'somelogin'@'%' WITH GRANT OPTION;
Перед першим використанням, переконайтеся, що з боку сервера білінгу, в /etc/stargazer.conf присутня розкоментована секція вигляду
<Module remote_script> SendPeriod = 10 SubnetFile =/etc/stargazer/remote_nas.conf Password = kotiki UserParams=Cash Tariff Port = 9999 </Module>
Також потрібні увімкнені опції RESET_AO та STGNASHUP у billing.ini для запобігання проблемам із реініціалізацією користувачів на віддалених NAS.
Також варто додати ваш сервер rscriptd в табличку безпечних хостів у firewall.conf з боку вашого біллінгу, якось ось так
${FwCMD} table 22 add 172.16.0.2
Ну хоча б якось так
root@test141:~ # checkspeed 172.16.0.42 =================================================== 172.16.0.42/32 32111 172.16.0.42/32 111 ||||||||||||||||||[ Download speed ]||||||||||||||||||| 32111: 107.520 Mbit/s 0 ms burst 0 q163183 128 KB 0 flows (1 buckets) sched 97647 weight 0 lmax 0 pri 0 droptail sched 97647 type FIFO flags 0x0 0 buckets 0 active ||||||||||||||||||[ Upload speed ]||||||||||||||||||||| 00111: 107.520 Mbit/s 0 ms burst 0 q131183 128 KB 0 flows (1 buckets) sched 65647 weight 0 lmax 0 pri 0 droptail sched 65647 type FIFO flags 0x0 0 buckets 0 active ===================================================
Найпростіший спосіб перевірити, що пішло не так, це для початку подивитись в
root@test141:~ # tail /var/stargazer/allconnect.log 2024.08.27 17:02:18 CONNECT: ID-25;LOGIN-gen_i85e2b3dqq;IP-172.16.0.46;CASH-0;SPEED-107520;UPSPEED-107520,MAC-14:88:32:24:77:90 2024.08.27 17:02:18 CONNECT: ID-38;LOGIN-gen_r93yyeddg2;IP-172.16.0.47;CASH-0;SPEED-107520;UPSPEED-107520,MAC-14:88:81:86:45:87 2024.08.27 17:02:18 CONNECT: ID-23;LOGIN-gen_h3grzvtzmu;IP-172.16.0.48;CASH-0;SPEED-107520;UPSPEED-107520,MAC-14:88:65:39:20:99 2024.08.27 17:02:19 CONNECT: ID-5;LOGIN-gen_4csr11hp57;IP-172.16.0.49;CASH-0;SPEED-107520;UPSPEED-107520,MAC-14:88:20:17:30:81 2024.08.27 17:02:19 CONNECT: ID-47;LOGIN-gen_ynkdk76lpr;IP-172.16.0.50;CASH-0;SPEED-107520;UPSPEED-107520,MAC-14:88:42:84:67:52 2024.08.27 17:02:19 CONNECT: ID-36;LOGIN-gen_pkvlxtuefw;IP-172.16.0.51;CASH-0;SPEED-107520;UPSPEED-107520,MAC-14:88:89:92:22:66 2024.08.27 17:02:19 CONNECT: ID-32;LOGIN-gen_mszsh9kygt;IP-172.16.0.52;CASH-0;SPEED-107520;UPSPEED-107520,MAC-14:88:63:70:79:60 2024.08.27 17:02:19 CONNECT: ID-50;LOGIN-potypov14ap1c_xo1o;IP-172.16.0.53;CASH-100;SPEED-0;UPSPEED-0,MAC-00:23:63:7c:d0:14 2024.08.27 17:09:20 DISCONNECT: ID-52;LOGIN-potypov14ap88_532r;IP-172.16.0.2;CASH-400 2024.08.27 17:09:20 CONNECT: ID-52;LOGIN-potypov14ap88_532r;IP-172.16.0.2;CASH-400;SPEED-107520;UPSPEED-107520,MAC-08:00:27:64:1a:92
і якщо в ньому відбуваються якісь аномалії, вже приймати рішення, попередньо продіагностувавши зв'язок з БД Ubilling методом
root@test141:~ # /etc/rscriptd/GetMac userlogin 14:88:20:17:30:81 root@test141:~ #