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
Do niedawna internet dzieliłem w swoim domu za pomocą wdzięcznego, czarno-niebieskiego pudełka z dwoma antenkami i napisem Linksys.. jednak pilna potrzeba postawienia forum, www, icecasta i Bóg wie czego jeszcze zmusiła mnie, do oddelegowania mojego kadłubka do ciężkiej i niewdzięcznej pracy jaką jest bycie ruterem/serverem :)
Oto schemat tego co chcę zrobić:
---internet--------eth1-[server]--eth0------sieć lokalna----
klasyka tematu jednym słowem...
Postawiłem Etch'a na jajku 2.6.22.6, wkompilowałem na stałe obsługę netfilter'a. Skonfigurowałem serwer DHCP, sieciówki i wklepałem pare regułek iptables. Wszystko powinno śmigać.. niestety tak nie jest..
Maskarada niby działa, tyle ze pingować mogę tylko po IP (ping 212.77.100.101 przejdzie ale ping www.wp.pl już nie). Pomyślałem ze mój ISP ustawil TTL=1.. uruchomiłem tcpdumpa i okazało się że tak właśnie jest.. niezrażony tym za bardzo dopisałem gdzie trzeba:
iptables -t mangle -A PREROUTING -i eth1 -j TTL --ttl-inc 1
Skutek był żaden w związku z czym proszę szanownych forumowiczów o pomoc :)
konfiguracja tego majdanu przedstawia się tak:
eth1 - moje wyjście na świat
IP przydzielane przez DHCP --> 193.25.15.10
Maska --> 255.255.255.224
DNS'y --> 192.0.2.2, 193.25.0.6
Gateway --> 193.25.1.129
TCP TTL = 1
eth0 - 2 karta
IP --> 192.168.1.1
Maska --> 255.255.255.0
ifconfig
eth0 Link encap:Ethernet HWaddr 00:11:D8:A3:C7:86 inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 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:3 Base address:0x4000 eth1 Link encap:Ethernet HWaddr 00:30:4F:19:3A:67 inet addr:193.25.15.10 Bcast:193.25.1.159 Mask:255.255.255.224 inet6 addr: fe80::230:4fff:fe19:3a67/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:672 errors:0 dropped:0 overruns:0 frame:0 TX packets:20 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:57964 (56.6 KiB) TX bytes:1947 (1.9 KiB) Interrupt:5 Base address:0xe800
dhcpd.conf
# default-lease-time 99999; max-lease-time 99999; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.150; option broadcast-address 192.168.1.255; option routers 192.168.1.1; option domain-name-servers 192.0.2.2, 193.25.0.6; <-- DNS'y od mojego ISP host laptok { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address 192.168.1.110; } }
route -n
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 193.25.1.128 0.0.0.0 255.255.255.224 U 0 0 0 eth1 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 193.25.1.129 0.0.0.0 UG 0 0 0 eth1
/etc/init.d/maskarada - najważniejsze wpisy
#!/bin/sh echo '::: MASQ' # Przekazywanie pakietow IP echo "1" > /proc/sys/net/ipv4/ip_forward # Czyszczenie tablic NAT-a i filtrowania iptables -F -t nat iptables -X -t nat iptables -F -t filter iptables -X -t filter # Brak pozwolenia na forward pakietow iptables -t filter -P FORWARD DROP # Z sieci i do sieci iptables -t filter -A FORWARD -s 192.168.1.0/255.255.255.0 -d 0/0 -j ACCEPT iptables -t filter -A FORWARD -s 0/0 -d 192.168.1.0/255.255.255.0 -j ACCEPT # TTL iptables -t mangle -A PREROUTING -i eth1 -j TTL --ttl-inc 1 # Maskarada iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 0/0 -j MASQUERADE
Konfiguracja jajka
Jakieś pomysły co z tym fantem zrobić ?
Offline
zapomniałem o /etc/network/interfaces
# The loopback network interface auto lo iface lo inet loopback # eth1 auto eth1 allow-hotplug eth1 iface eth1 inet dhcp hwaddress ether 00:30:4F:19:3A:67 # eth0 (3com) auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.168.1.1 netmask 255.255.255.0 #gateway 193.25.15.10 #broadcast 192.168.1.255 #dns-nameservers 192.0.2.2 193.25.0.6 #dns-nameservers 194.204.152.34 194.204.159.1
Offline
A wpisy serwerów dns w /etc/resolv.conf masz?
nameserver 217.30.129.149 nameserver 217.30.137.200
Takie są u mnie w dialogu..
Offline
Zapodaj sobie tepsowe:
nameserver 194.204.159.1 nameserver 194.204.152.34
Offline
No więc tak:
Przedzwoniłem do mojego ISP i dogadałem się w sprawie TTL. Usunąłem wiec niepotrzebne wpisy i zredukowałem reguły iptables do niezbędnego minimum:
# Przekazywanie pakietow IP echo "1" > /proc/sys/net/ipv4/ip_forward # Czyszczenie tablic NAT-a i filtrowania iptables -F -t nat iptables -X -t nat iptables -F -t filter iptables -X -t filter # Brak pozwolenia na forward pakietow iptables -t filter -P FORWARD DROP # Z sieci i do sieci iptables -t filter -A FORWARD -s 192.168.1.0/255.255.255.0 -d 0/0 -j ACCEPT iptables -t filter -A FORWARD -s 0/0 -d 192.168.1.0/255.255.255.0 -j ACCEPT # Maskarada iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 0/0 -j MASQUERADE
/etc/resolv.conf
nameserver 192.0.2.2 nameserver 193.25.0.6
Próbowałem też z DNSami Tepsy.. niestety bez rezultatu.
Podsumowując:
Pingować po IP mogę wszystko, DHCP działa ale coś jest nie tak z translacją adresów.
z laptopa:
ping 212.77.100.101 PING 212.77.100.101 (212.77.100.101) 56(84) bytes of data. 64 bytes from 212.77.100.101: icmp_seq=1 ttl=114 time=24.6 ms 64 bytes from 212.77.100.101: icmp_seq=2 ttl=114 time=25.5 ms 64 bytes from 212.77.100.101: icmp_seq=3 ttl=114 time=23.3 ms
ping www.wp.pl ping: unknown host www.wp.pl
tcpdump -navi eth0 (laptop - ping 212.77.100.101)
14:47:56.168290 IP (tos 0x0, ttl 114, id 44485, offset 0, flags [none], proto ICMP (1), length 84) 212.77.100.101 > 192.168.1.110: ICMP echo reply, id 47676, seq 8, length 64 14:47:57.142996 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84) 192.168.1.110 > 212.77.100.101: ICMP echo request, id 47676, seq 9, length 64 14:47:57.166363 IP (tos 0x0, ttl 114, id 45052, offset 0, flags [none], proto ICMP (1), length 84) 212.77.100.101 > 192.168.1.110: ICMP echo reply, id 47676, seq 9, length 64
na serverze/routerze:
tcpdump -navi eth1 | grep TCP
17:07:09.236958 IP (tos 0x0, ttl 64, id 50794, offset 0, flags [DF], proto: TCP (6), length: 60) 193.25.1.140.34289 > 212.180.180.4.80: ., cksum 0xa2f3 (correct), ack 17521 win 1187 <nop,nop,sack 2 {26281:27960}{18981:24821}> 17:07:09.251199 IP (tos 0x0, ttl 53, id 10666, offset 0, flags [DF], proto: TCP (6), length: 1500) 212.180.180.4.80 > 193.25.1.140.34289: . 17521:18981(1460) ack 462 win 1728 17:07:09.251219 IP (tos 0x0, ttl 64, id 50795, offset 0, flags [DF], proto: TCP (6), length: 52) 193.25.1.140.34289 > 212.180.180.4.80: ., cksum 0x76b8 (correct), ack 24821 win 1278 <nop,nop,sack 1 {26281:27960}> 17:07:09.256251 IP (tos 0x0, ttl 53, id 10667, offset 0, flags [DF], proto: TCP (6), length: 1500) 212.180.180.4.80 > 193.25.1.140.34289: . 24821:26281(1460) ack 462 win 1728 17:07:09.256302 IP (tos 0x0, ttl 64, id 50796, offset 0, flags [DF], proto: TCP (6), length: 40) 193.25.1.140.34289 > 212.180.180.4.80: ., cksum 0x998c (correct), ack 27960 win 1369 17:07:09.257455 IP (tos 0x0, ttl 64, id 50797, offset 0, flags [DF], proto: TCP (6), length:
Powoli kończą mi się pomysły :/
Offline
Offline
dzięki za informacje.. poczytam, zainstaluję i obadam sprawę.. zastanawia mnie tylko jedno.. dlaczego to nie chodzi.. dnsforwarder nie jest przecież potrzebny by uruchomić NAT..
Offline
eee ale nat przecież działa
świadczy o tym badanie ping do ip odpowiadającemu adresowi wp.pl
jeśli nie wierzysz wpisz adres ip w przeglądarce zamiast adresu- jestem przekonany, że otworzy się strona.
Offline
źle się wyraziłem.. miałem na myśli to iż dnsforwarder nie jest potrzeby żeby to wszystko zaczęło działać.
apropo wchodzenia na www po IP.. niestety mimo wpisania http://212.77.100.101 nie mogę wejść na wp.pl.
nie wiem co jeszcze może być nie tak
Offline
przyznaję, koniec pomysłów wszystko jest poprawnie, powinnno działać :(
Możesz jeszcze spróbować zminić cel z masquerade na SNAT --to IP
Offline
Problemem był TTL... uruchomiłem tcpdumpa po raz drugi i przyjrzałem się dokładniej..
13:09:05.042715 IP (tos 0x0, ttl 1, id 31493, offset 0, flags [none], proto TCP (6), length 44) ads.web.aol.com.www > 192.168.1.100.38240: S, cksum 0x07cb (corr ect), 2949700584:2949700584(0) ack 35452966 win 16384 <mss 1360> 13:12:26.636795 IP (tos 0x0, ttl 1, id 28367, offset 0, flags [none], proto TCP (6), length 44) www.allegro.pl.www > 192.168.1.100.39556: S, cksum 0xca88 (correct), 3366858427:3366858427(0) ack 4166417970 win 4380 <mss 1460>
Podbiłem (ustawilem) TTL i wszystko zaczęło śmigać... problem rozwiązany.. dziękuję za podpowiedzi i za zainteresowanie :)
Poniżej wklejam to co dopisałem (może komuś się kiedyś to przyda):
#!/bin/sh echo '::: MASQ' # Przekazywanie pakietow IP echo "1" > /proc/sys/net/ipv4/ip_forward # Czyszczenie tablic NAT-a i filtrowania iptables -F -t nat iptables -X -t nat iptables -F -t filter iptables -X -t filter iptables -F -t mangle # Brak pozwolenia na forward pakietow iptables -t filter -P FORWARD DROP # Z sieci i do sieci iptables -t filter -A FORWARD -s 192.168.1.0/255.255.255.0 -d 0/0 -j ACCEPT iptables -t filter -A FORWARD -s 0/0 -d 192.168.1.0/255.255.255.0 -j ACCEPT #TTL iptables -t mangle -A POSTROUTING -j TTL --ttl-set 64 iptables -t mangle -A FORWARD -j TTL --ttl-set 64 iptables -t mangle -A PREROUTING -j TTL --ttl-set 64 # Maskarada #iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 0/0 -j MASQUERADE iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 193.20.15.10
Jeszcze raz dziękuję :-)
Offline