Перейти до

Шлюз на FreeBSD - не пускает на некоторые сайты


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

Доброго времени суток!

Был шлюз, настроенный неизвестно когда неизвестным админом. Всё прекрасно работало, интернет людям раздавался, пока не возникла необходимость перейти на другого провайдера.

У предыдущего провайдера IP шлюзу не выдавался, адрес и шлюз был настроен прямо в rc.conf.

У нового провайдера PPPoE

Штатными средствами фряхи у меня поднять соединение не получилось... Вернее, соединение поднималось только вручную, командой /etc/rc.d/ppp start - при перезагрузке соединение автоматически не стартовало.

Решил использовать утилиту mpd5 для PPPoE. Вот содержимое mpd.conf:

default:
        load pppoe_client

pppoe_client:
#
# PPPoE client: only outgoing calls, auto reconnect,
# ipcp-negotiated address, one-sided authentication,
# default route points on ISP's end
#

        create bundle static B1
#       set iface enable nat		##NAT is configured elsewhere
        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 igb0
        set pppoe service ""
        open

Внёс правки в rc.conf, добавив туда запуск mpd5 и убрав интерфейс igb0. Так же, убрал строку defaultrouter - она была нужна для работы с предыдущим провайдером, с новым резолвер получает данные автоматически.

Далее, в качестве фаервола используется PF.

В /etc/pf.conf, к счастью, использованы переменные для конфигурации. Меняю одну переменную ext_if = "igb0" на ext_if = "ng0" и думаю, что дело сделано. Соединение при перезагрузке поднимается, доступ в интернет есть... Довольный собой уехал с объекта домой.

Вроде бы всё хорошо.

Но вдруг оказывается, что доступ есть далеко не к каждому сайту. Например, к укр.нет доступ есть. А к bitrix24.ua - нет.

Пингую с сервака:
 

ping bitrix24.ua
PING bitrix24.ua (18.232.195.40): 56 data bytes
^C
--- bitrix24.ua ping statistics ---
26 packets transmitted, 0 packets received, 100.0% packet loss

ЧЗН? Спидтест:
 

speedtest-cli 
Retrieving speedtest.net configuration...
Testing from LIMANET Ltd. (141.105.132.238)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by ISP Black Sea (Одесса) [0.43 km]: 5034.671 ms
Testing download speed................................................................................
Download: 0.00 Mbit/s
Testing upload speed................................................................................................
Upload: 0.00 Mbit/s

АААААААААААААААААААА!!!! Что это???

 

ping korinf-group.com
PING korinf-group.com (91.234.33.240): 56 data bytes
64 bytes from 91.234.33.240: icmp_seq=0 ttl=58 time=13.654 ms
64 bytes from 91.234.33.240: icmp_seq=1 ttl=58 time=13.475 ms
64 bytes from 91.234.33.240: icmp_seq=2 ttl=58 time=13.332 ms
64 bytes from 91.234.33.240: icmp_seq=3 ttl=58 time=13.913 ms
64 bytes from 91.234.33.240: icmp_seq=4 ttl=58 time=14.873 ms
64 bytes from 91.234.33.240: icmp_seq=5 ttl=58 time=14.033 ms
64 bytes from 91.234.33.240: icmp_seq=6 ttl=58 time=13.743 ms
^C
--- korinf-group.com ping statistics ---
7 packets transmitted, 7 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 13.332/13.860/14.873/0.469 ms

ping google.com.ua
PING google.com.ua (216.58.215.67): 56 data bytes
64 bytes from 216.58.215.67: icmp_seq=0 ttl=120 time=27.686 ms
64 bytes from 216.58.215.67: icmp_seq=1 ttl=120 time=27.766 ms
64 bytes from 216.58.215.67: icmp_seq=2 ttl=120 time=27.738 ms
64 bytes from 216.58.215.67: icmp_seq=3 ttl=120 time=27.651 ms
64 bytes from 216.58.215.67: icmp_seq=4 ttl=120 time=27.603 ms
64 bytes from 216.58.215.67: icmp_seq=5 ttl=120 time=27.781 ms
64 bytes from 216.58.215.67: icmp_seq=6 ttl=120 time=27.562 ms
^C
--- google.com.ua ping statistics ---
7 packets transmitted, 7 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 27.562/27.684/27.781/0.077 ms

Как такое может быть? Куда копать?

При этом, если на компе юзера включить какой-нибудь "впн", с туннелем через Киев или Берлин, доступ к любым сайтам есть, как положено...

Відредаговано Amourmort
Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

Спасибо за быстрые ответы. Привёл конфиг mpd.conf к виду

default:
        load pppoe_client

pppoe_client:
#
# PPPoE client: only outgoing calls, auto reconnect,
# ipcp-negotiated address, one-sided authentication,
# default route points on ISP's end
#

        create bundle static B1
        set iface name ng0
        set iface disable on-demand
        set iface idle 0
        set iface enable tcpmssfix
        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 1480
        set link keep-alive 10 60
        set pppoe iface igb0
        set pppoe service ""
        open

