View previous topic :: View next topic |
Author |
Message |
[clu] Apprentice
Joined: 23 Feb 2004 Posts: 160 Location: 127.0.0.1
|
Posted: Sat May 07, 2005 9:06 pm Post subject: розпределение трафика между кан |
|
|
Итак, классическая ситуация с быстрым и медленным каналом.
eth0 - быстрый, с бесплатным UA-IX
ppp0 - медленный с халявным миром
Quote: |
# cat ir2uaix.sh
#!/bin/sh
echo 202 uaix.out >> /etc/iproute2/rt_tables
ip rule add fwmark 2 table uaix.out
ip route add default via 194.93.x.x dev eth0 table uaix.out
ip route flush cache
|
Quote: |
# cat mk-uaix-mark.sh
#!/bin/sh
for i in `cat list-uaix.txt`
do
iptables -A PREROUTING -t mangle -s 10.10.0.0/24 -d $i -j MARK --set-mark 2
done
|
в файле list-uaix.txt список сетей которые входят в ua-ix
Quote: |
# head list-uaix.txt
62.16.16.128/26
62.64.64.0/18
62.64.80.0/21
62.64.87.0/24
62.64.88.0/21
62.64.96.0/21
62.64.104.0/21
62.64.110.0/23
62.64.112.0/21
62.64.120.0/21
|
т.е. я делаю маршрут по умолчанию через ppp0, а пакеты адресованные в uaix заворачиваю на eth0 (snat для всех по умолчанию на ppp0).
в итоге получаем презабавную ситуацию
трафик заворачивается как надо, но ! проходит тольок icmp трафик !!!
что за штука такая ?
и ещё как сделать так, что бы пакеты самого шлюза завораичвались как надо ? |
|
Back to top |
|
|
Alehur n00b
Joined: 04 Nov 2003 Posts: 46 Location: Belarus
|
Posted: Wed May 11, 2005 6:48 am Post subject: |
|
|
попробуй явно указать протокол:
iptables -A PREROUTING -t mangle -p tcp ....
>и ещё как сделать так, что бы пакеты самого шлюза завораичвались как надо ?
аналогично как и в скрипте делаешь для локальной сетки, только делай сорс адрес свой:
iptables -A PREROUTING -t mangle -s 194.93.x.x -d $i ... |
|
Back to top |
|
|
ba l33t
Joined: 25 May 2003 Posts: 804
|
Posted: Wed May 11, 2005 9:05 am Post subject: Re: розпределение трафика между к |
|
|
[clu] wrote: | что за штука такая ? |
для меня полиси роутинг почти всегда шаманство, так что чтобы понять что нетак надо хотя бы по-tcpdump-ить на входном и выходном интерфейсах... а так скорее всего у тебя NAT делается не в тот адрес(или обратное преобразовние).
[clu] wrote: | и ещё как сделать так, что бы пакеты самого шлюза завораичвались как надо ? |
Соурсный адрес для коннекшенов инициируемых с самой машины определяется из главой таблицы роутинга, так что либо прописать в ней роуты до всех этих подсеток или попробовать включить в ядре и настроить NAT for local connections... |
|
Back to top |
|
|
[clu] Apprentice
Joined: 23 Feb 2004 Posts: 160 Location: 127.0.0.1
|
Posted: Tue Aug 09, 2005 12:58 pm Post subject: |
|
|
тема ещё жива ))
--------------
мне сейчас интересно (я вижу перспективу на будущее) сделать это при помощи ispet+iptables+iproute2 (все (с) devil -рецепт его )
#!/bin/bash
iptables -t mangle -F
ipset -F uaix
ipset -X uaix
ipset -N uaix nethash
for i in $(cat uaix.txt); do
ipset -A uaix ${i}
done
iptables -t mangle -A PREROUTING -m set --set uaix src,dst -m mark --mark 1 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -m set --set uaix dst,src -m mark --mark 1 -j MARK --set-mark 1
echo "100 uaix" >>/etc/iproute2/rt_tables
ip route add default via 194.93.161.1 table uaix
ip rule add fwmark 1 lookup uaix
ip ro add default via 192.168.1.29
iptables -A POSTROUTING -s 10.10.0.0/24 -j SNAT --to-source 213.179.233.xx
iptables -A POSTROUTING -s 10.10.0.0/24 -j SNAT --to-source 194.93.161.xx
------------------
конфигурация сети
eth0 - 10.10.0.254
eth1 - 194.93.161.xx - внешний , используется для ua-ix
ppp0 - 213.179.233.xx - вншений используется для мира.
пока не работает - пакеты не заврачиваются, кажется не работает на этапе маркировки/распознавания:
Code: |
mark
This module matches the netfilter mark field associated with a packet (which can be set using the MARK target below).
--mark value[/mask]
Matches packets with the given unsigned mark value (if a mask is specified, this is logically ANDed with the mask before the comparison).
|
iptables -t mangle -A PREROUTING -m set --set uaix src,dst -m mark --mark 1 -j MARK --set-mark 1
откуда тут совпадение - ведь пакет не маркирован, если сделать без выделеного - тоже не работает.
если сделать iptables -t mangle -A PREROUTING -m set --set uaix src,dst -j LOG
Code: |
Aug 26 04:54:02 gw IN=eth0 OUT= MAC=00:e0:7d:c2:00:94:00:e0:81:02:16:37:08:00 SRC=10.10.0.1 DST=212.42.64.8 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=7 DF PROTO=ICMP TYPE=8 CODE=0 ID=15137 SEQ=8
Aug 26 04:54:03 gw IN=eth0 OUT= MAC=00:e0:7d:c2:00:94:00:e0:81:02:16:37:08:00 SRC=10.10.0.1 DST=212.42.64.8 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=8 DF PROTO=ICMP TYPE=8 CODE=0 ID=15137 SEQ=9
|
при
iptables -t mangle -A PREROUTING -s 10.10.0.1 -m set --set uaix src,dst -m mark --mark 1 -j LOG
iptables -t mangle -A PREROUTING -s 10.10.0.1 -m set --set uaix dst,src -m mark --mark 1 -j LOG
лог молчит
куда копать ? |
|
Back to top |
|
|
bukazoid Tux's lil' helper
Joined: 21 Jan 2005 Posts: 86
|
Posted: Tue Aug 09, 2005 1:46 pm Post subject: |
|
|
Quote: | -m mark --mark 1 -j MARK --set-mark 1 |
пакет проверяется на mark (--mark 1) и и при этом этот самый mark (-set-mark 1) тут же устанавливается ??
add
SNAT в -t nat обычно засовуют .... |
|
Back to top |
|
|
ManJak Guru
Joined: 18 Dec 2004 Posts: 561 Location: St. Petersburg, Russia
|
Posted: Tue Aug 09, 2005 6:17 pm Post subject: |
|
|
1) Может, "metric", когда халява навернется - сунет туда?
2) Если надо управлять входящим, то, кроме как BGP, - идей нет |
|
Back to top |
|
|
bukazoid Tux's lil' helper
Joined: 21 Jan 2005 Posts: 86
|
Posted: Wed Aug 10, 2005 6:06 am Post subject: |
|
|
ManJak wrote: |
2) Если надо управлять входящим, то, кроме как BGP, - идей нет
|
если тупо подрезать определённый сервис (или диапазон ip) то можно "policy DROP" т.е. дропаются пакеты сверх скорости.
Нормальные сервисы видя такое обычно уменьшают скорость.
P.S. хотя такая политика может быть воспринята как диверсия !!! |
|
Back to top |
|
|
[clu] Apprentice
Joined: 23 Feb 2004 Posts: 160 Location: 127.0.0.1
|
Posted: Wed Aug 10, 2005 8:29 am Post subject: |
|
|
bukazoid wrote: |
SNAT в -t nat обычно засовуют .... |
это я здесь промазал ) |
|
Back to top |
|
|
|