Перейти до

FreeBSD + mpd5


Рекомендованные сообщения

Шановні підкажіть - є така проблемка.

Є тачка з FreeBSD 9.3 x64 

FreeBSD 9.3-RELEASE FreeBSD 9.3-RELEASE #0 r268512: Thu Jul 10 23:44:39 UTC 2014 root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64

На ній підняті фаєр,днс (бінд), дхцп сервер, апач, усе працює нормально, але для певної діагностики потрібно підняти пптп сервер - ну то не в перше для мене, конфіг доволі стандартний в мпд

startup:
        set user admin admin
# configure the console
        set console self 127.0.0.1 5005
        set console open
# configure the web server
        set web self 127.0.0.1 5006
        set web open

default:
        load pptp_server
pptp_server:
        set ippool add pool1 10.10.10.5 10.10.10.250
        create bundle template B1
        set iface disable proxy-arp
        set iface idle 0
        set iface enable tcpmssfix
        set ipcp yes vjcomp
        set ipcp ranges 172.16.1.1 ippool pool1
        set ipcp dns 10.0.0.1 
#Enable Microsoft Point-to-Point encryption (MPPE)
        set bundle enable compression
        set ccp yes mppc
        set mppc yes e40
        set mppc yes e56
        set mppc yes e128
        set mppc yes stateless
        set mppc yes compress
# Create clonable link template named L
        create link template L10 pptp
# Set bundle template to use
        set link action bundle B1
# Multilink adds some overhead, but gives full 1500 MTU
        set link enable multilink
        set link yes acfcomp protocomp
        set link no pap chap eap
        set link enable pap
        set link enable chap
        set link enable chap-msv1
        set link enable chap-msv2
# We reducing link mtu to avoid GRE packet fragmentation.
        set link mtu 1460
        set link keep-alive 10 60

# Configure PPTP and open link
        set pptp self хх.хх.хх.хх
# Allow to accept calls
        set link enable incoming

Проблема в тому, що коли я з'єднуюсь із цим сервером - то вмирає нат, як би то дивно не було. Тобто усі сервіси працюють, маршрутизація працює, а от нат не хоче (ipfw nat). Лікується тільки ребутом системи.

В логах чисто - ядро не перезбирав, усе модулями завантажується.

Підкажіть, куди копати?

Відредаговано L1ght
Ссылка на сообщение
Поделиться на других сайтах

Я бы для начала упростил и сократил конфиг до минимума, просто чтоб глаза не ломать. Хотя пптп тут прямое отношение вряд-ли имеет.

"Нат перестаёт работать", т. е. до подключения пптп-клиента он кого-то натит (например эзернет или вилан), а после подключения перестаёт их-же натить? Т. е. со внешнего интерфейса пакеты начинают выходить неоттранслированными? Или по каким признаком проблема с натом диагностирована? Можно на конфиг ipfw или вывод list посмотреть, если не очень громоздкий?

Відредаговано bsdadm
Ссылка на сообщение
Поделиться на других сайтах

дивлюся по ipfw show - просто по нат правилам перестають ходити пакети плюс повне падіння трафіку, що проходить через той компьютер.

це відноситься до всіх користувачів, що виходять в інтернет через ту машину - перезавантаження фаєру не допомогає, тільки повний ребут машини.

06000 nat 1 ip from table(10) to not table(9) out xmit igb0
06001 nat 1 ip from any to xx.xx.xx.xa in recv igb0
06002 nat 2 ip from 10.0.1.0/24 to not table(9) out xmit igb0
06003 nat 2 ip from any to xx.xx.xx.xb in recv igb0
06004 nat 3 ip from table(11) to not table(9) out xmit igb0
06005 nat 3 ip from any to xx.xx.xx.xc in recv igb0
06006 nat 4 ip from 10.0.0.0/24 to not table(9) out xmit igb0
06007 nat 4 ip from any to xx.xx.xx.xd in recv igb0
12000 pipe tablearg ip from table(3) to any via vlan20 in
12001 pipe tablearg ip from any to table(4) via vlan20 out
12002 pipe tablearg ip from any to table(4) via vlan21 out
12003 pipe tablearg ip from table(3) to any via vlan21 in
65535 allow ip from any to any
Ссылка на сообщение
Поделиться на других сайтах

