Страница 1 из 1

Разводка pptp клиентов в 4 разных канала

Добавлено: 2009-11-07 12:01:14
zip_abakan
Здравствуйте, товарищи!

Есть сервер FreeBSD 7.2, MPD5, ipfw. Ядро собрано с максимальным числом таблиц маршрутизации.
Клиенты в зависимости от тарифов разделены на подсети: 10.1.65.0; 10.1.66.0; 10.1.67.0; 10.1.68.0; 10.1.69.0;
Все Клиенты из Города. Городская Сеть - через em2
Мир есть в em0 - реальный ип, gre2 и gre3 - серые ипы.

Задача раздавать через впн:
всем Клиентам Город
10.1.65.0 раздавать внешку из gre2
10.1.66.0 и 10.1.67.0 раздавать внешку из gre3
10.1.68.0 и 10.1.69.0 раздавать внешку из em0

Боролся с ipfw долго и много читал всякого (; ничего кроме того чтоб натить всех в em0 и недавать Город не получилось.. Помогите, пожалуйста?

Re: Разводка pptp клиентов в 4 разных канала

Добавлено: 2009-11-07 19:23:22
schizoid
т.е. натить каждую сеть в свой интерфейс не катит? чего ж у мну работает....

Re: Разводка pptp клиентов в 4 разных канала

Добавлено: 2009-11-07 20:55:41
zip_abakan

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

ipfw nat 1 config ip gre3_ip
ipfw add nat 1 ip from 10.1.65.0/24 to any
ipfw add nat 1 ip from any to gre3_ip via gre3

ipfw nat 1 config ip gre2_ip
ipfw add nat 1 ip from 10.1.66.0/24 to any
ipfw add nat 1 ip from 10.1.67.0/24 to any
ipfw add nat 1 ip from any to gre2_ip via gre2

ipfw nat 1 config ip em0_ip
ipfw add nat 1 ip from 10.1.68.0/24 to any
ipfw add nat 1 ip from 10.1.69.0/24 to any
ipfw add nat 1 ip from any to em0_ip via em0
не работает (; и как мне томск организовать? еще одним натом?

Re: Разводка pptp клиентов в 4 разных канала

Добавлено: 2009-11-07 21:57:13
terminus
zip_abakan писал(а):Здравствуйте, товарищи!

Есть сервер FreeBSD 7.2, MPD5, ipfw. Ядро собрано с максимальным числом таблиц маршрутизации.
Клиенты в зависимости от тарифов разделены на подсети: 10.1.65.0; 10.1.66.0; 10.1.67.0; 10.1.68.0; 10.1.69.0;
Все Клиенты из Города. Городская Сеть - через em2
Мир есть в em0 - реальный ип, gre2 и gre3 - серые ипы.

Задача раздавать через впн:
всем Клиентам Город
10.1.65.0 раздавать внешку из gre2
10.1.66.0 и 10.1.67.0 раздавать внешку из gre3
10.1.68.0 и 10.1.69.0 раздавать внешку из em0

Боролся с ipfw долго и много читал всякого (; ничего кроме того чтоб натить всех в em0 и недавать Город не получилось.. Помогите, пожалуйста?
/etc/rc.conf

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

gateway_enable="YES"
ifconfig_em0="inet 11.22.33.44 netmask 255.255.255.0"
ifconfig_em2="?" #какие настройки у интерфейса в "городской сети"

defaultrouter="11.22.33.254"

setfib_enable="YES"
setfib1_defaultroute="55.66.77.254" # defaultroute для тех кто пойдет через gre2
setfib2_defaultroute="1.2.3.254" # defaultroute для тех кто пойдет через gre3

firewall_enable="YES"
firewall_type="/etc/firewall"

/etc/sysctl.conf

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

net.inet.ip.fw.one_pass=1
/etc/firewall

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

nat 1 config log if em0 same_ports reset deny_in
nat 2 config log if gre2 same_ports reset deny_in
nat 3 config log if gre3 same_ports reset deny_in

setfib 0 ip from {10.1.68.0 or 10.1.69.0} to any in recv em2
setfib 1 ip from 10.1.65.0 to any in recv em2
setfib 2 ip from {10.1.66.0 or 10.1.67.0} to any in recv em2

add allow all from any to any via em2

add nat 1 ip from any to any via em0
add nat 2 ip from any to any via gre2
add nat 3 ip from any to any via gre3

add deny all from any to any
/usr/local/etc/rc.d/setfib

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

#!/bin/sh
# PROVIDE: SETFIB
# REQUIRE: NETWORKING
# BEFORE: DAEMON
# 
# Add the following lines to /etc/rc.conf to enable setfib at startup
# setfib (bool): Set to "NO" by default.
#                Set it to "YES" to enable setfib
# setfib1_defaultroute (str): Set to "" by default
#       Set it to ip address of default gateway for use in fib 1
# setfib2_defaultroute (str): Set to "" by default
#       Set it to ip address of default gateway for use in fib 2

. /etc/rc.subr

name="setfib"
rcvar=`set_rcvar`

load_rc_config $name

[ -z "$setfib_enable" ] && setfib1_enable="NO"
[ -z "$setfib1_defaultroute" ] && setfib1_defaultroute=""
[ -z "$setfib2_defaultroute" ] && setfib2_defaultroute=""

start_cmd="${name}_start"
stop_cmd="${name}_stop"

setfib1_start()
{
setfib 1 route add -net default ${setfib1_defaultroute}
setfib 2 route add -net default ${setfib2_defaultroute}
}

setfib1_stop()
{
setfib 1 route del -net default
setfib 2 route del -net default
}
run_rc_command "$1"

Re: Разводка pptp клиентов в 4 разных канала

Добавлено: 2009-11-08 11:03:05
zip_abakan
ipfw это капец. Спасибо, terminus! ночью попробую..

Re: Разводка pptp клиентов в 4 разных канала

Добавлено: 2009-11-08 21:51:18
schizoid
а че это вы все в один нат загоняете то?