Temat: Iptables

Witam,
Obecnie posiadam zestawione dwa połączenia wan eth0 po sieci lokalnej i ppp0 przez komórkę. Ze względu na fakt, że dostawca internetu lokalny blokuje VoIP, a potrzebny jest mi do pracy mam zamiar zrobić jakieś kierowanie, tak aby dla 2 konkretnych piortów UDP(np. 5060 SIP i 10000 RTP) i jednego TCP (222 SSH) cały ruch szedł przez komórkę. Byłbym wdzięczny za jakieś konkretne rady ewentualnie rozwiązanie.

eth0      Link encap:Ethernet  HWaddr 00:1c:23:8f:47:32 
          inet addr:150.254.144.235  Bcast:150.254.144.255  Mask:255.255.255.192
          inet6 addr: fe80::21c:23ff:fe8f:4732/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:736 errors:0 dropped:0 overruns:0 frame:0
          TX packets:131 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:150781 (150.7 KB)  TX bytes:20796 (20.7 KB)
          Interrupt:17

eth1      Link encap:Ethernet  HWaddr 00:1c:26:3b:01:6e 
          inet6 addr: fe80::21c:26ff:fe3b:16e/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:17 Base address:0xc000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:960 (960.0 B)  TX bytes:960 (960.0 B)

ppp0      Link encap:Point-to-Point Protocol 
          inet addr:77.112.50.41  P-t-P:10.6.6.6  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:64 (64.0 B)  TX bytes:97 (97.0 B)

2

Odp: Iptables

Inną trasę routingu musisz zrobić dla tych portów. Generalnie lektura http://lukasz.bromirski.net/docs/transl … tc-pl.html Ci się przyda.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez rpc 2011-04-15 08:07:48)

Odp: Iptables

A jaki system operacyjny ?
Bo jak OpenWrt to piszę taki mały projekcik od jakiegoś czasu
http://rpc.one.pl/pliki/projekty/

nie jest co prawda dokończony ale do tego co chcesz powinien już pracować

Instaluje się go pod OpenWrt

wget http://rpc.one.pl/pliki/projekty/15-routes_tables -O  /etc/hotplug.d/iface/15-routes_tables
chmod +x  /etc/hotplug.d/iface/15-routes_tables

Skrypt działa z dial up też bez problemu

potem tylko w /etc/config/network definiujemy dwie trasy

config 'interface' 'loopback'
        option 'ifname' 'lo'
        option 'proto' 'static'
        option 'ipaddr' '127.0.0.1'
        option 'netmask' '255.0.0.0'
        list   'table' 'netia'
        list   'table' 'plus'


config 'interface' 'lan'
        option 'ifname' 'eth0.1'
        option 'type' 'bridge'
        option 'proto' 'static'
        option 'ipaddr' '192.168.1.1'
        option 'netmask' '255.255.255.0'
        list   'table' 'plus'
        list   'table' 'netia'

config 'interface' 'wan'
        option 'ifname' 'eth0.2'
        option 'proto' 'pppoe'
        option 'keepalive' '5,5'
        option 'username' 'xxxxxxx@webnet24.pl'
        option 'password' 'xxxxx'
        list 'table' 'netia'
        option 'metric' '1'

config 'interface' 'wan2'
        option 'ifname' 'eth0.3'
        option 'proto' 'dhcp'
        list 'table' 'plus'
        option 'metric' '2'

config 'rules'
        option 'from' 'wan'
        option 'table' 'netia'

config 'rules'
        option 'from' 'wan2'
        option 'table' 'plus'

config 'rules'
        option 'from' 'lan'
        option 'table' 'plus'
        option 'fwmark' '0x30'

Oczywiście trzeba dodac tabele netia i plus

root@OpenWrt:~# cat /etc/iproute2/rt_tables
#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep
200    netia
201    plus

Oczywiście strefy w firewallu robisz standardowo i pozostałe wpisy
Jedyne co to musisz zamarkować ruch w iptables
np.

iptables -t mangle -A PREROUTING -p udp --dport 5060:5070 -j MARK --set-mark 0x30

Wynikiem mojego skryptu jest dokładnie to co cezary podał

root@OpenWrt:~# ip rule show
0:      from all lookup local
32764:  from 178.36.15.88 lookup netia
32765:  from 192.168.1.0/24 fwmark 0x30 lookup plus
32766:  from all lookup main
32767:  from all lookup default
root@OpenWrt:~# ip route show
195.114.190.155 dev pppoe-wan  proto kernel  scope link  src 178.36.15.88
192.168.1.0/24 dev br-lan  proto kernel  scope link  src 192.168.1.1
192.168.11.0/24 dev eth0.2  proto kernel  scope link  src 192.168.11.2
default via 195.114.190.155 dev pppoe-wan  metric 1
root@OpenWrt:~# ip route show table netia
195.114.190.155 dev pppoe-wan  scope link  src 178.36.15.88  metric 1
192.168.1.0/24 dev br-lan  scope link  src 192.168.1.1
127.0.0.0/8 dev lo  scope link  src 127.0.0.1
default via 195.114.190.155 dev pppoe-wan  metric 1

itd.

Założeniem skryptu jest pełna automatyka. Znaczy się nieważne czy to adres statyczny czy z dhcp zawsze powinni się dodawać i usuwać poprawnie odpowiednie wpisy.

PO wprowadzeniu zmian wymagany restart routera w /etc/config/network. Nie ma czegoś takiego jak reload konfiguracji.

Wymagane zainstalowanie pakietu "ip"

Acha i najważniejsze skrypt nie szkodzi. Jeśli ktoś nie zdefiniuje w /etc/config/network dodatkowych wpisów one po prostu się zostaną użyte

4

Odp: Iptables

Skrypt robi dokładnie to co jest w podanym linku przez cezarego