Strona 1 z 1

Dwa łącza - wybrane usługi jednym reszta drugim

: 27 czerwca 2010, 20:08
autor: hasanek
Witam.
Mam w domu na stacjonarnym komputerze łącze do internetu wlan0 (radiowe) ostatnio dostałem modem usb playonline.
Oba połączenia są poprawnie skonfigurowane i działają.
Wynik ifconfig

Kod: Zaznacz cały

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:482 errors:0 dropped:0 overruns:0 frame:0
          TX packets:482 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:179669 (175.4 KiB)  TX bytes:179669 (175.4 KiB)

ppp0      Link encap:Point-to-Point Protocol
          inet addr:109.243.189.89  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:146 (146.0 B)  TX bytes:185 (185.0 B)

wlan0     Link encap:Ethernet  HWaddr 00:03:2f:1b:7a:7c
          inet addr:xxx.xx.xx.199  Bcast:xxx.xx.xx.xxx  Mask:255.255.255.240
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:20902 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15826 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:15053718 (14.3 MiB)  TX bytes:2147414 (2.0 MiB)
          Interrupt:22 Memory:ea020000-ea021000

wynik route

Kod: Zaznacz cały

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.64.64.64     *               255.255.255.255 UH    0      0        0 ppp0
xxx.xxx.xxx.192   *               255.255.255.240 U     0      0        0 wlan0
default         xxx.xx.xx.193   0.0.0.0         UG    0      0        0 wlan0
Wszystkie połączenia idą domyślnie przez wlan0 ale chciałbym zrealizować coś takiego żeby strony www(port 80) były otwierane za pomocą interfejsu ppp0 a reszta połączeń dalej domyślnym wlan0.
Przychodzi mi do głowy, iż można zastosować markowanie pakietów tylko nie bardzo wiem jak to w praktyce rozwiązać.
Będę wdzięczny za wszelkie sugestie.

: 29 czerwca 2010, 20:51
autor: miszko
Na moje oko to tak byś musiał to rozwiązać to na sposób taki, że zrobić regułę na firewallu (domyślam się, że masz iptables).

Dodać na nim regułę, że jeżeli coś leci na adres bramy i na port 80 to niech przekierowuje go na inny IP (czyli ten z drugiego interfejsu).
Dosyć proste do zrealizowania. Pogoogluj, daj frazy w stylu "port redirect" itp.

: 05 lipca 2010, 18:38
autor: hasanek
Owszem przekierowanie samego portu wydaje się proste, ale jeśli idzie o przekierowanie na inne IP to już jest z tym problem. Sam iptables nie ma takiej opcji, albo ja kiepsko czytam.
Spędziłem nad tym problemem już sporo czasu i wszystko zaczyna mi się mieszać :-)

Pozdrawiam.

: 05 lipca 2010, 18:43
autor: db
Pewno SNAT to złapie (sprawdziłem, łapie).
Albo bindowanie aplikacji na tym adresie, jeżeli obsługuje.

: 07 lipca 2010, 16:42
autor: hasanek
Na razie rozwiązałem problem połowicznie, a mianowicie zastosowałem

Kod: Zaznacz cały

route add IP dev ppp0
do najczęściej odwiedzanych stron, tylko się zastanawiam czy zbyt wiele wpisów w tablicy routingu nie spowoduje spowolnienia działania sieci.
A tak z innej beczki, dlaczego polecenie

Kod: Zaznacz cały

iptables -A PREROUTING -t mangle -p tcp --dport 80 -j MARK --set-mark 1
nie działa. Na wielu różnych forach czytałem, że w ten sposób można markować pakiety żeby je później kierować na inną bramę.
Jak zmienię PREROUTING na OUTPUT to pakiety są markowane.

: 07 lipca 2010, 16:50
autor: db
Pakiet, który wychodzi z Twojej maszyny nigdy nie wpadnie w PREROUTING.

: 07 lipca 2010, 17:27
autor: hasanek
Czyli poprawnym będzie markowanie pakietów w ten sposób:

Kod: Zaznacz cały

iptables -A OUTPUT -t mangle -o wlan0 -p tcp --dport 80 -j MARK --set-mark 1 
a następnie

Kod: Zaznacz cały

ip rule add fwmark 1 table www
ip route add default via IP_ppp0 dev ppp0 table www
bo u mnie to nie działa. Chyba robię jakiś szkolny błąd.
Może masz jakieś rady?