Маршрутизация двух провайдеров

Установка, настройка, поддержка
ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

ran, как я понял помечаем новые пакеты уходящие через eth2 (default gw) и роутим потом только их через ppp0
с точностью до наоборот :)
но я попрежнему не понимаю смысл того что описано тут или тут, как я первоначально и настроил, там не используется пакетный фильтр для установки меток и после настройки так все впринципе работает, кроме asterisk который использует UDP транспорт. Причем тот же самый DNS сервер работает нормально (проверялось nslookup с коннектом на реальник)
у меня нет времени разбираться ни с тут ни с там ни с тем более с тем что наворотил ты :D я нгаписал как будет работать... ну давай пожуём ещё

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

echo "100 mytable" >> /etc/iproute2/rt_tables
ip ru add fwmark 1 table mytable
iptables -t mangle -A OUTPUT -o eth2  -m state --state NEW -j ACCEPT
iptables -t mangle -A OUTPUT -o eth2  -j MARK --set-mark 1
в /etc/ppp/ip-pre-up

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

test $IFNAME = ифейснапрова && ip ro replace default dev $IFNAME table mytable
и если ты мне докажешь что где-то там а тем более отама сделано проще... ну а с тем почему неработает как делал ты мне возиться влом :D

alliancenet
Сообщения: 35
Зарегистрирован: Пн апр 23, 2007 7:22 am
Откуда: Омск

Сообщение alliancenet »

Привет всем!!! почитал что обсуждали и что то в конец запутался!!! Помогите замастырить:

Что есть:
1) Linux Debian с ядром 2.6.18-6-686
2) Есть локалка eth2 10.7.0.0/16 они подключаются к VPN через freeradius+mysql+pptp(pppoe)+abills выдаваемые адреса 192.168.0.0/24 и 192.168.1.0.24 в зависимости от тарифа
3) Есть два провайдера:
eth0 192.168.1.2/24 gw 192.168.1.1
eth1 192.168.0.2/24 gw 192.168.0.1

Надо что бы пользователи 192.168.1.0/24 выходили в инет через провайдера 192.168.1.1, а 192.168.0.0/24 через 192.168.0.1. И все они ходили к 195.162.33.32/28 через eth0 (eth0 192.168.1.2/24 gw 192.168.1.1)

