Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam.
Może ktoś wskaże mój błąd.
Problem jest taki, że zrobiłem 2 tablice na 2 dsle ale działa tylko jedna, objawia sie to tym że jak wskaże ze zamarkowane pakiety mają lecieć tablicą "inter" to gdzieś mi giną i nie wiem gdzie. :( Jak wskaże że mają lecieć tablicą "ptop" to lecą sobie normalnie.
EDIT:
NIE CZYTAC TYCH KONFIGÓW NA DOLE SA AKTUALNIEJSZE
ROUTING:
IP_NET=83.19.39.206 IP_P2P=10.0.0.2 IP_LAN=192.168.1.1 IP_WLN=192.168.2.1 SIEC_NET=83.19.39.200/29 SIEC_P2P=10.0.0.0/29 SIEC_LAN=192.168.1.0/24 SIEC_WLN=192.168.2.0/24 MASKA_NET=/29 MASKA_P2P=/29 MASKA_LAN=/24 MASKA_WLN=/24 BRAMA_NET=83.19.39.201 BRAMA_P2P=10.0.0.1 ETH_NET=eth0 ETH_P2P=eth1 ETH_LAN=eth2 ETH_WLN=eth3 MARKER_PRIO=777 #### tablica routingu o nazwie inter ip route add $SIEC_P2P dev eth1 proto kernel scope link src $IP_P2P table inter ip route add $SIEC_NET dev eth0 proto kernel scope link src $IP_NET table inter ip route add $SIEC_LAN dev eth2 proto kernel scope link src $IP_LAN table inter ip route add $SIEC_WLN dev eth3 proto kernel scope link src $IP_WLN table inter ip route add 127.0.0.0/8 via 127.0.0.1 dev lo scope link table inter ip route add default via $BRAMA_NET dev $ETH_NET table inter #### tablica routingu o nazwie ptop ip route add $SIEC_NET dev eth0 proto kernel scope link src $IP_NET table ptop ip route add $SIEC_P2P dev eth1 proto kernel scope link src $IP_P2P table ptop ip route add $SIEC_LAN dev eth2 proto kernel scope link src $IP_LAN table ptop ip route add $SIEC_WLN dev eth3 proto kernel scope link src $IP_WLN table ptop ip route add 127.0.0.0/8 via 127.0.0.1 dev lo scope link table ptop ip route add default via $BRAMA_P2P dev $ETH_P2P table ptop #### ustawianie reguł polityki routingu ip rule add from $IP_NET table inter ip rule add from $IP_P2P table ptop #### dodnie domyslnej bramy (table main) #ip route change default via $BRAMA_P2P # to juz jest domyslne ustawione przes debiana zatem to po prostu zmieniam # skierowanie zmarkowanych pakietów do danej tablicy ip rule add fwmark $MARKER_PRIO table inter
FIREWALL:
# wlaczenie w kernel'u forwardowania echo 1 > /proc/sys/net/ipv4/ip_forward # wył±czeni rp filter echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter ################################### ######### zmienne ################################### IP_NET=83.19.39.206 IP_P2P=10.0.0.2 IP_LAN=192.168.1.1 IP_WLN=192.168.1.2 ETH_NET=eth0 ETH_P2P=eth1 ETH_LAN=eth2 ETH_WLN=eth3 MARKER_P2P=666 MARKER_PRIO=777 BROADCAST_LAN=192.168.1.255 KBIT=kbit ########## START FIREWALL ########## # czyszczenie starych regul iptables -F iptables -X iptables -t nat -X iptables -t nat -F iptables -t filter -X iptables -t filter -F iptables -t mangle -F # ustawienie polityki dzialania iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # polaczenia nawiazane iptables -A INPUT -p all -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A FORWARD -p all -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A OUTPUT -p all -j ACCEPT -m state --state ESTABLISHED,RELATED ### MARKOWANIE PAKIETÓW ### iptables -t mangle -N MARK_TRAFFIC iptables -t mangle -A PREROUTING -j MARK_TRAFFIC iptables -t mangle -A MARK_TRAFFIC -j CONNMARK --restore-mark #iptables -t mangle -A MARK_TRAFFIC -m mark ! --mark 0 -j RETURN #<-- pakiety sklasyfikowane mog± spokojnie wyskoczyć z łancucha zeby ich nie sprawdzać po kilka razy TO PRZY¦PIESZA ŁADOWANIE I DZIŁANIE SERWERA ALE OBNIZA SKUECZNOSC TRAFIEN LAYERA Z 70% DO 40% NA PAKIETACH NA ILOSCI DANYCH NIE SPRAWDZILEM ### makrowanie p2p iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto edonkey -j MARK --set-mark $MARKER_P2P #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto gnutella -j MARK --set-mark $MARKER_P2P #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto bittorrent -j MARK --set-mark $MARKER_P2P #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto directconnect -j MARK --set-mark $MARKER_P2P #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto fasttrack -j MARK --set-mark $MARKER_P2P #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto soulseek -j MARK --set-mark $MARKER_P2P #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto ares -j MARK --set-mark $MARKER_P2P #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto applejuice -j MARK --set-mark $MARKER_P2P #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto gnucleuslan -j MARK --set-mark $MARKER_P2P #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto openft -j MARK --set-mark $MARKER_P2P #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto mute -j MARK --set-mark $MARKER_P2P #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto napster -j MARK --set-mark $MARKER_P2P #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto 100bao -j MARK --set-mark $MARKER_P2P #iptables -t mangle -A MARK_TRAFFIC -m ipp2p --bit --apple --winmx --soul --ares -j MARK --set-mark $MARKER_P2P #iptables -t mangle -A MARK_TRAFFIC -m ipp2p --ipp2p -j MARK --set-mark $MARKER_P2P ### markowanie uslug #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto ftp -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto http -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto http-rtsp -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto shoutcast -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto skypeout -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto skypetoskype -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto smtp -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto snmp -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto ssh -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto teamspeak -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto telnet -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto tftp -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto vnc -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto aim -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A MARK_TRAFFIC -m layer7 --l7proto aimwebcontent -j MARK --set-mark $MARKER_PRIO iptables -t mangle -A MARK_TRAFFIC -j CONNMARK --save-mark # zezwolenie nna loczenie sie z naszym zewnetrznym ip po ssh iptables -A INPUT -s 0/0 -d $IP_NET -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -s 0/0 -d $IP_NET -p tcp --dport 22 -j ACCEPT iptables -A INPUT -s 0/0 -d $IP_LAN -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -s 0/0 -d $IP_LAN -p tcp --dport 22 -j ACCEPT ### NAT ### iptables -t nat -A POSTROUTING -o $ETH_NET -j SNAT --to-source $IP_NET iptables -t nat -A POSTROUTING -o $ETH_P2P -j SNAT --to-source $IP_P2P ############ UDOSTEPNIENIE NETU #################### PIP=1 IP=100 MAK=00:02:44:7b:b4:d7 DLA=PUNIX iptables -A FORWARD -m mac --mac-source $MAK -s 192.168.1.$IP -j ACCEPT PIP=1 IP=133 MAK=00:e0:4c:86:31:db DLA=PUNIX iptables -A FORWARD -m mac --mac-source $MAK -s 192.168.1.$IP -j ACCEPT PIP=1 IP=134 MAK=00:00:e8:01:2c:ec DLA=PUNIX iptables -A FORWARD -m mac --mac-source $MAK -s 192.168.1.$IP -j ACCEPT PIP=2 IP=144 MAK=00:02:44:7b:b4:d7 DLA=PUNIX iptables -A FORWARD -m mac --mac-source $MAK -s 192.168.1.$IP -j ACCEPT
Offline
Założenie jest takie że mają być 2 dsle przez jeden mają pakiety iść domyślnie a przez drugi mają iść tylko usługi priorytetowe zmarkowane w PREROUTING markiem np 777. Odbywać sie to ma z 2 sieci lan (jedna to wifi)
DSL 1:
ip 83.19.39.206
maska 255.255.255.248
brama 83.19.39.201
DSL 2: (na razie symuluje go przez ruter)
ip 10.0.0.2
maska 255.255.248
brama 10.0.0.1
LAN 1:
ip 192.168.1.1
maska 255.255.255.0
LAN 2: (docelowo ma byc wifi)
ip 192.168.2.1
maska 255.255.255.0
Offline
ip route add adres_sieci_dsl2/29 src adres_ip_na_serwerze_dsl2 via brama_dsl2 dev eth1 table p2p ip route add default via adres_ip_na_serwerze_dsl2 dev eth1 table p2p ip rule add fwmark 0x12 table p2p ip route flush cache
markijesz pakiety po 0x12
oczywiscie wpisy w /etc/iproute2/rt_tables
Offline
Pierwszy routing robiłem według zlegozwierza
http://forum.inet.ll.pl/viewtopic.php?t=594&start=15
Potem robiłem według Kształtowanie Ruchu i Zaawansowany Routing HOWTO
http://lukasz.bromirski.net/docs/translations/lartc-pl.html
Teraz zrobiłem Routing według twojego opisu wyżej ale zawsze jest to samo jak coś chcę przekierować na drugie łacze to nie bardzo to chce działać.
Co ciekawe zaobserowołem że przekierowanie FTP wyłapanego Layerem7 działa. Natomiast przekierowanie pozostałych usług (www, shoutcast) nie działa zarówno wyłapanymi layerem jak i po portach.
Objawem tego że nie działa jest to ze często zaczyna wchodzenie na strone ale przerywa zawsze gdzieś w połowie (oprucz google ale to dlatego ze to ma mało danych do sciągnięcia), Radio internetowe próbuje sie buforowac ale zawsze staje na 0 %
Zaobserwowałem równierz że jak tylko uruchomię routing robiony przezemnie to spora ilość pakietów jest przekierowywana do łańcucha INPUT zamiast do FORWARD. Pewnie tu tkwi bład ale nie bardzo rozumiem dlaczego tak się dzieje. :(
Jak ustawię którąkolwiek brame domyślną to płyną przez nią dane, jak pomarkowane pakiety puszcze tez przez domyślną brame to tez działa, dlatego sądze że tablice routingu są ok.
Odchodze już od zmysłów a czas mnie nagli. Jakby ktoś mógł mi to przeanalizowac to moze znajdze jakąś glupotę przez którą się tak dzieje.
FIREWALL:
# wlaczenie w kernel'u forwardowania echo 1 > /proc/sys/net/ipv4/ip_forward # wyłączenie rp_filter echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter ################################### ######### zmienne ################################### IP_NET=83.19.239.206 IP_P2P=10.0.0.2 IP_LAN=192.168.1.1 IP_WLN=192.168.1.2 ETH_NET=eth0 ETH_P2P=eth1 ETH_LAN=eth2 ETH_WLN=eth3 MARKER_PRIO=777 BROADCAST_LAN=192.168.1.255 ########## START FIREWALL ########## # czyszczenie starych regul iptables -F iptables -X iptables -t nat -X iptables -t nat -F iptables -t filter -X iptables -t filter -F iptables -t mangle -F # ustawienie polityki dzialania iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # polaczenia nawiazane iptables -A INPUT -p all -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A FORWARD -p all -j ACCEPT -m state --state ESTABLISHED,RELATED iptables -A OUTPUT -p all -j ACCEPT -m state --state ESTABLISHED,RELATED ### MARKOWANIE PAKIETÓW ### iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark iptables -t mangle -A PREROUTING -m mark ! --mark 0 -j RETURN ### markowanie uslug iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark $MARKER_PRIO iptables -t mangle -A PREROUTING -p tcp --dport 14534 -j MARK --set-mark $MARKER_PRIO iptables -t mangle -A PREROUTING -m layer7 --l7proto ftp -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A PREROUTING -m layer7 --l7proto http -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A PREROUTING -m layer7 --l7proto http-rtsp -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A PREROUTING -m layer7 --l7proto shoutcast -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A PREROUTING -m layer7 --l7proto ssh -j MARK --set-mark $MARKER_PRIO #iptables -t mangle -A PREROUTING -m layer7 --l7proto teamspeak -j MARK --set-mark $MARKER_PRIO ### zapisanie marków iptables -t mangle -A PREROUTING -j CONNMARK --save-mark # zezwolenie nna loczenie sie z naszym zewnetrznym ip po ssh iptables -A INPUT -s 0/0 -d $IP_NET -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -s 0/0 -d $IP_NET -p tcp --dport 22 -j ACCEPT iptables -A INPUT -s 0/0 -d $IP_LAN -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -s 0/0 -d $IP_LAN -p tcp --dport 22 -j ACCEPT ### NAT ### iptables -t nat -A POSTROUTING -o $ETH_NET -j SNAT --to-source $IP_NET iptables -t nat -A POSTROUTING -o $ETH_P2P -j SNAT --to-source $IP_P2P ############ UDOSTEPNIENIE NETU #################### PIP=1 IP=100 MAK=00:02:44:7b:b4:d7 DLA=PUNIX iptables -A FORWARD -m mac --mac-source $MAK -s 192.168.1.$IP -j ACCEPT PIP=1 IP=133 MAK=00:e0:4c:86:31:db DLA=PUNIX iptables -A FORWARD -m mac --mac-source $MAK -s 192.168.1.$IP -j ACCEPT PIP=1 IP=134 MAK=00:00:e8:01:2c:ec DLA=PUNIX iptables -A FORWARD -m mac --mac-source $MAK -s 192.168.1.$IP -j ACCEPT PIP=2 IP=144 MAK=00:02:44:7b:b4:d7 DLA=PUNIX iptables -A FORWARD -m mac --mac-source $MAK -s 192.168.1.$IP -j ACCEPT
ROUTING:
IP_NET=83.19.239.206 IP_P2P=10.0.0.2 IP_LAN=192.168.1.1 IP_WLN=192.168.2.1 SIEC_NET=83.19.239.200/29 SIEC_P2P=10.0.0.0/29 SIEC_LAN=192.168.1.0/24 SIEC_WLN=192.168.2.0/24 MASKA_NET=/29 MASKA_P2P=/29 MASKA_LAN=/24 MASKA_WLN=/24 BRAMA_NET=83.19.239.201 BRAMA_P2P=10.0.0.1 ETH_NET=eth0 ETH_P2P=eth1 ETH_LAN=eth2 ETH_WLN=eth3 MARKER_PRIO=777 ip route add $SIEC_NET src $IP_NET via $BRAMA_NET dev $ETH_NET table inter ip route add default via $IP_NET dev $ETH_NET table inter ip rule add fwmark $MARKER_PRIO table inter ip route flush cache ip route add $SIEC_P2P src $IP_P2P via $BRAMA_P2P dev $ETH_P2P table ptop ip route add default via $IP_P2P dev $ETH_P2P table ptop ip route flush cache ip route add $SIEC_NET dev $ETH_NET src $IP_NET # to juz jest automatycznie w debiane w tabeli main ip route add $SIEC_P2P dev $ETH_P2P src $IP_P2P # to juz jest automatycznie w debiane w tabeli main ip route add default via $BRAMA_P2P # to juz jest automatycznie w debiane w tabeli main ip rule add from $IP_NET table inter ip rule add from $IP_P2P table ptop
WYNIKI:
punisher999:~# iptables -t mangle -L -v Chain PREROUTING (policy ACCEPT 272K packets, 157M bytes) pkts bytes target prot opt in out source destination 2038 775K CONNMARK 0 -- any any anywhere anywhere CONNMARK restore 1058 722K RETURN 0 -- any any anywhere anywhere MARK match !0x0 17 816 MARK tcp -- any any anywhere anywhere tcp dpt:www MARK set 0x309 3 144 MARK tcp -- any any anywhere anywhere tcp dpt:14534 MARK set 0x309 0 0 MARK 0 -- any any anywhere anywhere LAYER7 l7proto ftp MARK set 0x309 980 52810 CONNMARK 0 -- any any anywhere anywhere CONNMARK save Chain INPUT (policy ACCEPT 19102 packets, 977K bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 253K packets, 156M bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 32080 packets, 7454K bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 285K packets, 163M bytes) pkts bytes target prot opt in out source destination punisher999:~# ip route list table main 10.0.0.0/29 dev eth1 proto kernel scope link src 10.0.0.2 83.19.239.200/29 dev eth0 proto kernel scope link src 83.19.239.206 192.168.1.0/24 dev eth2 proto kernel scope link src 192.168.1.1 default via 10.0.0.1 dev eth1 punisher999:~# ip route list table inter 83.19.239.200/29 via 83.19.239.201 dev eth0 src 83.19.239.206 default via 83.19.239.206 dev eth0 punisher999:~# ip route list table ptop 10.0.0.0/29 via 10.0.0.1 dev eth1 src 10.0.0.2 default via 10.0.0.2 dev eth1 punisher999:~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 0.0.0.0 255.255.255.248 U 0 0 0 eth1 83.19.239.200 0.0.0.0 255.255.255.248 U 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth1 punisher999:~# route -C -n Kernel IP routing cache Source Destination Gateway Flags Metric Ref Use Iface 81.173.3.250 192.168.1.133 192.168.1.133 0 0 2395 eth2 10.0.0.1 10.0.0.7 10.0.0.7 ibl 0 0 6 lo 192.168.1.1 192.168.1.133 192.168.1.133 0 8 1 eth2 192.168.1.133 81.173.3.250 10.0.0.1 i 0 0 477 eth1 192.168.1.133 192.168.1.1 192.168.1.1 il 0 0 469 lo 192.168.1.133 81.173.3.250 10.0.0.1 0 0 990 eth1 192.168.1.133 192.168.1.1 192.168.1.1 l 0 0 992 lo punisher999:~#
Offline