0TshEL_n1ck Posted October 7, 2014 Posted October 7, 2014 (edited) Доброго времени суток, подскажите пожалуйста как побороть. Есть em0 - смотрит внутрь, раздаёт по DHCP есть em1 - смотрит наружу, получает всё по DHCP В такой связке всё хорошо работает и т д. Поднимаю mpd5 на em1 - с сервера всё пингуется отлично, но нету связки em0 c em1, тоисть пользователи интернет не видят. Подскажите пожалуйста куда копать... freebsd 9.2 + Ubilling: 0.5.8 rev 3790 Edited October 7, 2014 by 0TshEL_n1ck
0TshEL_n1ck Posted October 7, 2014 Author Posted October 7, 2014 (edited) Фаер по умолчанию. #!/bin/sh # firewall command FwCMD="/sbin/ipfw -q" ${FwCMD} -f flush # Networks define ${FwCMD} table 2 add 5.5.38.0/24 ${FwCMD} table 9 add 5.5.36.26 #NAT ${FwCMD} nat 1 config log if em1 reset same_ports ${FwCMD} add 6000 nat 1 ip from table\(2\) to not table\(9\) via em1 ${FwCMD} add 6001 nat 1 ip from any to 5.5.36.26 via em1 #Shaper - table 4 download speed, table 3 - upload speed ${FwCMD} add 12001 pipe tablearg ip from any to table\(4\) via em0 out ${FwCMD} add 12000 pipe tablearg ip from table\(3\) to any via em0 in # default block policy ${FwCMD} add 65533 deny all from table\(2\) to any via em0 ${FwCMD} add 65534 deny all from any to table\(2\) via em0 ${FwCMD} add 65535 allow all from any to any В мпд тож ничгео такого нету, мне не нужен ни радиус ничего... Просто пппое соединение с провайдером. default: load pppoe_client pppoe_client: create bundle static B1 set iface route default set ipcp ranges 0.0.0.0/0 0.0.0.0/0 create link static L1 pppoe set link action bundle B1 set auth authname тут логин set auth password тут пароль set link max-redial 0 set link mtu 1492 set link keep-alive 10 60 set pppoe iface em1 set pppoe service "" open Edited October 7, 2014 by 0TshEL_n1ck
0TshEL_n1ck Posted October 7, 2014 Author Posted October 7, 2014 Может из-за того что у меня внешний айпи меняется постоянно ??? Как решить если из-за этого ??? ПППОЕ динамика...
0TshEL_n1ck Posted October 7, 2014 Author Posted October 7, 2014 (edited) Вы натите только на ем1, а траф уйдет в нг0 Как натить куда нужно что б куда нужно траф уходил, подскажите пожалуйста. ТАк когда DHCP включено на em1 при этом же конфиге всё изюмительно работает. ТОисть получается мпд поднимает интерфейс ng0 и от него начинается пляска ??? Что и куда добавить что б заработало ? И как тогда обратабывается айпи который потсоянно меняется (внешний) в конфиге. Edited October 7, 2014 by 0TshEL_n1ck
l1ght Posted October 7, 2014 Posted October 7, 2014 Для цього треба підіймати ще один інстанс нату. Що є ${FwCMD} nat 1 config log if em1 reset same_ports Шо треба додати ${FwCMD} nat 2 config log if ng0 reset Директива резет означає, що правило зміна айпі йому не страшна. Це заворот трафіка у нат той що на ем1 ${FwCMD} add 6000 nat 1 ip from table\(2\) to not table\(9\) via em1 ${FwCMD} add 6001 nat 1 ip from any to 5.5.36.26 via em1 Шо тре такий самий для нж0, тіки дивіться, що вам потрібні різні айпішки абонів, для першого і другого ната.
0TshEL_n1ck Posted October 7, 2014 Author Posted October 7, 2014 (edited) тоисть: #NAT${FwCMD} nat 1 config log if em1 reset same_ports${FwCMD} nat 2 config log if ng0 reset ${FwCMD} add 6000 nat 1 ip from table\(2\) to not table\(9\) via em1${FwCMD} add 6001 nat 1 ip from any to 5.5.36.26 via em1 тут что дальше не пойму всёравно... с фаером и натом вообще не дружу....... Как составить такой же ? И не пойму, зачем мне разные айпи для абонентов то ? у них есть свой диапазон Edited October 7, 2014 by 0TshEL_n1ck
l1ght Posted October 7, 2014 Posted October 7, 2014 Окрім як читати та вчити нічим не можу допомогти. http://bozza.ru/art-1.html http://www.lissyara.su/articles/freebsd/tuning/ipfw_nat/
0TshEL_n1ck Posted October 7, 2014 Author Posted October 7, 2014 (edited) Спасибо! Чисто интересно, сколько там строк кода ? неужели стописят ? Потратил 6 часов времени для того что б получить ссылку к лисяре на сайт... Есть кто нить кто объяснит или покажет ? Edited October 7, 2014 by 0TshEL_n1ck
TretUliy2 Posted October 7, 2014 Posted October 7, 2014 (edited) Если вы будете использовать pppoe исходящим интерфейсом будет ng0, чтоб при падении mpd сохранить возможность ходить через ем1 нужно иметь два набора правил #NAT ${FwCMD} nat 1 config log if em1 reset same_ports ${FwCMD} nat 2 config log if ng0 reset # заворачиваете в нат 1 всё что ходит через em1 ${FwCMD} add 6000 nat 1 ip from table\(2\) to not table\(9\) via em1 ${FwCMD} add 6001 nat 1 ip from any to 5.5.36.26 via em1 # для ng0 нужно создать аналогичное правило типа ${FwCMD} add 6010 nat 2 ip from any to any via ng0 Edited October 7, 2014 by TretUliy2
0TshEL_n1ck Posted October 7, 2014 Author Posted October 7, 2014 (edited) #NAT ${FwCMD} nat 1 config log if em1 reset same_ports ${FwCMD} nat 2 config log if ng0 reset ${FwCMD} add 6000 nat 1 ip from table\(2\) to not table\(9\) via em1 ${FwCMD} add 6001 nat 1 ip from any to 172.20.136.26 via em1 ${FwCMD} add 6010 nat 2 ip from table\(2\) to not table\(9\) via ng0 ${FwCMD} add 6011 nat 2 ip from any to any via ng0 с сервера. ping ya.ru PING ya.ru (93.158.134.3): 56 data bytes ping: sendto: Permission denied ping: sendto: Permission denied Что не так ? Может вообще убрать nat 1 ??? Edited October 7, 2014 by 0TshEL_n1ck
l1ght Posted October 7, 2014 Posted October 7, 2014 (edited) Вам потрібен нат тільки на нж0? І не правильний заворот. Краще зробити ipfw nat 2 ip from table\(2\) to not table\(9\) via ng0 ipfw nat 2 ip from any to me via ng0 А ще краще туди айпішку зовнішню писати, але при зміні айпі треба фаєр перезавантажувати. Якось так: ext_ip=`ifconfig ng0 inet | grep inet | awk '{print $2}'` ipfw nat 2 ip from table\(2\) to not table\(9\) via ng0 ipfw nat 2 ip from any to ${ext_ip} via ng0 І чому так сваритися? Я дав вам матеріал, в якому все добре розписане. Якщо ви самі навчитеся робити такі прості речі - вам же краще. Ще раз розписувати те що в інтернеті розжоване не один десяток разів... це не правильно. Edited October 7, 2014 by L1ght
0TshEL_n1ck Posted October 7, 2014 Author Posted October 7, 2014 Да Вы уж простите, тысячу раз я читал pf всякие разные и т д. Ну не понимаю я его... Если я его почитаю в стописятпятый раз, понимания больше не будет, мне лучше увидеть воочию, покрутить и т д потому как я с ним работаю крайне редко... Я специалист в своём деле, Вы в своём, Я понимаю что у Вас таких умников как я сотня за день. Я б не писал если б мог самостоятельно решить эту очень простую задачу, потому как ничего не хочется поломать в этом биллинге. Как этот нат работает я не понимаю, в ядре не скомпилино, в процессах нету. Вам потрібен нат тільки на нж0? Получается да, я беру интернет только через ng0. больше мне натить что либо я так опнимаю не за чем. І не правильний заворот. А чем это грозит ???
l1ght Posted October 7, 2014 Posted October 7, 2014 Да Вы уж простите, тысячу раз я читал pf всякие разные и т д. Ну не понимаю я его... Если я его почитаю в стописятпятый раз, понимания больше не будет, мне лучше увидеть воочию, покрутить и т д потому как я с ним работаю крайне редко... Я специалист в своём деле, Вы в своём, Я понимаю что у Вас таких умников как я сотня за день. Я б не писал если б мог самостоятельно решить эту очень простую задачу, потому как ничего не хочется поломать в этом биллинге. Как этот нат работает я не понимаю, в ядре не скомпилино, в процессах нету. Вам потрібен нат тільки на нж0? Получается да, я беру интернет только через ng0. больше мне натить что либо я так опнимаю не за чем. І не правильний заворот. А чем это грозит ??? Перше - фаєрвол та нат скоріш усе прописаний в /boot/loader.conf Друге - якщо тіки на нж0 - то залиште собі варіант ${FwCMD} nat 1 config log if ng0 reset ${FwCMD} nat 1 ip from table\(2\) to not table\(9\) via ng0 ${FwCMD} nat 1 ip from any to me via ng0 "Неправильний заворот" означає що у правило яке завертає трафік до нату може попасти зовсім непотрібний вам трафік, от і все. Біллінгу ви цим не зашкодите, а от нерозуміння того, що робите може багато шкоди принести.
0TshEL_n1ck Posted October 7, 2014 Author Posted October 7, 2014 (edited) Спасибо, частично разобрался. при варианте ${FwCMD} nat 1 config log if ng0 reset ${FwCMD} add 6010 nat 1 ip from table\(2\) to not table\(9\) via ng0 ${FwCMD} add 6011 nat 1 ip from any to any via ng0 после перезагрузки фаерволл не пропускает ничего. только после отключения Начинает работать. /etc/rc.d/ipfw restart net.inet.ip.fw.enable: 1 -> 0 net.inet6.ip6.fw.enable: 1 -> 0 Это из0за того что внешний айпи меняется ??? Скриптом что Вы подсказали вылечить не удалось... Может есть способ что б после перезагрузки машины не нужно было лезть на неё, ну и соответсвенно фаер не отключая. Edited October 7, 2014 by 0TshEL_n1ck
l1ght Posted October 7, 2014 Posted October 7, 2014 (edited) ${FwCMD} nat 1 config log if ng0 reset ${FwCMD} add 6010 nat 1 ip from table\(2\) to not table\(9\) via ng0 ${FwCMD} add 6011 nat 1 ip from any to ME via ng0 Так повинно працювати, я ж вам 2 рази це написав, фром ени ту МІ!! Edited October 7, 2014 by L1ght
0TshEL_n1ck Posted October 7, 2014 Author Posted October 7, 2014 (edited) Простите за невнимательность... НО - Не работает Придётся по одному отключать пробовать... #!/bin/sh # firewall command FwCMD="/sbin/ipfw -q" ${FwCMD} -f flush # Networks define ${FwCMD} table 2 add 5.5.38.0/24 ${FwCMD} table 9 add 5.5.36.26 #NAT ${FwCMD} nat 1 config log if ng0 reset ${FwCMD} add 6010 nat 1 ip from table\(2\) to not table\(9\) via ng0 ${FwCMD} add 6011 nat 1 ip from any to me via ng0 #Shaper - table 4 download speed, table 3 - upload speed ${FwCMD} add 12001 pipe tablearg ip from any to table\(4\) via em0 out ${FwCMD} add 12000 pipe tablearg ip from table\(3\) to any via em0 in # default block policy ${FwCMD} add 65533 deny all from table\(2\) to any via em0 ${FwCMD} add 65534 deny all from any to table\(2\) via em0 ${FwCMD} add 65535 allow all from any to any Edited October 7, 2014 by 0TshEL_n1ck
l1ght Posted October 8, 2014 Posted October 8, 2014 Тоді пробуйте другий варіант, що я писав. Зробити змінну, в яку буде записуватися адреса нж0 і через неї нат буде. ext_ip=`ifconfig ng0 inet | grep inet | awk '{print $2}'` ${FwCMD} nat 1 config log if ng0 reset ${FwCMD} add nat 1 ip from table\(2\) to not table\(9\) via ng0 ${FwCMD} add nat 1 ip from any to ${ext_ip} via ng0
TretUliy2 Posted October 8, 2014 Posted October 8, 2014 (edited) rc.conf pf_enable="YES" pf_rules="/etc/pf.conf" pf.conf table <local> persist { 10/8, 192.168.0.0/24 } # сети на em0 nat on ng0 ip from <local> to any -> ng0:0 pass all in no state pass all out no state в работающей системе pfctl -e pfctl -f /etc/pf.conf Edited October 8, 2014 by TretUliy2
l1ght Posted October 8, 2014 Posted October 8, 2014 pf теж буде модулем, тоді нормально працювати не буде, треба тоді ipfw у ядро загнати, а не модулем.
0TshEL_n1ck Posted October 8, 2014 Author Posted October 8, 2014 (edited) #NAT ext_ip=`ifconfig ng0 inet | grep inet | awk '{print $2}'` ${FwCMD} nat 1 config log if ng0 reset ${FwCMD} add 6010 nat 1 ip from table\(2\) to not table\(9\) via ng0 ${FwCMD} add 6011 nat 1 ip from any to ${ext_ip} via ng0 Вот в таком виде после перезагрузки становится наоборот ) видно всё с сервера, c сети em0 заблочено пока фаер не сбросишь... Edited October 8, 2014 by 0TshEL_n1ck
TretUliy2 Posted October 8, 2014 Posted October 8, 2014 (edited) tcpdump -npi ng0 посмотрите чё там бегает Edited October 8, 2014 by TretUliy2
l1ght Posted October 8, 2014 Posted October 8, 2014 Шановний, ви або щось не кажете, або якась містика там в вас. Я певний в тому що така конструкція повинна працювати. Покажіть ipfw show коли фаэр запущенний.
mgo Posted October 8, 2014 Posted October 8, 2014 (edited) отак у мене через тунель паше і прямо зараз через оцей нат я вам пишу)) #NAT${FwCMD} nat 1 config log if tun0 reset same_ports${FwCMD} add 6000 nat 1 ip from table\(2\) to not table\(9\) via tun0${FwCMD} add 6001 nat 1 ip from any to any via tun0 хоча на іншому насі у мене затик розбираю карту польотів Edited October 8, 2014 by mgo
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now