Skocz do zawartości
bartmarian

2łącza + NAT + Squid ... + porty

Rekomendowane odpowiedzi

Czy ktoś wie jak to zrobić:

Mam dwa DSLe, pierwszym DSLem "idzie" wszystko poza WWW. Drugim DSLem za pośrednictwem Squida "lecą" sobie strony. Wszystko pięknie działa, tablice w route zrobione itd, ipt... poza, jednym, gdy chce ktoś pogawędzić przez skype, pograć gamespy, czyli cokolwiek co nie generuje dużego ruchu ale wymaga małego ping'a pojawia się kłopot bo pierwszy DSL zapchany dość mocno... a drugi dobowe wykorzystanie poniżej 10%, jak zrobić aby komunikacja wyznaczonych porów była przekazywana innym łączem ? czy to wogóle jest możliwe ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

jeżeli działa squid to zdaje się mam linux'a :-) dokladnie Mandarynkę, wyglada to tak:

DSL1 i DSL2 mają oddzielne tablice routingu.

iptables robi snat dla wszystkiego z wyjątkiem portu 80, który za pomocą dnat wpada do proxy (transparentnego) które to "siedzi" na DSL2, wszystko mam na jednej maszynce (jakby co)

pozdrawiam

 

PS tak mnie zmyliło pytanie o system że pobiegłem na www.squid-cache.org zobaczyc czy nie ma versji na windę ]:-> , nie wiem natomiast czy squid działa na freebsd (bo go nie znam wogole) a tam zdaje się wszysko jest nieco inaczej.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Polecam zainteresowac sie latka patch-o-matic do iptables, a konkretnie celem ROUTE. Ponizej przyklad przeklejony z opisu latki.

Inna mozliwoscia jest zastosowanie dyscyplin kolejkowych z priorytetami (htb itp.) aby nadac wszystkim pakietom z skype wysoki priorytet i wysylac przed cala reszta ruchu.

 

 

# To force all outgoing icmp packet to go through the eth1 interface

# (final target) :

iptables -A POSTROUTING -t mangle -p icmp -j ROUTE --oif eth1

 

# To tunnel outgoing http packets and continue traversing the rules :

iptables -A POSTROUTING -t mangle -p tcp --dport 80 -j ROUTE --oif tunl1 --continue

 

# To forward all ssh packets to gateway w.x.y.z, and continue traversing

# the rules :

iptables -A POSTROUTING -t mangle -p tcp --dport 22 -j ROUTE --gw w.x.y.z --continue

 

# To change the incoming network interface from eth0 to eth1 for all icmp

# packets (final target) :

iptables -A PREROUTING -t mangle -p icmp -i eth0 -j ROUTE --iif eth1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

dziękuję za informacje, niebawem spróbuję praktycznie, mam jeszcze jedno pytanie: czy potrzebuję modyfikować tablicę routingu ? teraz mam tak:

#: ip route show

83.x.x.x/30 dev eth2 scope link src 83.x.x.x

80.x.x.x/29 dev eth1 scope link src 80.x.x.x

192.168.0.0/24 dev eth1 scope link

127.0.0.1/8 dev lo scope link

default via 80.x.x.x dev eth0

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

witam ponownie, uaktualniłem jajko do 2.6.8.1 oraz iptables do 1.2.11 + wgrałem łatki p-o-m ( czyli do ROUTE) kompilacja jajka netfilter z p-o-m poszła ładnie (oczywiscie zaznaczylem to co potrzeba w menuconfig) i teraz mam tak, wpisuje regółkę w iptables która informuje filtr ze polaczenia na port dajmy 22 lecą nie default gw a drugim łączem, otwieram nowe polaczenie z konsoli, loguje sie na inny komp przez ssh(oczywiscie IP publiczne), who i widzę... moje default IP... no to sprawdzam liczniki i widzę jak moja regółka ROUTE w łańcuchu POSTROUTING liczy pakiety... nieco zgłupiałem... wychodzi na to że regółka działa ale na sam koniec i tak pakiet śmiga default gw, ale squid, ustawiony na drugie łącze działa, skoro liczniki liczą to albo inna regółka psuje mi efekt koncowy, albo route, jak mam sprawdzić dlaczego się mnie pakieciki nie słuchają ? (czyt gdzie mam błąd)

 

pozdrawiam

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

witam, poddałem się z ROUTE na korzyść znakowania pakietow, może się komuś przyda konf

która u mnie działa(mandarynka10PowerPack, kernel już 2.6.8.1, iptables 1.2.11, same nowości jak na dziś,

ale skoro mi pozostało po działaniach (walką) z ROUTE to niech juz sobie siedzi - póki działa, przy okazji powiem że shaperd nie śmieci mi do logów tabletki v2.2.11 i chyba lepiej mi działa(nawet jeżeli mi się tylko wydaje to też warto :D)) ale odbiegłem od tematu wiec do rzeczy:

 

1) do /etc/iproute2/rt_tables dopisałem dwie linie:

201 T1

202 T2

 

2) zrobiłem u siebie dwie tablice routowania (jak sie to pisze ?):

#!/bin/bash

echo "Tablice rutowania"

echo "Etap 1"

ip route add 80.0.0.0/29 dev eth0 src 80.0.0.2 table T1

ip route add default via 80.0.0.1 table T1

ip route add 83.0.0.0/30 dev eth2 src 83.0.0.2 table T2

ip route add default via 83.0.0.2 table T2

echo "Etap 2"

ip route add 80.0.0.0/29 dev eth0 src 80.0.0.2

ip route add 83.0.0.0/30 dev eth2 src 83.0.0.2

echo "Etap 3"

ip route add default via 80.0.0.1

echo "Etap 4"

ip rule add from 80.0.0.2 table T1

ip rule add from 83.0.0.2 table T2

ip rule add fwmark 69 table T2

echo "Etap 5"

ip route add 192.168.0.0/16 dev eth1 table T1

ip route add 83.0.0.0/30 dev eth2 table T1

ip route add 127.0.0.0/8 dev lo table T1

ip route add 192.168.0.0/16 dev eth1 table T2

ip route add 80.0.0.0/29 dev eth0 table T2

ip route add 127.0.0.0/8 dev lo table T2

#echo "Etap 6"

echo "Flush"

ip route flush cache

 

(przy okazji, bedziemy mogli sobie ustawić squid aby siedział sobie na innym łączu niż default, dodajemy:

tcp_outgoing_address 83.0.0.2

udp_outgoing_address 83.0.0.2

oczywiście jeżeli mamy na to ochotę)

 

3) dodajemy sobie jeszcze co ma nam "iść" drugim łączem, tutaj ssh-port 22 i https-port 443:

iptables -t mangle -A PREROUTING -s 192.168.0.0/16 -d ! 192.168.0.0/16 -p tcp --dport 22 -j MARK --set-mark 69

iptables -t mangle -A PREROUTING -s 192.168.0.0/16 -d ! 192.168.0.0/16 -p tcp --dport 443 -j MARK --set-mark 69

oraz przydało by się dodać jeszcze to:

iptables -t nat -A POSTROUTING -j SNAT -o eth0 -s 192.168.0.0/16 -d ! 192.168.0.0/16 --to 80.0.0.2

iptables -t nat -A POSTROUTING -j SNAT -o eth2 -s 192.168.0.0/16 -d ! 192.168.0.0/16 --to 83.0.0.2

 

i to tyle, pozdrawiam (mam nadzieje ze literówek nie popelnilem)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...