Вожможно я ошибаюсь насчет выданных ип адресов NAS, просто где то вычитывал что людше так!!! И вожможно я ожибаюсь, что надо делать это с помощью маршутизацию можно и решить с помощью nat + iptables!!! помоги плиз :(

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

Надо что бы пользователи 192.168.1.0/24 выходили в инет через провайдера 192.168.1.1, а 192.168.0.0/24 через 192.168.0.1. И все они ходили к 195.162.33.32/28 через eth0 (eth0 192.168.1.2/24 gw 192.168.1.1)
а всё остальное (которое не из перечисленных подсетей) через как должно ходить? а ваще - смормулировал бы задачу в целом - чего ты хочешь? может она ваще проще решается

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

и если ты просто тхочешь чтобы разные усеры маршрутизировались по разному почему бы например через фильтры не передавть имя таблицы маршрутизации через которую должен пробрасывться усер а в /etc/ppp/ip-pre-up добавить что-то типа

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

if [ -f /var/run/radattr.$1 ]
then
  FILTERS=`/usr/bin/awk  '/Filter-Id/ {print $2}'  /var/run/radattr.$1`
  test -n "$FILTERS" && /sbin/ip ru add from $5 iif $1 table $FILTERS
fi
и получишь раздельный роутинг усеров не зависящий от их ипов, а фильтры формировать где угодно - индивидуально для усера, для ТП, для NAS и тд

ну ещё удалять правило в /etc/ppp/ip-down.local

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

if [ -f /var/run/radattr.$1 ]
then
  FILTERS=`/usr/bin/awk  '/Filter-Id/ {print $2}'  /var/run/radattr.$1`
  test -n "$FILTERS" && /sbin/ip ru del from $5 iif $1 table $FILTERS
fi
естественно предполагается что нужный роутинг в нужных таблицах прописан заранее :D

alliancenet
Сообщения: 35
Зарегистрирован: Пн апр 23, 2007 7:22 am
Откуда: Омск

Сообщение alliancenet »

ran писал(а):
Надо что бы пользователи 192.168.1.0/24 выходили в инет через провайдера 192.168.1.1, а 192.168.0.0/24 через 192.168.0.1. И все они ходили к 195.162.33.32/28 через eth0 (eth0 192.168.1.2/24 gw 192.168.1.1)
а всё остальное (которое не из перечисленных подсетей) через как должно ходить? а ваще - смормулировал бы задачу в целом - чего ты хочешь? может она ваще проще решается
Мненадо что бы пользователи А выходили в инет через интернет линиюА а пользователиВ выходи через линиюВ вот

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

Мненадо что бы пользователи А выходили в инет через интернет линиюА а пользователиВ выходи через линиюВ вот
1. а я очём спрашивал? о пользователях НЕ А и В! остальное бить нахрен? собственный трафик рутера например :D
2. чем тебя не устраивает то что я предложил в пред посте?

alliancenet
Сообщения: 35
Зарегистрирован: Пн апр 23, 2007 7:22 am
Откуда: Омск

Сообщение alliancenet »

Привет!!! Что то не работает почему то!!! Наверное из-за того что либо у меня руки не с того места растут, либо из-за того что я еще мало знаю линукс!!!

В общем как я запускаю сервер у меня скрипт которые делает следующее
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.7.100.2 -j SNAT --to-source 192.168.1.2 не знаю почему, но без этой команды ваще инета нет у пользователей
modprobe ip_conntrack
modprobe ip_gre
modprobe ip_nat_pptp
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ppp_async
modprobe ppp_generic
modprobe ppp_mppe_mppc
modprobe ppp_synctty
modprobe pppoe

потом поднимается pptp-server и pppoe-server

в /etc/iproute2/rt_tables прописал
10 lan1
11 lan2

и добавил скрипт в /etc/network/if-up.d/my_route следующего содержания

#!/bin/sh -e


case "$IFACE" in
eth0)
ip route add 192.168.1.0/24 dev eth0 src 192.168.1.2 table lan1
ip route add default via 192.168.1.1 table lan1
ip route add 192.168.1.0/24 dev eth0 src 192.168.1.2
ip rule add from 192.168.1.2 table lan1
;;
eth1)
ip route add 192.168.0.0/24 dev eth1 src 192.168.0.2 table lan2
ip route add default via 192.168.0.1 table lan2
ip route add 192.168.0.0/24 dev eth1 src 192.168.0.2
ip rule add from 192.168.0.2 table lan2
;;
esac

ну и конечно что ты посоветавал дописал скрипты в файлики и в настройках тарифного плана прописал фильтры!!! Инет пользователям прет!!!

вот что у меня получилось

И почему то когда пользователь подключается через pptp, то у него сервер отличается от севера которыя я указал явно в настройках 10.7.100.1, а через PPPOE выдается сервер как положенно???

gateway:/usr/src/test# ip r
192.168.1.165 dev ppp6 proto kernel scope link src 192.168.0.2
192.168.1.16 dev ppp1 proto kernel scope link src 10.7.100.1
192.168.1.19 dev ppp8 proto kernel scope link src 192.168.0.4
192.168.1.71 dev ppp4 proto kernel scope link src 192.168.0.5
192.168.1.54 dev ppp9 proto kernel scope link src 192.168.0.6
192.168.1.131 dev ppp3 proto kernel scope link src 10.7.100.1
192.168.1.147 dev ppp7 proto kernel scope link src 192.168.0.8
192.168.1.100 dev ppp5 proto kernel scope link src 192.168.0.7
192.168.1.12 dev ppp10 proto kernel scope link src 192.168.0.9
192.168.1.31 dev ppp2 proto kernel scope link src 192.168.0.3
192.168.1.92 dev ppp11 proto kernel scope link src 10.7.100.1
192.168.1.30 dev ppp0 proto kernel scope link src 192.168.0.1
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2
192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.2
10.7.0.0/16 dev eth2 proto kernel scope link src 10.7.100.1
default via 192.168.1.1 dev eth0
default via 192.168.0.1 dev eth1

gateway:/usr/src/test# ip ru
0: from all lookup 255
32764: from 192.168.0.2 lookup lan2
32765: from 192.168.1.2 lookup lan1
32766: from all lookup main
32767: from all lookup default

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

Привет!!! Что то не работает почему то!!!
потому что полная бредятина... от начала и до конца. Тебе надо:

1. для начала уяснить (хотя бы для себя самого) чего ты собственно хочешь
2. внимательно изучить это
3. потом это
4. попытаться самому применить 2 и 3 с целью получить 1
5. а уж тогда о чём-то спрашивать - если что-то конкретно непонятно/неполучается

в противном случае мы просто говорим на разных языках

Ответить