Интернет-провайдеры с балансировкой нагрузки на сервере Ubuntu
У меня есть сервер Dell с установленным на нем сервером Ubuntu 11.10. Сервер имеет 3 карты Ethernet eth0, eth1 и eth2.
У меня два провайдера говорят ISP1, ISP2
У eth0 есть общедоступный IP-адрес (предоставляется ISP1 - нам требуется доступ к этой услуге извне нашей локальной сети). eth1 подключен к локальной сети (через коммутатор) с помощью 192.168.XX подсеть eth2 получает динамический IP-адрес (через DHCP, предоставленный ISP2) с 172.16..xx подсеть
Я хочу балансировать нагрузку (делая ее отказоустойчивой одновременно) двумя интернет-соединениями. Я нашел следующий скрипт онлайн, чтобы помочь моей причине:
#!/bin/bash -v
#IPs of device connected to the internet
IP1=119.my.pub.ip #Public IP provided by ISP1
#dynamically alloted IP provided by ISP2
IP2=`ifconfig | awk -F: '/172.16./ {print $2}' | awk '{ORS=" "; print $1}' | awk '{print $2}'`
#Your Gateways (type route in terminal it should be in the same line as default)
P1=119.my.pu.gat #gateway provided by ISP1
P2=172.16.1.1 #gateway provided by ISP2
#Your Subnets
P0_NET=192.168.0.0/16 #local network subnet,
P1_NET=119.82.90.0/28 # Part of your gateway
P2_NET=172.16.1.0/24 #Part of your gateway
# NICs your internet interfaces
IF1=eth0
IF2=eth2
IF0=eth1
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
ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2
ip rule add from $IP1 table T1
ip rule add from $IP2 table T2
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
ip route add default scope global nexthop via $P1 dev $IF1 weight 1 nexthop via $P2 dev $IF2 weight 1
Я не до конца понимаю сценарий. Следовательно, если приведенный выше код не работает, каков наилучший способ восстановить машину до ее первоначальной конфигурации? Какие файлы необходимо сохранить перед запуском этого скрипта?
1 ответ
Я полагаю, что сценарий, который вы нашли, был создан путем объединения / объединения различных частей информации из HOWTO о Linux Advanced Routing & Traffic Control. В частности, раздел о балансировке нагрузки отдельных ссылок ISP. Я предлагаю вам прочитать эту страницу, чтобы понять, что делает этот скрипт. Имейте в виду, что это Как ссылаться на старые Ядра, хотя я не думаю, что принцип сильно изменился бы, и ip
команды, вероятно, все еще действительны.
Этот сценарий нужно будет запускать каждый раз, когда машина загружается, чтобы установить маршруты и т. Д., Поэтому вам не нужно делать резервные копии файлов (это не касается). Как только вы перезагрузите компьютер, правила будут забыты, и будут использованы настройки сети, установленные по умолчанию.
Если вы не хотите перезагружаться, то, в зависимости от дистрибутива, вы можете перезапустить сеть, т.е. в Red Hat a service network restart
должен очистить маршруты для вас и снова добавить маршрут по умолчанию (это основано на моем быстром сканировании сетевых сценариев). Я верю, что в Ubuntu будет похожая система (я не пользовался ею в течение некоторого времени, и в настоящее время они используют Upstart, о которой я ничего не знаю). В противном случае вам придется вручную удалить правила, которые создает этот сценарий (или написать сценарий, который это делает), используя ip
команда.