Съвет за насторйка на 2 Нет провайдера??
Здравейте,
Искам да помоля за съвет за следното: имам два доставчика на Интернет, които са със скорост:
eth1: 512 БГ peering + 128 international
eth0: 512 БГ peering + 32 International
Кажете как да ги обединя и рутирам - 50/50 не би било добре заради международния трафик, дайте идея какво да направя и с какви средства:
MASQ/SNAT/DNAT ???
Как да ги обединя качествено, така че двата да са си backup в случай на отпадане, но пък да не се товари само единия иначе??
Говорим за RedHat 9.0.
Мерси :))
Съвет за насторйка на 2 Нет провайдера??
Съвет за насторйка на 2 Нет провайдера??
идеален начин няма...
дори да имаш BGP пак се прави принципно това, което ще опиша тук, макар и по-лесно/гъвкаво/с автоматично прехвърляне
най-лесно е със скрипт - ping provider1.com, ping provider2.com
имаш 4 случая:
1. има ги и двамата
2. има го 1
3. има го 2
4. няма го никой
случай 4 е най-лесен - не променяш правилата, докато не се случи друго
случаи 2 и 3 са тривиални - маскираш през този дето го има, махаш предишния default gw и iptables mark-овете за алтернативната таблица и насочваш default gw към който е жив
когато ги има и двата трябва да си избереш стратегия - тук нямаш много опции, освен ако не искаш да се вкараш в дебрите на другаря кузнецов и да правиш динамично разпределение. не че не може, но дори да го подкараш (трябват няколко часа четене и 2-3минути писане) след първото ти напиване и поддръжката на системата ти отива фира - трябва пак да четеш ;-)
като цяло създаваш алтернативна таблица и с ip rule казваш, че пакети маркирани с 1 (примерно) отиват в нея. в нормалната таблица слагаш гейт провидер 1, в алтернативната провидер 2 (ако не е станало ясно иде реч за рутинг таблици - ip ro add .... table bla)
посредством peering списъка определяш кое е бг и кое - не. правиш си user defined chains. сега идва интересното - във всеки от тях трябва да си опишеш политиката - кой потребител за кой вид трафик, през кой доставчик да излиза. ако излизаш през един интерфейс и за двамата, ще трябва да повториш цялата работа и в nat таблицата. ако са два различни интерфейса, ще изглежда приблизително така:
#в /etc/iproute2/rt_tables
#добавяш
210 alt
# приемам, че имаш една локална мрежа: 10.0.0.0/8 на eth2
# def provider на eth0 и alt provider на eth1
#
ip ru ad fw 1 ta alt
ip ro ad default via <alt-provider-gw-ip> dev eth1 ta alt
ip ro ad 10.0.0.0/8 dev eth2
ip ro ad default via <def-provider-gw-ip> dev eth0
# забележи, че новата таблица е девствена и в нея кернела не добавя нищо по подразбиране и трябва да добавяш сам (както беше в линукс 2.0.х)
# сега iptables
iptables -t mangle -N peer
iptables -t mangle -N int
# цепиш peer/int
iptables -t mangle -A FORWARD -s 10.0.0.0/8 -d peernet1 -j peer
...
iptables -t mangle -A FORWARD -s 10.0.0.0/8 -d peernetN -j peer
iptables -t mangle -A FORWARD -s 10.0.0.0/8 -j int
# описваш кой ще взима бг от алтернативния
iptables -t mangle -A peer -s peeripviaalt1 -j MARK --set 1
...
iptables -t mangle -A peer -s peeripviaaltN -j MARK --set 1
# описваш кой ще взима външен от алтернативния
iptables -t mangle -A int -s intipviaalt1 -j MARK --set 1
...
iptables -t mangle -A int -s intipviaaltN -j MARK --set 1
# сега nat
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j SNAT --to
ipfromdefprovider
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth1 -j SNAT --to ipfromaltprovider
както виждаш не е rocket science, но не е и панацея. ако искаш динамична смяна можеш да си допишеш нещо, което контролира списъците в int/peer. но само да ти уплътни и двата канала на макс, няма да стане :(
ако не си видял, смислен списък с peeringa има на http://ipacct.com/f/peers
b.
http://ipacct.com/
Съвет за насторйка на 2 Нет провайдера??
Примерно:
ISP1 gateway = 134.135.136.137
ISP2 gateway = 195.196.197.198
ip route add default scope global nexthop via 134.135.136.137 dev eth0 weight 1 nexthop via 195.196.197.198 dev eth1 weight 3
Не е идеален начин, но може да опиташ.