MPD + PF для PPPoE Укртелеком

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
toxic
рядовой
Сообщения: 19
Зарегистрирован: 2008-03-03 23:25:22
Откуда: Ukraine, Sumy
Контактная информация:

MPD + PF для PPPoE Укртелеком

Непрочитанное сообщение toxic » 2009-09-02 10:43:59

Возможно кто то сталкивался стем что штатный ppp клиент после 23 часов 59 минут отваливается. Неважно из за чего важно то что обрывается сессия и меняется IP и даже IP маршрутизатора (вот что значит полная динамика) а штатный клиент PPPoE в FreeBSD не меняет не то не другое. Кстати у пользователей со статикой маршрутизатор тоже меряется.
В общем к делу
Ставим MPD5

Код: Выделить всё

#cd /usr/ports/net/mpd5
#make
#make install
#make clean


Теперь конфигурируем сам MPD5

Код: Выделить всё

startup:
    set user foo bar admin
    set user foo1 bar1
    set web self 172.31.31.1 5006
    set web open

default:
    load pppoe_client

pppoe_client:

    create bundle static Bukrtel
    set iface route default
    set ipcp ranges 0.0.0.0/0 0.0.0.0/0
    set iface up-script /usr/local/etc/mpd5/script/up-pppoe.sh
    set iface down-script /usr/local/etc/mpd5/script/down-pppoe.sh
    create link static Lukrtel pppoe
    set link action bundle Bukrtel
    set auth authname login@dsl.ukrtel.net
    set auth password *******
    set link max-redial 0
    set link mtu 1492
    set link keep-alive 10 60
    set pppoe iface fxp0
    set pppoe service "ukrtelecom"
    open
Скрипт up-pppoe.sh

Код: Выделить всё

#!/bin/sh

tmpdir="/usr/local/etc/mpd5/script/tmp"
wan0_if=$1
wan0_ip=$3
wan0_gw=$4

rm -f $tmpdir/pppoe
touch $tmpdir/pppoe

#WAN PORTS
wan_tcp_svc="10000 ssh http ftp domain pptp"
wan_udp_svc="domain"
#LAN RDR
lan0_if="fxp1"
host_ports_lan0="51413, 5900, 9091"
host_lan0="172.31.31.2"
#RDR
echo "rdr pass on $wan0_if inet proto tcp to ($wan0_if) port {$host_ports_lan0} -> $dima_lan0" >> $tmpdir/pppoe
echo "rdr pass on $lan0_if inet proto tcp to ($wan0_if) port {$host_ports_lan0} tag LAN0RDR0 -> $dima_lan0" >> $tmpdir/pppoe
echo "nat on $lan0_if tagged LAN0RDR0 -> ($lan0_if:0)" >> $tmpdir/pppoe
#NAT
echo "nat on $wan0_if from ($lan0_if:network) to {!10.0.0.0/8, !192.168.0.0/16, !172.16.0.0/12} -> ($wan0_if)" >> $tmpdir/pppoe
#RULES

#echo "block in quick on $wan0_if to !($wan0_if)" >> $tmpdir/pppoe
echo "block log on $wan0_if" >> $tmpdir/pppoe
echo "block return-rst in log on $wan0_if inet proto tcp" >> $tmpdir/pppoe
echo "pass out on $wan0_if inet" >> $tmpdir/pppoe
echo "pass in  on $wan0_if inet proto icmp to ($wan0_if) icmp-type echoreq code 0" >> $tmpdir/pppoe
echo "pass in  on $wan0_if inet proto tcp  to ($wan0_if) port { $wan_tcp_svc }" >> $tmpdir/pppoe
echo "pass in  on $wan0_if inet proto udp  to ($wan0_if) port { $wan_udp_svc }" >> $tmpdir/pppoe

#Execute
pfctl -a adsl-if/pppoe -f $tmpdir/pppoe
Скрипт down-pppoe.sh

Код: Выделить всё

#!/bin/sh

pfctl -a adsl-if/pppoe -F all
Конфиг pf.conf

Код: Выделить всё

#RFC1918
table <rfc1918> const {192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8}

#LAN0 - besic lan
if_lan0="fxp1"
net_lan0="172.31.31.0/24"
inet_addr="172.31.31.2, 172.31.31.3, 172.31.31.4, 172.31.31.5, 172.31.31.6, 172.31.31.7"

#LAN1 - adsl modem
if_lan1="fxp0"
net_lan1="192.168.1.0/24"
dsl2500u_lan1="192.168.1.1"

set skip on lo0
set block-policy return
scrub in all

nat-anchor "adsl-if/*"
rdr-anchor "adsl-if/*"

#NAT
nat on $if_lan1 from $net_lan0 to $dsl2500u_lan1 -> ($if_lan1)

