Linux за българи: Форуми

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: laskov в Apr 02, 2015, 13:00



Титла: Рутиране. Две връзки към Интернет. Slackware
Публикувано от: laskov в Apr 02, 2015, 13:00
Двете връзки към Интернет са през един и същ доставчик, т.е. не се налага различно рутиране към различни мрежи. Машината е с три мрежови платки - двете са към "навън", а третата към LAN.
В тази статия ($2) се разглежда по-сложна ситуация с различни доставчици. Освен това вече е поостаряла.
В Slackware все още стандартно се ползват ifconfig и route и таблица с default gateway, което не върши работа така, както би трябвало да се направи културно.
Как се прави това?
Моля, посочете място за четене.


Титла: Re: Рутиране. Две връзки към Интернет. Slackware
Публикувано от: wfw в Apr 02, 2015, 17:18
Целта ти е да ползваш едната и като отпадне да ползваш бекъп трасето или да вдигнеш скоростта като обединиш двете?


Титла: Re: Рутиране. Две връзки към Интернет. Slackware
Публикувано от: laskov в Apr 02, 2015, 17:39
В момента заявки за услуги идват и по двете. В бъдеще по-бавната вероятно ще отпадне, но може и да остане като резервна.


Титла: Re: Рутиране. Две връзки към Интернет. Slackware
Публикувано от: BRADATA в Apr 02, 2015, 21:25
В момента заявки за услуги идват и по двете. В бъдеще по-бавната вероятно ще отпадне, но може и да остане като резервна.
Дай някакви подробности. Че така нищо не може да се каже. Под подробности имам предвид какви услуги сервираш на тази машина и малко по-детайлна информация за адресите на двете входящи и едната вътрешна мрежа. Ако те притеснява споделянето на инфо за ИП адресите - напиши ги както са си, ама в 192.168 формат :)


Титла: Re: Рутиране. Две връзки към Интернет. Slackware
Публикувано от: edmon в Apr 02, 2015, 22:05
Вярно ли в слакваре нема iproute2?

И все пак имало е ня'ква причина да ги измислят тия рутинг протоколи?!?!?

А иначе...какво точно искаш да постигнеш ?


Титла: Re: Рутиране. Две връзки към Интернет. Slackware
Публикувано от: BRADATA в Apr 02, 2015, 22:36
Как да няма iproute2... Има си всичко :) Само инфо от автора няма още :)


Титла: Re: Рутиране. Две връзки към Интернет. Slackware
Публикувано от: laskov в Apr 02, 2015, 22:50
iproute2 има, но авторът не знае как да го ползва :)

eth0: inet 95.42.14.118  netmask 255.255.255.248  GATEWAY="95.42.14.113"
eth1: inet 192.168.11.1  netmask 255.255.255.0
eth2: inet 46.4.27.170  netmask 255.255.255.248  GATEWAY="46.4.27.169"

На машината има
- smtp;
- SQL и http сървъри, достъпни само за някои външни IP адреси;
Във вътрешната мрежа има
- два DVR-а в DMZ, използващи различни портове

Публичните адреси са малко променени (последната им част си е такава)

В DNS зоната са посочени и двата адреса на хоста. Съответно, smtp заявки (напр.) могат да дойдат и по двата маршрута.


Титла: Re: Рутиране. Две връзки към Интернет. Slackware
Публикувано от: neter в Apr 02, 2015, 23:23
Мястото за четене е LARTC ($2). Принципно бързо може да настроиш двете връзки и със statistic модула на iptables, но не зная да има директен начин това да се ползва в active-backup схема - и двете връзки ще са активни, като може да си избереш дали редуването им да е в точно определен ред (--mode nth) или на случаен принцип (--mode random). Тук ($2) има добър пример как се прави. За постигане на active-backup може да се намесят скриптове, но тогава реализацията може и е по-добре да се направи и само със скриптове.

