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

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: ivanatora в Mar 22, 2007, 10:18



Титла: Малко странен routing
Публикувано от: ivanatora в Mar 22, 2007, 10:18
Имаме локална мрежа, в която от един компютър се пуска нет по 20К на всички останали машини. С този компютър не се занимаваме.
Въпросът е могат ли пакетите от една машина да се препращат към друга машина, така че резултантия канал на втората машина да стане 40К.
До тук разполагам само с идея и тя е нещо такова: ако двете машини са М1 и М2 - М1 прави SNAT и DNAT към М2, а М2 вдига за още един default gw M1. От тук нататък обаче не ми е ясно с какво правило пакетите ще се разделят от М2 (ту един към GW на мрежата, ту един към М1).
Един резултат, който не върви: дава се М1 да е GW към определени адреси, така че целия трафик към тях да минава през М1, а останалия през GW на мрежата. Целия този пиниз се прави за да могат да се свалят неща от един адрес с по-голяма скорост.
Ами, приемам всякакви идеи.





Титла: Малко странен routing
Публикувано от: gat3way в Mar 22, 2007, 11:09
В lartc е обсяснено добре как се постига нещо подобно, само дето не знам дали можеш да имаш multipath route през два gateways до които стигаш през един и същ интерфейс, не съм се замислял особено и никога не съм пробвал.

BTW:

echo 0 > /proc/sys/net/ipv4/all/accept_redirects
echo 0 > /proc/sys/net/ipv4/eth0/accept_redirects

за всеки случай :)


Титла: Малко странен routing
Публикувано от: smelkomar в Mar 22, 2007, 12:45
Цитат (ivanatora @ Март 23 2007,10:18)
Имаме локална мрежа, в която от един компютър се пуска нет по 20К на всички останали машини. С този компютър не се занимаваме.
Въпросът е могат ли пакетите от една машина да се препращат към друга машина, така че резултантия канал на втората машина да стане 40К.

Нали М1 е шейпнат на 20К, тази скорост ще се споделя между двата М1 и М2. И ако някой тръгне да сваля на М1 ще му е забавено и ще се оплаче :)


Титла: Малко странен routing
Публикувано от: ivanatora в Mar 22, 2007, 16:08
Цитат (smelkomar @ Март 22 2007,12:45)
Нали М1 е шейпнат на 20К, тази скорост ще се споделя между двата М1 и М2. И ако някой тръгне да сваля на М1 ще му е забавено и ще се оплаче :)

Да бе, това ни е добре известно ;)

LARTC съм го гледал отдавна, ама не помня да имаше такъв пример. Май там хората се оправят с нормални проблеми, без да им се налага да се занимават с такива пинизи...


Титла: Малко странен routing
Публикувано от: gat3way в Mar 22, 2007, 16:15
Погледни пак. Аз пък доколкото помня имаше отделна секция за link balancing или нещо от сорта.


Титла: Малко странен routing
Публикувано от: ivanatora в Mar 26, 2007, 17:48
Ами порових и намерих доста, даже пробвах един примерен скрипт, но ми дава различни грешки. Не знам дали аз правя нещо грешно или нещо ми липсва в кернела:
Примерен код

# ifconfig eth0 192.168.0.250 netmask 255.255.255.0 up
# ifconfig eth0:0 10.10.10.2 netmask 255.255.255.0 up
(1)# route del -net 192.168.0.0/24
(1)# route del -net 10.10.10.0/24  

# ip route add 192.168.0.0/24 dev eth0 table 200
(3)# ip route add default via 192.168.0.1 dev eth0 table 200
# ip route add 10.10.10.0/24 dev eth0:0 table 100
# ip route add default via 10.10.10.1 dev eth0:0 table 100
(2)RTNETLINK answers: File exists
# ip route add 192.168.0.0/24 src 192.168.0.1 dev eth0
(4)RTNETLINK answers: Invalid argument
# ip route add 10.10.10.0/24 src 10.10.10.1 dev eth0:0
(5)RTNETLINK answers: Invalid argument
(6)# ip route add 10.10.10.0/24 src 10.10.10.1 dev eth0
RTNETLINK answers: Invalid argument
(7)# ip route add default scope global nexthop via 10.10.10.1 weight 1 nexthop via 192.168.0.1 weight 1
RTNETLINK answers: Invalid argument
-------------------------------------
(8)# route del default gw 192.168.0.1
# ip route add default scope global nexthop via 10.10.10.1 weight 1 nexthop via 192.168.0.1 weight 1default scope global nexthop via 10.10.10.1 weight 1 nexthop via 192.168.0.1 weight 1

Малко обяснения:
1 - Когато добавя адрес с ifconfig, автоматично се добавя и мрежа за този адрес. Тук я изтривам за да ми е на чисто за да е точен примера от LARTC
2 - Кое съществува? Можеби има default rote създадено в (3) и се бърка с него?
4,5 - Кое е invalid?
6 - Можеби се бърка с алиаса eth0:0, тук пробвам без алиас и пак не става.
7 - Целта е това да проработи.. ама не ще.
8 - Махам default route и по този начин горното се зарежда без съобщение за грешка. Обаче ето го резултата от `route -n` - не съм сигурен дали това което съм направил току що би се отразило тук - вижда се само един gateway:
Примерен код

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0