#WAN0
block all
anchor "adsl-if/*"
#LAN0
block log on $if_lan0
block return-rst in log on $if_lan0 inet proto tcp
pass out on $if_lan0 inet
pass in  on $if_lan0 inet proto tcp  from $net_lan0 to $if_lan0
pass in  on $if_lan0 inet proto udp  from $net_lan0 to $if_lan0
pass in  on $if_lan0 inet proto icmp from $net_lan0 to $if_lan0
pass in  on $if_lan0 inet proto tcp  from {$inet_addr} to !<rfc1918>
pass in  on $if_lan0 inet proto icmp from {$inet_addr} to !<rfc1918> icmp-type echoreq code 0
pass in  on $if_lan0 inet proto tcp  from $net_lan0 to $dsl2500u_lan1
pass in  on $if_lan0 inet proto icmp from $net_lan0 to $dsl2500u_lan1 icmp-type echoreq code 0
#LAN1
block log on $if_lan1
block return-rst in log on $if_lan1 inet proto tcp
pass out on $if_lan1 inet
вот и все. но есть маленький вопрос, есть в конфиге anchor "adsl-if/*", pfctl -sr показывает что pf интерпретирует его в anchor "adsl-if/*" all, а pftop указывает на наличия правила pass all на его месте и в него заходят пакеты. Правильно ли я думаю что это те пакеты которые проходят через правила якоря adsl-if/*. Избавите меня от смутных сомнений.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35267
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: MPD + PF для PPPoE Укртелеком

Непрочитанное сообщение Alex Keda » 2009-09-27 20:42:08

ничё не понял...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: MPD + PF для PPPoE Укртелеком

Непрочитанное сообщение zingel » 2009-09-27 22:00:46

я сессия и меняется IP и даже IP маршрутизатора (вот что значит полная динамика)
я бы уволил за такую динамику. А нарисуйте нам всем схему.
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
Gamerman
капитан
Сообщения: 1720
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: MPD + PF для PPPoE Укртелеком

Непрочитанное сообщение Gamerman » 2009-09-27 23:24:48

MPD для других нужд или для подключения к УТК?

У меня тоже УТК через АДСЛ, хоть и статика, но маршрутизатор меняется, но проблем при этом никаких нет.
Интерфейс tun0 остается, а какой адрес на нем - не играет роли.
Глюк глюком вышибают!

Аватара пользователя
InventoR
ст. лейтенант
Сообщения: 1344
Зарегистрирован: 2006-12-10 19:43:25
Контактная информация:

Re: MPD + PF для PPPoE Укртелеком

Непрочитанное сообщение InventoR » 2009-09-29 13:14:10

toxic, что за чушь?

Код: Выделить всё

Возможно кто то сталкивался стем что штатный ppp клиент после 23 часов 59 минут отваливается.
бросай курить по вечерам:

Код: Выделить всё

13:11 admin@freebsd [admin]cat /var/log/ppp.log | grep dial
Sep 26 13:38:07 freebsd ppp[435]: tun0: Phase: deflink: Enter pause (3) for redialing.
Sep 26 13:38:10 freebsd ppp[435]: tun0: Chat: deflink: Redial timer expired.
Sep 26 13:38:10 freebsd ppp[435]: tun0: Phase: deflink: opening -> dial
Sep 26 13:38:10 freebsd ppp[435]: tun0: Phase: deflink: dial -> carrier
Sep 27 13:37:13 freebsd ppp[435]: tun0: Phase: deflink: Enter pause (3) for redialing.
Sep 27 13:37:16 freebsd ppp[435]: tun0: Chat: deflink: Redial timer expired.
Sep 27 13:37:16 freebsd ppp[435]: tun0: Phase: deflink: opening -> dial
Sep 27 13:37:16 freebsd ppp[435]: tun0: Phase: deflink: dial -> carrier
Sep 28 13:36:18 freebsd ppp[435]: tun0: Phase: deflink: Enter pause (3) for redialing.
Sep 28 13:36:21 freebsd ppp[435]: tun0: Chat: deflink: Redial timer expired.
Sep 28 13:36:21 freebsd ppp[435]: tun0: Phase: deflink: opening -> dial
Sep 28 13:36:21 freebsd ppp[435]: tun0: Phase: deflink: dial -> carrier
13:12 admin@freebsd [admin]

Код: Выделить всё

adsl:
  set device PPPoE:ed0:ukrtelecom
  disable IPV6CP
  disable acfcomp
  disable protocomp
  disable deflate
  disable pred1
  disable vjcomp
  enable lqr
  set cd 15
  set dial
  set login
  set redial 0 0
  set mru 1492
  set mtu 1492
  set speed sync
  set authname *****
  set authkey ******
  add! default HISADDR
И не забудь про:

Код: Выделить всё

13:13 admin@freebsd [admin]cat /etc/ppp/ppp.linkup
adsl:
    iface clear

13:13 admin@freebsd [admin]
Комбинация работает уже больше двух лет, и не каких проблем в обще.
ну вот и сказочке конец, кто слушал, тот молодец.

Аватара пользователя
Gamerman
капитан
Сообщения: 1720
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: MPD + PF для PPPoE Укртелеком

Непрочитанное сообщение Gamerman » 2009-09-29 13:24:04

InventoR писал(а):toxic, что за чушь?

Код: Выделить всё

Возможно кто то сталкивался стем что штатный ppp клиент после 23 часов 59 минут отваливается.
Не ррр клиент отваливается, а УТК делает обрыв сессии.
Глюк глюком вышибают!