1.1 ---------------------- multipath Routing
Online artikler om multipath ruting er allerede mye, og jeg vil bare påpeke når anvendelsen av multipath routing oppdateringer må være installert på følgende to re-kompilert kjernen (minst RH8 av ip rutepakker trenger to patcher)
Navn: iproute2-2.4.7-nå-ss020116-try.tar.gz
URL: ftp://ftp.inr.ac.ru/ip-routing/
Funksjon: løse de døde lenken problemet
Navn: equalize_2.4.18.patch
URL: http://trash.net/ ~ kaber / utjevne /
Funksjon: selv uten lappen, ip rute også likestiller parametere, men fungerer ikke ping barriere.
1.2.Multipath ruting problem.
ISP med en multi-link kan være inngangsporten ip er den samme, dette tilfellet multipath routing fungerer ikke. En annen sa at multipath ruting kan bare behandle utgående pakke
2.1 .--------------------- Policy ruting.
Prinsipp:
Klientens ip tilfeldig i N grupper, hver tilsvarer en kobling, pakke fra serveren siden av shell script for å fullføre. (Dette innebærer ekstern programvare for installasjon og konfigurasjon, kan du referere til andre artikler.)
Test miljø:
RH8. Ingen andre oppdateringer.
Sikkerhet spørsmål:
Ettersom reformprosessen å kjøre verten, er det ingen standard rute. Ekstern vert kunne ikke tilgang, komplett forebygging av hacker-angrep.
Ulemper:
Ikke en ekte lastbalansering, en IP-adresse kan ikke oppta båndbredden til den andre linken.
Link redundans:
Da han etter en ødelagt link i / etc / ppp / ip-down.local skript, svikt i ruting bytte til en annen linje.
Skriptet i $ 1 for grensesnittet navn, for eksempel ppp0
ip rute legge standard dev ppp1 tabell 201
Script:
-------------------------------------------------
# Identifisert som fwmark 1 av tabellen 201 IP-adresse pool adressene tilhører.
ip regel legge fwmark en tabell 201
ip regel legge fwmark 2 tabell 202
--------------------------------------------------
# Endre / etc / rc.local
echo "Aktivere viderekobling .."
echo "1" / proc/sys/net/ipv4/ip_forward
echo "Aktivere DynamicAddr .."
echo "1" / proc/sys/net/ipv4/ip_dynaddr
insmod ip_nat_ftp
insmod ip_nat_irc
insmod iptable_nat
insmod ip_conntrack_irc
insmod ip_conntrack_ftp
iptables-t nat-A POSTROUTING-o ppp0-j Masquerade
iptables-t nat-A POSTROUTING-o ppp1-j Masquerade
# 201, klienten adressen bassenget er tilordnet ppp0
ip rute legge standard dev ppp0 tabell 201
ip rute legge standard dev ppp1 tabell 202
# Ikke godta ISP's standard gateway, ellers fjerne ISP til standard gateway.
-------------------------------------------------- --------
# Ip distribusjon av hovedprogrammet, i henhold til den faktiske situasjonen, må endre Linenum at antall linker,
# Og katten pool1 pool2 pooltmp
# Ved telnet-klienten starter programmet, bruk nohup TheScriptName og, for å forhindre utilsiktet oppsigelse prosedyrer.
#! / Bin / bash
LineNum = 2
ME = $ (basename $ 0)
# Vurdere belastningen på forskjellige linjer, returnere mindre opptatt en.
#
funksjon EvaLoad ()
(
Fwmark = 1
Cnt = 1
Line = $ (wc-l pool1 | awk (print $ 1))
mens [$ CNT-lt $ LineNum]
do
Cnt = $ (expr $ CNT + 1)
Linen = $ (wc-l bassenget $ CNT | awk (print $ 1))
hvis [$ Line-gt $ Linen]
deretter
Line = $ Linen
Fwmark = $ CNT
fi
gjort
)
# Start script
funksjon DispatcherStart ()
(
# Initialiser ip-adresse pool automatisk
Cnt = 1
mens [$ CNT-le $ LineNum]
do
cat / dev / null pool $ CNT
Cnt = $ (expr $ CNT + 1)
gjort
iptables-t mangle-F
# Ta kontakt ARP tabellen for å finne nye kunder
samtidig:
do
grep [0-9] / proc / net / arp | awk (print $ 1) iparp
cat pool1 pool2 pooltmp
cat iparp | mens lest ClientIp
do
grep-w "$ ClientIp" pooltmp / dev / null
hvis [$?-ne 1]
deretter
fortsette
fi
EvaLoad
iptables-t mangle-A PREROUTING-s $ ClientIp/32-j MARK - set-mark $ Fwmark
echo $ ClientIp pool $ Fwmark
gjort
sove 30
gjort
)
#
#------------------ Main script
#
#
Ved «$ 1» i
start)
echo-e "Bringing up Dispatcher Program
"
echo ""
DispatcherStart
;;
stopp)
echo-e "Slå Dispatcher program
"
kill -9 $ (ps-ef | grep "$ ME" | awk (print 2 $))
hvis [$? = 0]; da
ekko suksess
annet
ekko feil
fi
echo ""
;;
omstart)
$ 0 stopp
$ 0 Start
;;
*)
echo "Bruk: $ ME (start & | stopp | omstart)"
exit 1
esac
exit 0