Не помогло

Відредаговано Amourmort
Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)
1 час назад, Туйон сказал:

Играться с MTU не пробовали ?

Пробовал. Поскольку юзеры крайне нервно реагируют на секундное пропадание инета, продолжать пробовать буду уже ночью.

Решил пингом попробовать, что-то такое получил:
 

ping -D -s 1460 google.com.ua

PING google.com.ua (172.217.16.3): 1460 data bytes
ping: sendto: Message too long
ping: sendto: Message too long
ping: sendto: Message too long

ping -D -s 1440 google.com.ua
PING google.com.ua (172.217.16.3): 1440 data bytes
ping: sendto: Message too long
ping: sendto: Message too long
ping: sendto: Message too long

ping -D -s 1400 google.com.ua
PING google.com.ua (172.217.16.3): 1400 data bytes
76 bytes from 172.217.16.3: icmp_seq=0 ttl=120 time=27.331 ms
wrong total length 96 instead of 1428
76 bytes from 172.217.16.3: icmp_seq=1 ttl=120 time=27.369 ms
wrong total length 96 instead of 1428
76 bytes from 172.217.16.3: icmp_seq=2 ttl=120 time=27.133 ms
wrong total length 96 instead of 1428
76 bytes from 172.217.16.3: icmp_seq=3 ttl=120 time=27.161 ms
wrong total length 96 instead of 1428

ping -D -s 1428 google.com.ua
PING google.com.ua (216.58.215.67): 1428 data bytes
76 bytes from 216.58.215.67: icmp_seq=0 ttl=120 time=28.180 ms
wrong total length 96 instead of 1456
76 bytes from 216.58.215.67: icmp_seq=1 ttl=120 time=27.954 ms
wrong total length 96 instead of 1456
76 bytes from 216.58.215.67: icmp_seq=2 ttl=120 time=28.045 ms
wrong total length 96 instead of 1456
76 bytes from 216.58.215.67: icmp_seq=3 ttl=120 time=27.894 ms
wrong total length 96 instead of 1456

ping -D -s 1432 google.com.ua
PING google.com.ua (216.58.215.67): 1432 data bytes
76 bytes from 216.58.215.67: icmp_seq=0 ttl=120 time=28.252 ms
wrong total length 96 instead of 1460
76 bytes from 216.58.215.67: icmp_seq=1 ttl=120 time=28.002 ms
wrong total length 96 instead of 1460
76 bytes from 216.58.215.67: icmp_seq=2 ttl=120 time=27.972 ms
wrong total length 96 instead of 1460

ping -D -s 1434 google.com.ua
PING google.com.ua (216.58.215.67): 1434 data bytes
ping: sendto: Message too long
ping: sendto: Message too long

Значит ли это, что MTU должен быть равен 1432+28=1460?

 

Провайдер говорит, что 1480

Відредаговано Amourmort
провайдер говорит
Ссылка на сообщение
Поделиться на других сайтах
18 минут назад, Amourmort сказал:

Я вот всё думал, что сначала посоветуют - Cisco, или это. Вот вы и прокололись!

Не слушай их. То всё фигня.

Нужен микротик.

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

Прям с сервака скопипастил сюда, рабочий вариант:

 

mpd.conf

 

startup:
        set user vpupkin 123456 admin
        set console self 127.0.0.1 5005

default:
        load pppoe_client

 

pppoe_client:
        create bundle static B1
        set iface route default
        set iface enable tcpmssfix
        set ipcp ranges 0.0.0.0/0 0.0.0.0/0
        set ipcp enable req-pri-dns
        set ipcp enable req-sec-dns
        create link static L1 pppoe
        set link action bundle B1
        set auth authname ВАШ ЛОГИН
        set auth password ВАШ ПАРОЛЬ
        set link max-redial 0
        set link mtu 1480
        set link keep-alive 10 60
        set pppoe iface em0 СЕТЕВОЙ ИНТЕРФЕЙС
        set pppoe service ""
        open
 

 

rc.conf


hostname="server"

dumpdev="AUTO"

fsck_y_enable="YES"
background_fsck="NO"
firewall_enable="YES"
gateway_enable="YES"
pf_enable="YES"
mpd_enable="YES"
 

pf.conf 

 

ext_if = "ng0"

set limit states 128000
set optimization aggressive

nat pass on $ext_if from 172.16.10.0/24 to any -> ($ext_if)
nat pass on $ext_if from 172.16.1.0/24 to any -> ($ext_if)
nat pass on $ext_if from 172.16.11.0/24 to any -> ($ext_if)
nat pass on $ext_if from 172.16.12.0/24 to any -> ($ext_if)
 

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

При следующих конфигах у юзеров появилось стабильное соединение с интернет:
mpd.conf

