Начало Вход/Регистрация Помощ Tazi stranica s latinski bukwi
Области
 Новини
 Актуална тема
 Linux портали
 Какво е Линукс?
 Въпроси-отговори
 Форуми
   •Трудова борса
   •Конкурс
 Статии
 Дистрибуции
   •Поръчка на CD
 Made In BG
 Файлове
 Връзки
 Галерия
 Конференции
Настройки
 Външен вид
 Предложения
 Направи си сам
И още ...
 За нас
 Линукс за българи ЕООД
 Линк към нас
 Предложения

Подкрепяно от:
TelePoint - Място за хора със свободни идеи

SiteGround

initLab

Adsys Group

SAP Bulgaria

Въпроси отговори
Въпрос: 2 ISP + 3 eth-ta
[Търси: ]

ВНИМАНИЕ: Използвайте форумите на сайта за дa зададете вашите въпроси.

Към началото |Добави въпрос |Отговори
 
Въпрос
От: na4inae6t Дата: 03/27/2004
Здравейте.
Имам следния въпрос.
Искам от два провайдера да имам връзка.
Разполагам с два IP адреса.
Когато от единият ми пропадне връзката 
искам от другия да ми се преконфигурира rc.inet1 от единия
IP адрес към другия.
Предложете някаква идея как да го направя?
Ето ми схемата която искам да направя.

#----------------------------------------------

ISP1=>eth0\
           \   ------------------
            ==>| Kernel-2.4.18  |
           /   ------------------
ISP2=>eth2/         ^
                    |
LAN =>eth1=>--------|

# Ethernet card (eth0):
IPADDR="XXX.72.223.XXX"   # ISP1 IP address!
NETMASK="255.255.255.224" # REPLACE with YOUR netmask! 
GATEWAY="XXX.72.223.XX1"  # gateway ISP1! 


# Ethernet card (eth2):
IPADDR="YYY.72.223.YYY"   # ISP2 IP address!
NETMASK="255.255.255.224" # REPLACE with YOUR netmask!
GATEWAY="YYY.72.223.YY1"  # gateway ISP2!


Отговор #1
От: Djimbo (kvv< at >atsoftconsult-bg< dot >com) Дата: 03/27/2004
4.2.1. Split access
 The first is how to route answers to packets coming in over
 a particular provider, say Provider 1, back out again over
that same provider. 

 Let us first set some symbolical names. Let $IF1 be the name
 of the first interface (if1 in the picture above) and $IF2
 the name of the second interface. Then let $IP1 be the IP
 address associated with $IF1 and $IP2 the IP address
 associated with $IF2. Next, let $P1 be the IP address of the
 gateway at Provider 1, and $P2 the IP address of the gateway
 at provider 2. Finally, let $P1_NET be the IP network $P1 is
in, and $P2_NET the IP network $P2 is in. 

 One creates two additional routing tables, say T1 and T2.
 These are added in /etc/iproute2/rt_tables. Then you set up
routing in these tables as follows: 


	  ip route add $P1_NET dev $IF1 src $IP1 table T1
	  ip route add default via $P1 table T1
	  ip route add $P2_NET dev $IF2 src $IP2 table T2
	  ip route add default via $P2 table T2
	
 Nothing spectacular, just build a route to the gateway and
 build a default route via that gateway, as you would do in
 the case of a single upstream provider, but put the routes
 in a separate table per provider. Note that the network
 route suffices, as it tells you how to find any host in that
network, which includes the gateway, as specified above. 

 Next you set up the main routing table. It is a good idea to
 route things to the direct neighbour through the interface
 connected to that neighbour. Note the `src' arguments, they
make sure the right outgoing IP address is chosen. 

	    ip route add $P1_NET dev $IF1 src $IP1
	    ip route add $P2_NET dev $IF2 src $IP2
	  
Then, your preference for default route: 
	    ip route add default via $P1
	  
 Next, you set up the routing rules. These actually choose
 what routing table to route with. You want to make sure that
 you route out a given interface if you already have the
corresponding source address: 
	    ip rule add from $IP1 table T1
	    ip rule add from $IP2 table T2
	  
 This set of commands makes sure all answers to traffic
 coming in on a particular interface get answered from that
interface. 



  Reader Rod Roark notes: 'If $P0_NET is the local network
 and $IF0 is its interface, the following additional entries
are desirable: 

ip route add $P0_NET     dev $IF0 table T1
ip route add $P2_NET     dev $IF2 table T1
ip route add 127.0.0.0/8 dev lo   table T1
ip route add $P0_NET     dev $IF0 table T2
ip route add $P1_NET     dev $IF1 table T2
 ip route add 127.0.0.0/8 dev lo   table T2                  
                   
'
 


 Now, this is just the very basic setup. It will work for all
 processes running on the router itself, and for the local
 network, if it is masqueraded. If it is not, then you either
 have IP space from both providers or you are going to want
 to masquerade to one of the two providers. In both cases you
 will want to add rules selecting which provider to route out
 from based on the IP address of the machine in the local
network. 

4.2.2. Load balancing
 The second question is how to balance traffic going out over
 the two providers. This is actually not hard if you already
have set up split access as above. 

 Instead of choosing one of the two providers as your default
 route, you now set up the default route to be a multipath
 route. In the default kernel this will balance routes over
 the two providers. It is done as follows (once more building
on the example in the section on split-access): 

 	    ip route add default scope global nexthop via $P1 dev
$IF1 weight 1 \
	    nexthop via $P2 dev $IF2 weight 1
	  
 This will balance the routes over both providers. The weight
 parameters can be tweaked to favor one provider over the
other. 

 Note that balancing will not be perfect, as it is route
 based, and routes are cached. This means that routes to
often-used sites will always be over the same provider. 

 Furthermore, if you really want to do this, you probably
 also want to look at Julian Anastasov's patches at
 http://www.ssi.bg/~ja/#routes , Julian's route patch page.
They will make things nicer to work with. 

http://lartc.org/howto/lartc.rpdb.multiple-links.html#AEN268



<< lynx + wget (2 ) | GET и POST - php-то ми не ги приема!!!!!!! (2 ) >>

 
© 2011-... Асоциация "Линукс за българи"
© 2007-2010 Линукс за българи ЕООД
© 1999-2006 Slavej Karadjov
Ако искате да препечатате или цитирате информация от този сайт прочетете първо това
Външния вид е направен от MOMCHE
Code Version: 1.0.8 H (Revision: 23-09-2011)
 
Изпълнението отне: 0 wallclock secs ( 0.07 usr + 0.01 sys = 0.08 CPU)