Через какой интерфейс устанавливаете пптп-соединение? Он как-то связан с igb0? Адрес 172.16.1.1, указанный в конфиге мпд, попадает в приведённые таблицы файрвола или конфиги ната? А адрес из self хх.хх.хх.хх? Нат сконфигурирован как config ip? IP ната на каких-то интерфейсах имеются?

Можете показать вывод kldstat и ngctl list (или как там его)? Если есть возможность с этим сервером экспериментировать, то желательно в разных стадиях - при работающем нате и при неработающем.

Перезагрузку модуля ipfw или ipfw_nat перед повторным запуском файрвола не пробовали? Или убить экземпляр ната и сконфигурировать заново?

В таблице маршрутизации какие-нибудь хитрости применены или всё по умолчанию? Можете попробовать без set pptp self? С ним какие-то трудности были, но подробностей я уже не помню.

sysctl net.inet.ip.fw.one_pass какое значение имеет? Это весь конфиг ipfw или часть? Я правильно понял, что остановка мпд тоже не возвращает нату работоспособность?

Відредаговано bsdadm
Ссылка на сообщение
Поделиться на других сайтах

Что пишет "sysctl net.inet.ip.forwarding" до и после соединения?

хм, интересно - надо поглядеть, но время на тесты только ночью, ибо сожрут х)

ещё варианты? :)

Ссылка на сообщение
Поделиться на других сайтах

Тогда ещё добавить ipfw count на вход и на выход в нескольких местах на тестовую пару ип-адресов, между которыми запустить пинговалку. Чтоб локализовать в каком месте теряется. Ну и снифером посмотреть, ходит ли что-то и что конкретно.

Ссылка на сообщение
Поделиться на других сайтах

Через какой интерфейс устанавливаете пптп-соединение? Он как-то связан с igb0? Адрес 172.16.1.1, указанный в конфиге мпд, попадает в приведённые таблицы файрвола или конфиги ната? А адрес из self хх.хх.хх.хх? Нат сконфигурирован как config ip? IP ната на каких-то интерфейсах имеются?

Можете показать вывод kldstat и ngctl list (или как там его)? Если есть возможность с этим сервером экспериментировать, то желательно в разных стадиях - при работающем нате и при неработающем.

Перезагрузку модуля ipfw или ipfw_nat перед повторным запуском файрвола не пробовали? Или убить экземпляр ната и сконфигурировать заново?

В таблице маршрутизации какие-нибудь хитрости применены или всё по умолчанию? Можете попробовать без set pptp self? С ним какие-то трудности были, но подробностей я уже не помню.

sysctl net.inet.ip.fw.one_pass какое значение имеет? Это весь конфиг ipfw или часть? Я правильно понял, что остановка мпд тоже не возвращает нату работоспособность?

Да именно через igb0, там висит порядка 5 адресов, на 4 из которых нат, нат конфигурирется так: ipfw nat 1 config ip xx.xx.xx.xx log deny_in.

172.16.1.0/24 есть в 11 таблице - т.е. попадает.

Как сказал выше - тесты только ночью ибо машина в бою.

Или убить экземпляр ната и сконфигурировать заново? - не помогает, как и перезагрузка фаера в целом.

С маршрутизацией всё стандартно - дефолт, да и всё.

без set pptp self - это по идее забиндит все доступные адреса?

net.inet.ip.fw.one_pass=1

Остановка\перезагрузка какого-либо сервиса или фаервола не меняет ситуацию до полного ребута машины.

Ссылка на сообщение
Поделиться на других сайтах

Тогда ещё добавить ipfw count на вход и на выход в нескольких местах на тестовую пару ип-адресов, между которыми запустить пинговалку. Чтоб локализовать в каком месте теряется. Ну и снифером посмотреть, ходит ли что-то и что конкретно.