Ползата от това в твоя случай ми се вижда силно ограничена, и ако не очаквам чести запълвания на по-големия канал бих оставил само него и въобще не бих се занимавал да намесвам и другия, пък ако ще и да е предплатен, но щом си решил... :)


Титла: Re: Рутиране. Две връзки към Интернет. Slackware
Публикувано от: edmon в Apr 02, 2015, 23:32
iproute2 има, но авторът не знае как да го ползва :)

eth0: inet 95.42.14.118  netmask 255.255.255.248  GATEWAY="95.42.14.113"
eth1: inet 192.168.11.1  netmask 255.255.255.0
eth2: inet 46.4.27.170  netmask 255.255.255.248  GATEWAY="46.4.27.169"

На машината има
- smtp;
- SQL и http сървъри, достъпни само за някои външни IP адреси;
Във вътрешната мрежа има
- два DVR-а в DMZ, използващи различни портове

Публичните адреси са малко променени (последната им част си е такава)

В DNS зоната са посочени и двата адреса на хоста. Съответно, smtp заявки (напр.) могат да дойдат и по двата маршрута.

Ето ся едни идиотщини дето съм правил при борбата ми със злото наречено два доставчика без рутинг протокол.

тва е файлтЪ : /usr/local/bin/vtoro_trase той прави втората рутинг таблица... щот първата така или иначе си я направил с задаването на ип и шлюз по подразбиране....какво сложно име за такова просто нещо...:))) порта.
Код:
#!/bin/bash



/bin/ip route add 10.50.3.0/24 dev eth2 src 10.50.3.250 table t2
/bin/ip route add default via 10.50.3.1 table t2

/bin/ip rule add from 10.50.3.250 table t2


/bin/ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table t2 $ROUTE; done


nohup /usr/local/bin/gwping > /var/log/TRASELOG &

Той както се вижда в края си пуска пинг по гейтовете!
Както си разбрал два дефолт гейуея не мое имаш , както не мое имаш две входни врати на хапартамента, за разлика от входните врати за терасата, те може да са повече!ама те и май може да се наричат изходни?!?!

файлТЪ: /usr/local/bin/gwping, (което овчо взето е  коти-пасти от тук от там... може да е ГПЛ...?!? )
Код:
#!/bin/bash


SLEEPTIME=10

TESTIP=google.bg

#Ping timeout in seconds
TIMEOUT=2

# External interfaces
EXTIF2=eth2

#IP address of external interfaces. This is not the gateway address.
IP1=10.50.3.250

#Gateway IP addresses. This is the first (hop) gateway, could be your router IP
#address if it has been configured as the gateway
GW1=10.50.3.1

NAME1=ETH2

VKL=0
PING1=0


while : ; do

date

        /bin/ip rule | grep 192.168.1.0/24 > /dev/null 2>&1

        RETVAL1=$?

        echo IP RULE $RETVAL1 vkl e = 0

                if [ $RETVAL1 -ne 0 ]; then
                       VKL=1
                else
                        VKL=0
                fi


        echo PING $RETVAL ima = 0

                if [ $RETVAL -ne 0 ]; then
                        PING1=1
                else
                        PING1=0
                fi


GWCMD=""
# Changeover Logic here

if [[($PING1 -eq 0 && $VKL -eq 1)]]; then

echo ima net prez eth2

GWCMD="/usr/local/bin/splitaccess"

fi


if [[($VKL -eq 0 && $PING1 -eq 1)]]; then

echo nqma net prez eth2

GWCMD="/usr/local/bin/stop_splitaccess"

fi

echo $GWCMD

$GWCMD


sleep $SLEEPTIME

done

а файловИйтйе /usr/local/bin/splitacces

Код:
#!/bin/bash

ip="ip"
#ip="echo ip"

iptables="iptables"
#iptables="echo iptables"


IF2=eth2
IP2=10.50.3.250
P2=10.50.3.1
P2_NET=10.50.3.0/24

IF0=lo
P0_NET=127.0.0.0/8

CLIENTS_NET=192.168.1.0/24


# $ip route add $P2_NET dev $IF2 src $IP2 table t2
$ip route add default via $P2 table t2

