udost

Masz problemy z siecią bądź internetem? Zapytaj tu
kuba_g
Posty: 67
Rejestracja: 16 lutego 2007, 15:29
Lokalizacja: /dev/null

udostępnianie internetu

Post autor: kuba_g »

Witam.

Zanim zdecydowałem się napisać tego posta przeglądnąłem różne fora internetowe i opisy wydające się najlepsze jakie mogą być ale na nic to. Możliwe że w jednym miejscu robię głupi błąd i nie jestem tego świadom.

Mam 2 komputery. Stacjonarny z Debianem i laptopa z Windowsem Me

Stacjonarny Debian ma 3 karty sieciowe, a z dwóch korzystam, eth0 to wyjście na świat a eth1 ma (ma bo jeszcze nie działa) przekazywać internet laptopowi.

Debian ma adres IP 192.168.0.1 (eth1), a laptop 192.168.0.2

Wyjście na świat to neostrada przez dhcp.

Chcę udostępnić laptopowi internet jednak niezbyt to jakoś wychodzi. Konfiguruję iptables:

Kod: Zaznacz cały

echo 1 >/proc/sys/net/ipv4/ip_forward

iptables -A POSTROUTING -o eth1 -j MASQUERADE -t nat
I nie działa. Próbowałem się bawić według różnych opisów z różnymi skryptami ale na razie nie działa.

Nie wiem jakie pliki mogą się przydać żeby mieć wgląd na problem, na razie dołączam takie.

/etc/network/interfaces:

Kod: Zaznacz cały

# The loopback network interface
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 255.255.0.1

auto eth1

auto eth0
/etc/hosts

Kod: Zaznacz cały

127.0.0.1 localhost debian
127.0.1.1 debian.lan debian

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
192.168.0.2 laptop
/etc/resolv.conf:

Kod: Zaznacz cały

search lan


nameserver 10.0.0.138
I jeszcze pingi:

Kod: Zaznacz cały

kuba@debian:~$ ping laptop
PING laptop (192.168.0.2) 56(84) bytes of data.
64 bytes from laptop (192.168.0.2): icmp_seq=1 ttl=128 time=4.02 ms
64 bytes from laptop (192.168.0.2): icmp_seq=2 ttl=128 time=0.225 ms
64 bytes from laptop (192.168.0.2): icmp_seq=3 ttl=128 time=0.216 ms
64 bytes from laptop (192.168.0.2): icmp_seq=4 ttl=128 time=0.221 ms

--- laptop ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.216/1.172/4.029/1.649 ms
kuba@debian:~$  
które jak widać dochodzą. Problemem jest samo udostępnianie.

Z góry dziękuję.
Awatar użytkownika
Yampress
Administrator
Posty: 6422
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

zrób tak

Kod: Zaznacz cały

# The loopback network interface 
auto lo 
iface lo inet loopback 
address 127.0.0.1 
netmask 255.0.0.0 

# The primary network interface 
auto eth0
allow-hotplug eth0 
iface eth0 inet dhcp 

iface eth1 inet static 
address 192.168.0.1 
netmask 255.255.255.0 
#gateway 255.255.0.1 
auto eth1 


Kod: Zaznacz cały

echo 1 > /proc/sys/net/ipv4/ip_forward 
iptables -F -t nat
iptables -X -t nat
iptables -F -t filter
iptables -X -t filter
iptables -t filter -P FORWARD DROP
iptables -t filter -A FORWARD -s 192.168.0.0/255.255.0.0 -d 0/0 -j ACCEPT
iptables -t filter -A FORWARD -s 0/0 -d 192.168.0.0/255.255.0.0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -d 0/0 -j MASQUERADE
knoppix25
Posty: 14
Rejestracja: 19 lutego 2009, 09:09
Lokalizacja: bydgoszcz

Post autor: knoppix25 »

Yampress, hej mam zasadnicze pytanie czy w pliku /etc/network/interfaces można tak ustawić eth0 i/lub eth1 żeby zawsze miało stałe ttl, ponieważ mój dostawca blokuje wpinanie rutera do sieci.
internet-------siec wifi-z ip--10.0.0.1--- <----|moj ap z ip 10.0.0.90| -----ruting----- |komp z ip 192.168.1.1 i pingi mam z ttl=1
a ja chcę mieć tak
internet-----siec radiowa wifi z zakresu 10.0.0.1 <---moj ap z ip 10.0.0.90|-----routing------- eth0serwera z 192.168.1.1------routing na serwerze-----eth1 z zakresem 192.168.2.1 i z dhcp|-----------komputer z ip 192.168.2.100
I ten komputer z 192.168.2.100 nie ma internetu, blokada ttl. Czy mogę ustawić ttl na moim serwerze żeby przepuszczał internet z serwera? Mogę wszystko pinować, a dhcp i dns na eth1 sa poprawne i tu szukam pomocy.
Awatar użytkownika
Yampress
Administrator
Posty: 6422
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