абонентский трафик приходит - т.к. меняются счетчики на правилах шейпа, вот мне пока больше всего нравится идея с net.inet.ip.forwarding = потому что трафик дальше не идет.

Ссылка на сообщение
Поделиться на других сайтах

хм, интересно - надо поглядеть, но время на тесты только ночью, ибо сожрут х)

ещё варианты? :)

Предполагаю, что если в rc.conf отсутствует gateway_enable="YES" и net.inet.ip.forwarding включается только через sysctl.conf, то во время соединения происходит сброс net.inet.ip.forwarding в 0.

в 9.2 с этим точно были проблемы. по поводу 9.3 не знаю.

http://lists.freebsd.org/pipermail/freebsd-net/2013-October/037012.html

Ссылка на сообщение
Поделиться на других сайтах

 

хм, интересно - надо поглядеть, но время на тесты только ночью, ибо сожрут х)

ещё варианты? :)

Предполагаю, что если в rc.conf отсутствует gateway_enable="YES" и net.inet.ip.forwarding включается только через sysctl.conf, то во время соединения происходит сброс net.inet.ip.forwarding в 0.

в 9.2 с этим точно были проблемы. по поводу 9.3 не знаю.

http://lists.freebsd.org/pipermail/freebsd-net/2013-October/037012.html

 

да, обычно ставлю gateway_enable="yes", но в этом случае он там отсутствует

#cat /etc/sysctl.conf

net.inet.ip.fw.one_pass=1 
net.inet.ip.fastforwarding=1 
net.inet.tcp.nolocaltimewait=1 
net.inet.ip.portrange.randomized=0
net.inet.ip.dummynet.io_fast=1
net.inet.ip.forwarding=1
Ссылка на сообщение
Поделиться на других сайтах

Предполагаю, что если в rc.conf отсутствует gateway_enable="YES" и net.inet.ip.forwarding включается только через sysctl.conf, то во время соединения происходит сброс net.inet.ip.forwarding в 0.

в 9.2 с этим точно были проблемы. по поводу 9.3 не знаю.

http://lists.freebsd.org/pipermail/freebsd-net/2013-October/037012.html

да, обычно ставлю gateway_enable="yes", но в этом случае он там отсутствует

При таком раскладе вероятность, что это сбрасывающийся форвардинг, стремится к бесконечности. Но тогда как понимать

усі сервіси працюють, маршрутизація працює

? Відредаговано bsdadm
Ссылка на сообщение
Поделиться на других сайтах

 

Предполагаю, что если в rc.conf отсутствует gateway_enable="YES" и net.inet.ip.forwarding включается только через sysctl.conf, то во время соединения происходит сброс net.inet.ip.forwarding в 0.

в 9.2 с этим точно были проблемы. по поводу 9.3 не знаю.

http://lists.freebsd.org/pipermail/freebsd-net/2013-October/037012.html

да, обычно ставлю gateway_enable="yes", но в этом случае он там отсутствует

При таком раскладе вероятность, что это сбрасывающийся форвардинг, стремится к бесконечности. Но тогда как понимать

усі сервіси працюють, маршрутизація працює

?

 

Да, срасывался форвардинг, ну я почему-то убедил себя, что не работает именно нат, а с форвардингом всё ок, вот и выпалил так "с горяча".

Ссылка на сообщение
Поделиться на других сайтах

 

 

 

хм, интересно - надо поглядеть, но время на тесты только ночью, ибо сожрут х)

ещё варианты? :)

Предполагаю, что если в rc.conf отсутствует gateway_enable="YES" и net.inet.ip.forwarding включается только через sysctl.conf, то во время соединения происходит сброс net.inet.ip.forwarding в 0.

в 9.2 с этим точно были проблемы. по поводу 9.3 не знаю.

http://lists.freebsd.org/pipermail/freebsd-net/2013-October/037012.html

да, обычно ставлю gateway_enable="yes", но в этом случае он там отсутствует
#cat /etc/sysctl.conf