$ip route add $P2_NET dev $IF2 src $IP2
# $ip rule add from $IP2 table t2
$ip rule add from $CLIENTS_NET table t2
$ip route add 127.0.0.0/8 dev lo   table t2

$ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table t2 $ROUTE; done

$ip route flush cache

$iptables -t nat -D POSTROUTING -s $CLIENTS_NET -o vlan77 -j SNAT --to-source 184.154.185.49
$iptables -t nat -A POSTROUTING -s $CLIENTS_NET -o eth2 -j SNAT --to-source 10.50.3.250

a /usr/local/bin/stop_splitaccess

Код:
#!/bin/bash


ip="ip"
#ip="echo ip"
iptables="iptables"
#iptables="echo iptables"


CLIENTS_NET=192.168.1.0/24

#$ip rule del from 10.50.3.250 table t2
$ip rule del from $CLIENTS_NET table t2

$ip route flush cache

$iptables -t nat -D POSTROUTING -s $CLIENTS_NET -o eth2 -j SNAT --to-source 10.50.3.250
$iptables -t nat -A POSTROUTING -s $CLIENTS_NET -o vlan77 -j SNAT --to-source 184.154.185.49



Титла: Re: Рутиране. Две връзки към Интернет. Slackware
Публикувано от: edmon в Apr 02, 2015, 23:37
Забравих да уточня, че тва прави разделен достъп за един ип клас Ц:)
Т.е... като го пусна проверява дали има пинг по второто трасе, ако има прави квото трябва едната мрежа да мине през второто трасе...
подбно нещо мое направи и ти... едните ип адреси да излизат през единият линк , а другите през другия!:)


Титла: Re: Рутиране. Две връзки към Интернет. Slackware
Публикувано от: sudo в Apr 03, 2015, 12:13
И все пак не се разбира какво точно искаш да постигнеш ???
- резервираност ?
- load-balancing ?
- Routing packets back from incoming interface? тук има и отговор https://www.linux-tips.org/article/71/routing-packets-back-from-incoming-interface


Титла: Re: Рутиране. Две връзки към Интернет. Slackware
Публикувано от: laskov в Apr 03, 2015, 13:12
Резервираност - да
load-balancing - не. Новата ми връзка е 5 пъти по-бърза и освен това е симетрична.
Routing packets ... ДА! :) Благодаря!

..... офф, отивам да чета в LARTC :)


Титла: Re: Рутиране. Две връзки към Интернет. Slackware
Публикувано от: BRADATA в Apr 03, 2015, 13:48
За резервираността ще намериш доста примери...
Ето ти линк за рутирането:
https://www.linux-tips.org/article/71/routing-packets-back-from-incoming-interface


Титла: Re: Рутиране. Две връзки към Интернет. Slackware
Публикувано от: laskov в Sep 24, 2015, 15:42
Командите в примерчето трябва ли да се изпълняват всеки път при стартирането на системата? За echo командите е ясно. Имам предвид ip ...


Титла: Re: Рутиране. Две връзки към Интернет. Slackware
Публикувано от: BRADATA в Sep 24, 2015, 15:49
Направи си rc.route скрипт в /etc и го викай от rc.local
Аз така правя :)


Титла: Re: Рутиране. Две връзки към Интернет. Slackware
Публикувано от: laskov в Sep 24, 2015, 17:21
А rc.inet1 изпълняваш ли го? Ако да, в него задава ли се default gw?
А не е ли по-добре rc.route да го изпълняваш по-рано? Така се изпълнява след rc.inet2


Титла: Re: Рутиране. Две връзки към Интернет. Slackware
Публикувано от: BRADATA в Sep 24, 2015, 18:44
Зависи много от конкретната ситуация, но понеже в повечето случаи има vlan конфигурации всичко правя в rc.route. Него го изпълнявам в началото на rc.local, след него изпълнявам iptables-restore /etc/iptables-save и след това всички други неща, зависещи от конкретиката