w firewalu

Kod: Zaznacz cały

iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-set 2
lub zamiast 2 -> 3
wstawic najmniejsza wartość jaka pozwoli na routing
knoppix25
Posty: 14
Rejestracja: 19 lutego 2009, 09:09
Lokalizacja: bydgoszcz

Post autor: knoppix25 »

Yampress pisze:w firewalu

Kod: Zaznacz cały

iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-set 2
lub zamiast 2 -> 3
wstawic najmniejsza wartość jaka pozwoli na routing
Tego szukałem, zadziałało od razu, powyższe komendy niestety nie. Dziękuję Yampress i szacunek.
Trog
Posty: 2
Rejestracja: 27 lutego 2009, 23:42
Lokalizacja: Lublin/Kraków

Post autor: Trog »

Rzeczywiście, to jest to. Ja dałem 10 i u mnie śmiga.
Mógłbyś wytłumaczyć po co to jest?

Jeśli się nie mylę to ustawia TTLa przed "zroute'owaniem" pakietu, ale po co to jest potrzebne?
Mój ISP sprawdza czy nie jest za wysokie i mówi mi nie ma cię w sieci, jeśli jest?
To jest dziwne, bo jak daje 100, to też działa. Nie rozumiem tego do końca.
wieszti
Beginner
Posty: 143
Rejestracja: 31 stycznia 2009, 18:28

Post autor: wieszti »

TTL jest zmniejszane o 1 po przejsciu pakietu przez każdy router, jęśli osiągnie zero to taki pakiet nie jest dalej przekazywany
Trog
Posty: 2
Rejestracja: 27 lutego 2009, 23:42
Lokalizacja: Lublin/Kraków

Post autor: Trog »

To w takim razie jakie jest źródłowe? Jak to się sprawdza? Jak wylicza?

Ja mam komputer stacjonarny, który jest podłączony do ISP, a do tej mojej stacjonarki wbijam się WiFi z laptopa. Więc stacjonarka robi za ruter, drugi jest u ISP i tak dalej.
knoppix25
Posty: 14
Rejestracja: 19 lutego 2009, 09:09
Lokalizacja: bydgoszcz

Post autor: knoppix25 »

Trog pisze:To w takim razie jakie jest źródłowe? Jak to się sprawdza? Jak wylicza?

Ja mam komputer stacjonarny, który jest podłączony do ISP, a do tej mojej stacjonarki wbijam się WiFi z laptopa. Więc stacjonarka robi za ruter, drugi jest u ISP i tak dalej.
£atwo sprawdzić wystarczy że w konsoli pingujesz np. onet nap ping onet.pl
U mnie też mam TTL=1
64 bytes from sg.m1.onet.pl (213.180.138.148): icmp_seq=2 ttl=1 time=24.1 ms
64 bytes from sg.m1.onet.pl (213.180.138.148): icmp_seq=2 ttl=1 time=24.1 ms
64 bytes from sg.m1.onet.pl (213.180.138.148): icmp_seq=2 ttl=1 time=24.1 ms
64 bytes from sg.m1.onet.pl (213.180.138.148): icmp_seq=2 ttl=1 time=24.1 ms
64 bytes from sg.m1.onet.pl (213.180.138.148): icmp_seq=2 ttl=1 time=24.1 ms
Jeśli mam ttl 1 to po przejściu przez ruter (gdybym miał ruter zamiast komputera) spadło by o 1 ponieważ każdy ruterem zmniejsza ttl o 1 w dół po to żeby pakiet, który błądzi w sieci po pewnym czasie sam zna.

Zadziałało ponieważ przed rutingiem na serwerze ta komenda daje każdemu pakietowi, który przychodzi wartość ttl taką jak sobie ustawisz i po rutingu nie spada do 0 i masz na pc internet.

Robię to zabezpieczenie dostawcą internetu aby klient nie mógł sobie podłączyć rutera i rozdzielać bez wiedzy dostawcy internetu. To proste zabezpieczenie, które łatwo też obejść. Kolejna moc Linuksa ;P
ODPOWIEDZ