Страница 1 из 1
mpd4 +NAT(pf)
Добавлено: 2008-08-23 16:13:06
sith
Здравствуйте. Хочу раздать интернет локальной сети спомощью mpd4 клиента +
NAT(pf). У меня баян но всеже никак не могу разобраться.
Пересобираю ядро с такими опциями:
Код: Выделить всё
options NETGRAPH
options NETGRAPH_ETHER
options NETGRAPH_SOCKET
options NETGRAPH_TEE
device pf
device pflog
device pfsync
options ALTQ_CBQ # Class Bases Queuing (CBQ)
options ALTQ_RED # Random Early Detection (RED)
options ALTQ_RIO # RED In/Out
options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
options ALTQ_PRIQ # Priority Queuing (PRIQ)
options ALTQ_NOPCC # Required for SMP build
Mpd4 конфиги:
Код: Выделить всё
# configure the console
set console port 5005
set console ip 0.0.0.0
set console user foo bar
set console user foo1 bar1
set console open
# configure the web server
set web port 5006
set web user foo bar
set web open
mpd.conf
default:
load vpn
vpn:
new -i ng0 vpn vpn
set iface disable on-demand
set iface idle 0
set iface route 0/1
set iface enable tcpmssfix
set auth authname "xxx"
set auth password "xxx"
set link yes acfcomp protocomp
set link disable chap pap
set link accept chap pap
set link keep-alive 10 75
set link mtu 1500
set link max-redial 0
set ipcp yes vjcomp
#MS шифрование
set ccp yes mppc
set ccp yes mpp-e40
set ccp yes mpp-e128
set ccp yes mpp-stateless
set bundle enable compression
set bundle enable crypt-reqd
set bundle disable multilink
set bundle disable noretry
open
mpd.links:
Код: Выделить всё
vpn:
set link type pptp
set pptp peer 192.168.0.1 # адрес vpn сервера
set pptp enable originate
set pptp disable incoming windowing
В resolv.conf 2 dns сервера 81.28.160.1, 81.28.160.111
pf.conf:
Код: Выделить всё
ext_if="ng0" #wal интерфейс
int_if="rl1" #lan интерфейс
internal_net="192.168.1.1/24" #локальная сеть
nat on $ext_if from $internal_net to any -> ($ext_if) # NAT
pass in all
pass out all
rc.conf:
Код: Выделить всё
gateway_enable="YES"
keymap="ru.koi8-r"
local_startup="/usr/local/etc/rc.d"
nfs_client_enable="YES"
nfs_server_enable="YES"
rpcbind_enable="YES"
saver="daemon"
scrnmap="NO"
sshd_enable="YES"
usbd_enable="YES"
moused_port="/dev/ums0"
moused_type="auto"
moused_enable="YES"
moused_flags="-F 200 -r high -A 1.5,2.0 -a 0.6"
mpd_enable="YES"
pf_enable="YES"
mysql_enable="YES"
hostname=.
network_interfaces="rl0 rl1"
ifconfig_rl0=dhcp
ifconfig_rl1="inet 192.168.1.1 netmask 0xffffff00"
На виндовых компьютерах пишу: ip 192.168.1.2и тд. основной шлюз 192.168.1.1
маска 255.255.255.0 и dns 81.28.160.1, 81.28.160.111 раздача не работает.
p.s. Mpd4 не поднимался посоветовали добавить строчку set iface route 0/1
что я так думаю не есть хорошо для раздачи.
Re: mpd4 +NAT(pf)
Добавлено: 2008-08-23 17:05:11
paradox
у вас какая то каша в конфигах
можете нарисовать вашу топологию
что там и как должно работать ?
Re: mpd4 +NAT(pf)
Добавлено: 2008-08-23 18:14:24
sith
Есть сеть из 5и компьютеров подключенных в свич + подключенный тудаже будущий сервер на FreeBSD. На сервере поднимается VPN спомощью mpd4 клиента. NAT через pf. Хотелось бы раздать VPN на все 5 компьютеров с Win XP.
Re: mpd4 +NAT(pf)
Добавлено: 2008-08-23 18:32:33
paradox
что бы каждый из 5 компов в сети конектился к серверу через vpn
и попадал в инет?
или что бы каждый из 5 компов ходил в инет через сервер бсд который подключен к инету через vpn?
Re: mpd4 +NAT(pf)
Добавлено: 2008-08-23 18:35:20
sith
(c) что бы каждый из 5 компов ходил в инет через сервер бсд который подключен к инету через vpn
Re: mpd4 +NAT(pf)
Добавлено: 2008-08-23 18:45:36
paradox
ну тогда я так и не понял
vpn на сервер поднялся или нет?
set iface route 0/1
уберите
и покажите лог mpd
конектиться он
или нет
и есть ли тунель после коннекта ngX ?
Re: mpd4 +NAT(pf)
Добавлено: 2008-08-23 19:05:57
sith
Прямо сейчас я не могу показать логи т.к. сейчас работает сервер на xp и его выключение нежелательно(все жутко заняты и не соглашаются отказваться от интернета=)). Но могу сказать что mpd4 к серверу VPN конектиться нормально и интернет работает(на сервере). После коннекта тунель ng0 соответственно создается.
Re: mpd4 +NAT(pf)
Добавлено: 2008-08-23 19:10:39
paradox
ну тогда нужно включать pflog
делать пинг с локальной мошины какого нить mail.ru
и смотреть где оно отбиваеться
потому как с виду
вроде все в норме
Re: mpd4 +NAT(pf)
Добавлено: 2008-08-23 19:27:20
sith
Я новичек FreeBSD: нимогу понять что делает set iface route 0/1. На mpd3.18 для запуска и остановки использовались скрипты которые настраивали маршруты.
Например для запуска:
Код: Выделить всё
route delete 85.21.0.15
route add 85.21.0.15 10.53.0.17
default_route_old=`route -n get default 2>&1 | grep gateway | awk '{print $2}'`
if [ $default_route_old ]; then
echo $default_route_old > /var/tmp/default_route_old
route -nq change default $4
else
rm -f /var/tmp/default_route_old
route -nq add default $4
fi
Взято с
Я не понимаю эту систему маршрутизации(был бы благодарен если бы кто-нибудь мне обьяснил). Может быть на mpd4 нужно что-то похожее организовать?
Re: mpd4 +NAT(pf)
Добавлено: 2008-08-23 22:07:59
sith
Копал сейчас про маршрутизацию. Понял одно что с виндовых клиентов пакеты маршрутизируются на мой rl1 интерфейс у которого ip 192.168.1.1. Уже с моего rl1 интерфейса их нада перенаправлять на ng0 у которого ip назначает VPN сервер(ip 192.168.0.1). Наверно этот маршрут создается pf строчкой
Код: Выделить всё
nat on $ext_if from $internal_net to any -> ($ext_if)
Помогите встать на путь истинны=)
Re: mpd4 +NAT(pf)
Добавлено: 2008-08-24 0:46:07
paradox
посмотрите на
куда там дефоулт
какие их айпи шников сервера пингуються с виндовых компов?
Re: mpd4 +NAT(pf)
Добавлено: 2008-08-26 7:39:13
sith
До соединения mpd4:
Код: Выделить всё
# netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.1.130.193 UGS 0 20 rl0 #Назначается dhcp
10.1.130.192/26 link#1 UC 0 0 rl0
10.1.130.193 00:1b:53:88:2e:50 UHLW 2 0 rl0 1196
192.168.1 link#2
После соединения mpd4 с set iface route 0/1:
Код: Выделить всё
# netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
0/1 62.106.104.1 UGS 0 0 ng0 =>
default 10.1.130.193 UGS 0 49 rl0
10.1.130.192/26 link#1 UC 0 0 rl0
10.1.130.193 00:1b:53:88:2e:50 UHLW 2 0 rl0 1197
62.106.104.1 62.106.105.150 UH 1 0 ng0
192.168.1 link#2 UC 0 0 rl1
Я так понимаю что вместо
желательно увидеть
Re: mpd4 +NAT(pf)
Добавлено: 2008-08-26 12:15:38
sith
С виндовых компов попробывал пинг на 192.168.1.1(мой FreeBSD шлюз) в итоге решил поменять сетевую карту смотрящюю в локальную сеть. Вставил такуюже realtek что и стояла до этого. FreeBSD ее не распознала. Вставляю ту что стояла(и вроде как работала) - он ее не видит тоже! Сетевая карта была распознана до ее извлечения но все равно решил ядро пересобрать и там была строчка device rl. После пересборки ядра отъехала мышь с надписью "не найден файл /dev/ums0" хотя до этого прекрасно работала. Теперь юзаю num pad=/ Я начинаю любить freebsd=)
Re: mpd4 +NAT(pf)
Добавлено: 2008-08-26 14:47:40
sith
Починил мышь 2ой раз пересобрав ядро и скинув в default настройки BIOS=) Сетевую карту она все не видит...
Re: mpd4 +NAT(pf)
Добавлено: 2008-08-26 18:57:56
sith
Хм, проблема с сетевыми картами решилась они просто сгорели в неисправном PCI слоте.
Re: mpd4 +NAT(pf)
Добавлено: 2008-08-27 10:06:17
sith
Я немного отвлекся. Повторю ответ на ваш вопрос:
До соединения mpd4:
Код: Выделить всё
# netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.1.130.193 UGS 0 20 rl0 #Назначается dhcp
10.1.130.192/26 link#1 UC 0 0 rl0
10.1.130.193 00:1b:53:88:2e:50 UHLW 2 0 rl0 1196
192.168.1 link#2
После соединения mpd4 с set iface route 0/1:
Код: Выделить всё
# netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
0/1 62.106.104.1 UGS 0 0 ng0 =>
default 10.1.130.193 UGS 0 49 rl0
10.1.130.192/26 link#1 UC 0 0 rl0
10.1.130.193 00:1b:53:88:2e:50 UHLW 2 0 rl0 1197
62.106.104.1 62.106.105.150 UH 1 0 ng0
192.168.1 link#2 UC 0 0 rl1
Я так понимаю что вместо
желательно увидеть
Re: mpd4 +NAT(pf)
Добавлено: 2008-08-27 10:38:14
sith
Купил новый свич, новые сетевухи: теперь с виндовых компов пингуется(проверял ток на одном 192.168.1.13) но инета на нем нету.
Код: Выделить всё
# netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
0/1 62.106.104.1 UGS 0 93521 ng0 =>
default 10.1.130.193 UGS 0 154989 rl0
10.1.130.192/26 link#1 UC 0 0 rl0
10.1.130.193 00:1b:53:88:2e:50 UHLW 2 0 rl0 1196
62.106.104.1 62.106.104.146 UH 1 0 ng0
192.168.1 link#2 UC 0 0 rl1
192.168.1.13 00:80:48:30:32:5c UHLW 1 0 rl1 986
Re: mpd4 +NAT(pf)
Добавлено: 2008-08-29 11:57:14
sith
Уже фсю голову сломал. Помогите плз
По dhcp моего интернет провайдера моему интерфейсу смотрящему в инет назначаются такие маршруты(до поднятия VPN):
Код: Выделить всё
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.1.130.193 UGS 0 101998 rl0
10.1.130.192/26 link#1 UC 0 0 rl0
10.1.130.193 00:1b:53:88:2e:50 UHLW 2 0 rl0 985
192.168.1 link#2 UC 0 0 rl1
После подключения VPN(mpd4) со строчкой в mpd.conf set iface route 0/1(что не есть правильно но хоть както работает):
Код: Выделить всё
Internet:
Destination Gateway Flags Refs Use Netif Expire
0/1 62.106.104.1 UGS 0 652 ng0 =>
default 10.1.130.193 UGS 0 156079 rl0
10.1.130.192/26 link#1 UC 0 0 rl0
10.1.130.193 00:1b:53:88:2e:50 UHLW 2 0 rl0 711
62.106.104.1 62.106.106.55 UH 1 0 ng0 # Тут все назначается по разному
192.168.1 link#2 UC 0 0 rl1
Оч долго пытался поменять default gateway на ip vpn сервера (я так понимаю из выше указанной таблицы это 62.106.106.55 хотя он при каждом подключении меняется) различными скриптами например:
Код: Выделить всё
#!/bin/sh
vpn_ip=62.106.104.1
ip_def_gw=10.1.130.193
/sbin/route delete $vpn_ip
/sbin/route add $vpn_ip $ip_def_gw
/sbin/route delete default
/sbin/route add default -interface ng0
но в любом случае система просто зависала
Как поменять default gateway спомощью mpd чтобы система не висла???
Re: mpd4 +NAT(pf)
Добавлено: 2008-08-29 17:01:45
paradox
должен быть роут к провайдеру vpn
что бы у вас кольца не получалось
а дефол пусть mpd прописывает
кто ему мешает
Re: mpd4 +NAT(pf)
Добавлено: 2008-09-11 23:10:43
sith
Спс давно уже работаю под mpd ток есть пару траблов:
Ниже стоящие команды я пишу в файл /usr/local/etc/rc.d/aroute.sh
Код: Выделить всё
netstat –rn # Запоминаем default router
route delete default # Удаляем default router
route add 192.168.0.1 “IP вашего шлюза(тот что запомнили)”
route add 10.0.0.0 -netmask 255.0.0.0 “IP вашего шлюза” # добавляем сети моего провайдера
Хочу чтобы mpd также запускался при загрузке системы ток если пишу в rc.conf то он пытается запускается до настройки маршрутов а если в /usr/local/etc/rc.d/aroute.sh пишет что команда не найдена(пытался: mpd4, /usr/local/etc/rc.d/mpd4 start и тд.)...
Также стоит altq шейп 2 пользователей через pf
Аист: эт мой провайдер
Внешка: ng0 128 kbps
Внутренние ресурсы: 100 mbps
Код: Выделить всё
ext_if="ng0"
int_if="rl1"
a_ext_if="rl0"
tit="192.168.1.5"
table <private_net> { 10.0.0.0/8 }
set block-policy return
set skip on lo0
scrub in all
# Главная очередь исходящего трафика в локальную сеть
altq on $int_if cbq bandwidth 100Mb queue { DQ, q_tit, q_sith } # main queue
# Очередь для пользования Аистовскими локальными ресурсами
DQ on $int_if bandwidth 99Mb priority 3 cbq(default red)
# Очереди для пользователей в локальной сети (borrow – использование неиспользованного канала других очередей, red – механизм предотвращения перегрузки канала)
queue q_tit bandwidth 20Kb priority 5 cbq(borrow red) # child queues
queue q_sith bandwidth 104Kb priority 5 cbq(borrow red)
nat on $ext_if from $int_if:network to any -> ($ext_if)
nat on $a_ext_if from $int_if:network to any -> ($a_ext_if)
# Пропускаем все пакеты идущие в локальную сеть от не локальных ресурсов Аиста к пользователю tit используя очередь q_tit
pass out on $int_if from ! <private_net> to $tit queue q_tit
pass out on $int_if from ! <private_net> to $sith queue q_sith
Мне нужно чтобы оба пользователя лазили со скоростью 100мб по локальным ресурсам а во внешку tit был урезан до 20кб. Это работоспособный конфиг(просто иногда если кто-то качает bittorrent на скорости 10 мб интернет подвисает)?