net.inet.ip.fw.one_pass=1 
net.inet.ip.fastforwarding=1 
net.inet.tcp.nolocaltimewait=1 
net.inet.ip.portrange.randomized=0
net.inet.ip.dummynet.io_fast=1
net.inet.ip.forwarding=1
И да - оно без gateway_enable в rc.conf иногда отлетает при дауне интерфейса, что с этими вашими рррое/пптп - норма. Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах

Ну добавь просто gateway_enable и сделай рестарт нетворкинга. Должно быть ок. Это для юзеров пптп должен быть, или себе?

та то себе просто

Ссылка на сообщение
Поделиться на других сайтах

Ну так взял бы юзерспейсный поптоп - его для себя как раз хватает. И да - он скорее всего тоже будет отстреливать форвардинг, по причине убиения интерфейсов.

 

ЗЫ а мпд - та еще сука :-Р

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від mac
      Глюк в тому, що один (так - тільки один) mac адрес onu існує в білінгу у вигляді строки. Це трохи заважає.
      olt - bdcom gepon.
      Наскільки зрозумів, це виключно проблема реалізації snmpwalk у freebsd, де snmpwalk може на свій розсуд віддати mac адресу не як hex-string, а як звичайний string.
      Можливо snmpwalk тригериться на якомусь символі, мені невідомо.
       
      # tcpdump -vv -i em0 udp port 161 and host olt and host ub | grep "3320.101.10.4.1.1.241 ... olt.snmp > ub.47940: [udp sum ok] { SNMPv2c C="*****" { GetResponse(44) R=93278354 E:3320.101.10.4.1.1.241="8LO"W*" } } ub.47940 > olt.snmp: [udp sum ok] { SNMPv2c C="*****" { GetNextRequest(34) R=93278355 E:3320.101.10.4.1.1.241 } } snmpwalk -c***** -v2c -t5 olt .1.3.6.1.4.1.3320.101.10.4.1.1 SNMPv2-SMI::enterprises.3320.101.10.4.1.1.241 = STRING: "8LO\"W*" snmpwalk -Ox -c***** -v2c -t5 olt .1.3.6.1.4.1.3320.101.10.4.1.1 SNMPv2-SMI::enterprises.3320.101.10.4.1.1.241 = Hex-STRING: 38 4C 4F 22 57 2A  
      Це стосується таких параметрів у snmp конфізі bdcom
       
      [signal] MACINDEX=".1.3.6.1.4.1.3320.101.10.4.1.1" [misc] ONUINDEX=".1.3.6.1.4.1.3320.101.11.1.1.3"  
      За для усунення глюку спробував трошки змінити код і завдати тип snmp параметру явно у ./api/libs/api.ponbdcom.php у function collect()
      Це працює. Мабуть станеться у нагоді:
       
      # diff api.ponbdcom.php{.new,.bak} 37c37 < $onuIndex = $this->snmp->walk('-Ox ' . $oltIp . ':' . self::SNMPPORT, $oltCommunity, $onuIndexOid, self::SNMPCACHE); --- > $onuIndex = $this->snmp->walk($oltIp . ':' . self::SNMPPORT, $oltCommunity, $onuIndexOid, self::SNMPCACHE); 91c91 < $macIndex = $this->snmp->walk('-Ox ' . $oltIp . ':' . self::SNMPPORT, $oltCommunity, $macIndexOID, self::SNMPCACHE); --- > $macIndex = $this->snmp->walk($oltIp . ':' . self::SNMPPORT, $oltCommunity, $macIndexOID, self::SNMPCACHE);  
      P.S. Створив тему, а зараз міркую: а може це глюк у ПЗ olt. Оновлю фірмваре olt та перевірю...
       

    • Від a_n_h
      Всем доброго дня и мирного неба!
        После многочисленных экспериментов выяснил, что на последних версиях freebsd  максимум удавалось прокачать до 14 ГБт суммарно трафика со 100% загрузкой процессора. На том-же железе но с установленной freebsd 11.2 прокачивается до 20-ти ГБт суммарно тестового трафика с загрузкой процессора около 50%. 
        Подскажите, что можно убрать или наоборот добавить в систему с freebsd 13,3 для получения аналогичного результата...
    • Від mac
      Здається, після оновлення PHP 7.4 до PHP 8.2 feesharvester припинив працювати:
       
      /usr/local/bin/curl "http://127.0.0.1/billing/?module=remoteapi&key={SERIAL}&action=feesharvester" <br /> <b>Fatal error</b>: Uncaught TypeError: Unsupported operand types: string - string in {UBPATH}/billing/api/libs/api.fundsflow.php:570 Stack trace: #0 {UBPATH}/billing/modules/remoteapi/feesharvester.php(22): FundsFlow-&gt;harvestFees('2024-01') ...  
      Невеличке розслідування врешті з'ясувало, що це через наявність пробілу у деяких логінах абонентів. Як так сталося? Тому що інколи був неуважно додан трейлінг пробіл до номеру будинка і цей пробіл потрапив до логіну абоненту. Логін абоненту неможливо змінити ніяким чином штатними засобами. Я не розглядаю створення нового абонента для усунення помілки.

      Був обран такий шлях вирішення проблеми. Заміну функції php explode() знайшов у мережі. Мабуть це станеться в нагоді:

       
      diff api.fundsflow.php.bak api.fundsflow.php.new 559c559 < $eachfee = explode(' ', $eachline); --- > $eachfee = preg_split("~(?<!\\\\)(?:\\\\{2})*'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'(*SKIP)(*F)|\s+~s" , $eachline);  
    • Від FantoM_EscapE
      Хочу перенести свій білінг NODENY із фізичного сервера на віртуальний. Шукаю адміна який зможе допомогти у цьому питанні, так як нашого адміна банально призвали до війська. Вся схема на даний момент робоча, маю доступи до всього. Потрібно проінсталити на новішу версію FREEBSD, бо на моїй 10 річній вже не працюють нові SSL сертифікати. Кого зацікавила дана пропозиція - прошу у приватні повідомлення. обсудимо ціну і строки. або пишіть на будь-який месенджер 0677792091
    • Від rusol
      Добрый вечер.
       
      Есть от провайдера блок реальных адресов, к примеру 100.1.1.192/26
       
      Раньше сеть была в одном влане и записи в /etc/rc.conf были такие:

       
      ifconfig_ix0="inet 192.168.0.1 netmask 255.255.255.0" # Шлюз для пользователей с локальным IP ifconfig_ix0_alias0="inet 100.1.1.193 netmask 255.255.255.192" # Шлюз для пользователей с реальными IP  
      После чего стала задача часть пользователей переводить во вланы тоже с разделением на локальные IP и реальные, первый влан создал где-то пару лет назад и все работает:
       
      ifconfig_vlan1="vlan 1 vlandev ix0 192.168.1.1 netmask 255.255.255.0" # Шлюз для пользователей с локальным IP во Влане 1 ifconfig_vlan1_alias0="inet 100.1.1.248 netmask 255.255.255.248" # Шлюз для пользователей с реальными IP  во Влане 1  
      И вот стоит задача создать еще один влан, делаю по аналогии с вланом 1, только маску смещаю назад:
       
      ifconfig_vlan2="vlan 2 vlandev ix0 192.168.1.1 netmask 255.255.255.0" # Шлюз для пользователей с локальным IP во Влане 2 ifconfig_vlan2_alias0="inet 100.1.1.246 netmask 255.255.255.254" # Шлюз для пользователей с реальными IP во Влане 2  
      Когда я внес это в /etc/rc.conf и прописал команду:
       
      ifconfig vlan2 create  
      Все заработало.
       
      Но как только перезагрузился сервер, перестали работать реальные IP без вланов, в первом влане и во втором. Не пойму что не так делаю, возможно я с маской подсети что-то недопонимаю...
×
×
  • Створити нове...