heh.pl
Kanał informacyjny Heh.pl


Niedziela 22 grudnia 2024 r.

artykuły | abc komputera (archiwum) | forum dyskusyjne | redakcja


Temat

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


83.16.70.* napisał:
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 ?

80.53.147.* napisał:
Jest możliwe. Może zaczniesz od podzielenia się z nami spostrzeżeniem na temat systemu jakim dysponujesz konkretnie? ;]

83.16.70.* napisał:
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.

80.55.115.* napisał:
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

83.16.70.* napisał:
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

81.15.236.* napisał:
Trzeba wykorzystac polityki rutingu i iptables. Tutaj np. jest to opisane : http://lanforum.net/viewtopic.php?t=4357 lub w tutorialu lartc.

83.16.70.* napisał:
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

81.15.236.* napisał:
Skoro juz uparles sie na tego ROUTE to poczytaj tu : http://www.netfilter.org/documentation/HOWTO//netfilter-extensions-HOWTO-4.html#ss4.5
Mimo wszytko polecam ten sposob co przedstawilem wyzej, bardzo czesto i efektywnie stosowany.

83.16.70.* napisał:
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 biggrin.gif)) 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)

Podobne tematy


Działy









Copyright © 2002-2024 | Prywatność | Load: 4.97 | SQL: 1 | Uptime: 753 days, 9:59 h:m | Wszelkie uwagi prosimy zgłaszać pod adresem eddy@heh.pl