default:
        load pppoe_client

pppoe_client:
  
        create bundle static B1
        set iface name ng0
        set iface disable on-demand
        set iface idle 0
        set iface enable tcpmssfix
        set iface route default

        set ipcp ranges 0.0.0.0/0 0.0.0.0/0
        set ipcp enable req-pri-dns
        set ipcp enable req-sec-dns

        create link static L1 pppoe
        set link action bundle B1
        set auth authname **************
        set auth password **************
        set link max-redial 0
        set link mtu 1480
        set link keep-alive 10 60
        set pppoe iface igb0
        set pppoe service ""
        open

rc.conf:

hostname="hostmane"

#mpd5

mpd_enable="YES"
mpd_flags="-b"


# system

fsck_y_enable="YES"
background_fsck="NO"

sshd_enable="YES"

pf_enable="YES"
pf_rules="/etc/pf.conf"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"

gateway_enable="YES"
local_unbound_enable="YES"

ntpd_enable="YES"
ntpdate_enable="YES"

dhcpd_enable=YES
dhcpd_flags="-q"
dhcpd_withuser=root

dumpdev="AUTO"

pf.conf:
 

ext_if = "ng0"

set debug urgent
set limit { states 30000, frags 10000 }
set optimization normal
set block-policy drop
set skip on lo0
set state-policy if-bound

#scrub in all

nat pass on $ext_if from 192.168.0.0/22 to any -> ($ext_if)
nat pass on $ext_if from 192.168.20.0/24 to any -> ($ext_if)
nat pass on $ext_if from 192.168.22.0/24 to any -> ($ext_if)
nat pass on $ext_if from 192.168.25.0/24 to any -> ($ext_if)
nat pass on $ext_if from 192.168.50.0/24 to any -> ($ext_if)
nat pass on $ext_if from 192.168.100.0/24 to any -> ($ext_if)

 

 

К сожалению, скорость соединения при этом совершенно неудовлетворительна.

На самом шлюзе спидтест продолжает показывать это:

speedtest-cli
Retrieving speedtest.net configuration...
Testing from LIMANET Ltd. ()...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by It Center Odessa (Odessa) [0.43 km]: 5043.69 ms
Testing download speed................................................................................
Download: 0.00 Mbit/s
Testing upload speed................................................................................................
Upload: 0.00 Mbit/s

 

На компах и телефонах:

0-02-0a-12a7cc2cf9cfd7c33177dbdd3df87a59a79db101adda27274ba614285b97a9b5_20631368b46c36.jpg.46ac20ec77297223f19542537f6394bb.jpg

0-02-05-5fa9b2844ea9f62434817fc89dfcff143b37cf1454f6973ddf0d8962c1f61703_20631368c394b7.thumb.jpg.6193794ab66d79ea1075ee69fafa676a.jpg

0-02-05-80c95011dc11d8493e1d90c04dac6b4f0c56518822d6013f3c0a06bf3ef2227c_20631368c14b5f_206300d9032da4.thumb.jpg.548c26f7469b26fdaaacc665de453851.jpg

Відредаговано Amourmort
Ссылка на сообщение
Поделиться на других сайтах
  • 3 weeks later...
В 21.06.2020 в 19:32, Туйон сказал:

Не слушай их. То всё фигня.

Нужен микротик.

Бюджет ?. Микрот - поставил и забыл где поставил, многим это не подходит!

Відредаговано ntp
Ссылка на сообщение
Поделиться на других сайтах
  • 3 months later...

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

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

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

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

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

Вхід

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

Войти сейчас
  • Зараз на сторінці   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 для получения аналогичного результата...
    • Від Sat_Odessa
      Помогите решить задачу:
      Есть 2 роутера с белыми адресами: TPLink и MikroTik. Необходима переодическая настройка (открытие/закрытие портов). С Mikrotik-oм никаких проблем нет, так как инструкций в интернете вагон и маленькая тележка. А вот с TPLink-ом загвоздка. Чтобы не открывать доступ к нему на весь мир, доступ веб-интерфейсу TPLink-а открыт только для адреса Mikrotik-а. Соответственно из локальной сети Mikrotik-а я могу попасть в настройки TPLink-а. Но иногда нужен удаленный доступ к TPLink-у из других мест.
       
      Можно ли как-то открыть на Mikrotik-е внешний порт, чтобы весь трафик из интернета на этот порт перенаправлялся на внешний IP-адрес TPLink-а? Чтобы для TPLink-а это выглядело так, как будто я подключаюсь к нему с IP-адреса Mikrotik-а.
    • Від Інет.укр
      Продам MS-MIC-16G б.у з гарантією 1міс.
      вартість 65 000грн 
      Варіанти оплати:
      рахунок від фоп крипта USDT на карту монобанк p.s 
       


    • Від 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);  
×
×
  • Створити нове...