Udostępnianie internetu z Debiana 7.7 na router z dd-wrt

Witajcie. Od pewnego czasu zostałam ”zmuszona” do używania Debiana 7.7 Wcześniej używałam tylko i wyłącznie Windowsa XP. Mam problem we właściwym skonfigurowaniu sieci. Otóż łączę się z internetem za pomocą modemu Huawei. Chciałabym udostępnić to połączenie internetowe dla np. eth0 lub eth1 i dalej przez port WAN do routera. Dodam, że na routerze mam dd-wrt.

 

Moje interfejsy sieciowe:

 

Intel 82801EB – eth0

Realtek RTL-8139 - eth1

Modem HUAWEI – eth2

Atheros AR2417 – wlan0

Ralink RT2561 – wlan1

 

Łączę się z internetem za pomocą eth2. Eth2 ma na stałe ustawione następujące parametry, których nie można zmienić:

 

Adres IP modemu: 192.168.1.1

Adres IP komputera: 192.168.1.100

Maska podsieci: 255.255.255.0

Domyślna trasa: 192.168.1.1

DNS: 192.168.1.1

 

Na Windowsie mogłam ”wyklikać” to w kilka minut a tutaj to już nie takie proste. W Linuksie dzieją się cuda, np. gdy podłączam router przez LAN to przestaje działać modem. Po zmianie IP routera i uzyskaniu połączenia nie mogę wywołać go przez przeglądarkę. Masakra… Pomożecie? Co i jak dokładnie skonfigurować? Martyna

Konfiguracja udostepniania sieci jest prostsza, niż w Windows. Pierwsza rzecz, nie mozesz mieć dwóch interfejsów w tej samej sieci, tu już masz błąd. Jeśli od ISP masz prywatne IP, to wystarczy tylko włączyć przekazywanie pakietów. Przydałyby się jakieś konkretne informacje. Konfigurujesz sieć network managerem (GUI) czy z linii poleceń (twrminal)? Podaj również wyniki poniższych poleceń z terminala.

ifconfig
route -n

ifconfig dało coś takiego:

 

bash: ifconfig: nie znaleziono polecenia

 

route -n tak samo:

 

bash: route: nie znaleziono polecenia

Polecenia wykonaj jako użytkownik root.

root@FUJITSU-PC:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:30:05:59:28:fb
inet6 addr: fe80::230:5ff:fe59:28fb/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:20 errors:0 dropped:0 overruns:0 frame:0
TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1200 (1.1 KiB) TX bytes:4861 (4.7 KiB)

eth1 Link encap:Ethernet HWaddr 00:0e:2e:cd:19:e2
inet6 addr: fe80::20e:2eff:fecd:19e2/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:51 errors:0 dropped:0 overruns:0 frame:0
TX packets:244 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3546 (3.4 KiB) TX bytes:38145 (37.2 KiB)
Interrupt:18 Base address:0x3400

eth2 Link encap:Ethernet HWaddr 58:2c:80:13:92:63
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::5a2c:80ff:fe13:9263/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7320 errors:0 dropped:0 overruns:0 frame:0
TX packets:7127 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3744770 (3.5 MiB) TX bytes:1435541 (1.3 MiB)

wlan0 Link encap:Ethernet HWaddr f4:ec:38:fd:14:64
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)

wlan1 Link encap:Ethernet HWaddr 00:30:cd:0d:2f:ef
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)

root@FUJITSU-PC:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
192.168.1.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth1

Teraz już jest jasniejsza sytuacja. Na eth0 przypisujesz adres z podsieci, np. 192.168.2.0/24, czyli 192.168.2.1 maska 255.255.255.0 bramy nie podajesz. Włączasz przekazywanie pakietów - w pliku /etc/systcl.conf usuwasz kratke (#) przy linijce net.ipv4.ip_forward=1 i wykonujesz polecenie sysctl -p. Jeśli wszystko zrobisz dobrze, pakiety powinny przechodzić.

Teraz podpinasz router. Jeśli router ma działać jako router podpinasz kabel pod port WAN i ustawiasz statyczne IP, 192.168.2.2 maska 255.255.255.0 brama 192.168.2.1. Sam router po stronie LAN musi być w innej podsieci, np. 192.168.3.0/24. Jeśli router ma działać jako przełącznik, to podpinasz pod port LAN a na komputerze dla eth0 pobierasz IP z serwera DHCP routera.

sysctl.conf edytowałam już wcześniej. Dodatkowo wykonałam coś takiego:

iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
iptables -A FORWARD -i eth0 -o eth2 -j ACCEPT

Po takim zabiegu eth0 stało się “nieobsługiwane” lub “niezarządzane”. Mówiąc w skrócie nie działa i nic nie można w nim zmienić.

Ponadto, gdy wcześniej włączałam komputer to modem samoczynnie łączył się i internetem. Teraz po włączeniu muszę wyjąć go z gniazda USB i włożyć na nowo, żeby się połączył. Czy można w jakiś sposób przywrócić/zresetować wszystkie ustawienia sieciowe, żeby były tak jak tuż po instalacji?

 

 

Udało mi się wskrzesić eth0 jednak pojawił się inny problem. eth0 ustawiłam na statyczne IP: 192.168.2.1 maska: 255.255.255.0  WAN w routerze ustawiłam na IP: 192.168.2.2 maska: 255.255.255.0 brama: 192.168.2.1

Jednak, gdy LAN w routerze ustawię na IP: 192.168.3.1 maska 255.255.255.0 to po zapisaniu ustawień nie mogę połączyć się z routerem poprzez przeglądarkę. Łączę się wtedy za pomocą eth1, która ma ustawione przypisywanie IP przez DHCP routera. Niby połączenie jest, niby adres również jest przydzielony, jednak router nie odpowiada po wpisaniu jego IP w pasku adresy przeglądarki. Jakieś pomysły?

Jeśli od ISP dostajesz prywatne IP, to nie musisz korzystać z NAT w IPTables.

Kierowałem się tym co podałaś. Zamiast eth2 powinnaś mieć w ifconfig połączenie ppp0. Nie napisałaś też w jaki sposób konfigurujesz sieć. Napisz czy używasz network managera (klikasz), czy konsoli (edytujesz pliki lub wykonujesz polecenia). Wtedy będę mógł Cię dokładniej poinstruować.

Brakuje Ci tras w tablicy routing, ale tym zajmiemy się później, bo teraz to jest najmniej istotny problem.

Nie mam prywatnego IP. Do każdej sesji otrzymuję nowe. Łączę się z internetem za pośrednictwem modemu LTE Huawei E3272. Zarówno Windows jak i Linux instaluje owe urządzenie jako zwykłą, przewodową kartę sieciową. Dlatego właśnie jest eth2 a nie ppp0. Można wejść do ustawień tego modemu za pośrednictwem przeglądarki, wpisując jego IP - tak samo jak w przypadku routera. Jednak jest tam bardzo mało opcji do skonfigurowania. Nie można zmienić wewnętrznego IP urządzenia, które jest ustawione na 192.168.1.1 ani przypisać stałe IP dla komputera. Modem przydziela adres z przedziału 192.168.1.100-199

 

Staram się używać konsoli i samej edytować pliki konfiguracyjne. Jednak jak już wcześniej napisałam - przygodę z Linuksem zaczęłam niedawno, więc wiele rzeczy jest jeszcze dla mnie niezrozumiałych.

 

 

Dodatkowo, gdy próbuję zrestartować sieć to otrzymuję taki komunikat:

root@FUJITSU-PC:~# /etc/init.d/networking restart
[warn] Running /etc/init.d/networking restart is deprecated because it may not re-enable some interfaces ... (warning).
[....] Reconfiguring network interfaces.../sbin/ifdown: line 22: id: nie znaleziono polecenia

/sbin/ifdown: line 24: basename: nie znaleziono polecenia
  : you must be root to run this command.

/sbin/ifup: line 22: id: nie znaleziono polecenia

/sbin/ifup: line 24: basename: nie znaleziono polecenia
  : you must be root to run this command.

failed.

Czyli modem wykonuje NAT, w takim razie grzebanie w iptables jest zbędne.

Miło, ale jeśli masz zainstalowane środowisko graficzne, to korzystaj z graficznego manadżera połączeń. Z plików korzysta się głównie na serwerach, gdzie nie instaluje się graficznego pulpitu. Poza tym, konfiguracja plików wydłuży start systemu. Możesz śmiało wyklikać to sobie w menedżerze sieci (Network Manager). Poniżej przykład.

post-47690-0-73732100-1418771383_thumb.p

Bo tych poleceń nie używa się w pliku konfiguracyjnym sieci. Te polecenia służa, np. do przeładowania konfiguracji określonego interfejsu.

Z rozmowy na PW wywnioskowałem, że chcesz mieć router z DD-WRT w tej samej podsieci co połączenie udostępnianie. W takim razie routerowi z DD-WRT przypisz adres IP 192.168.2.254 maska 255.255.255.0. Na Debianie interfejsowi eth0 przpis statyczny adres IP 192.168.2.1 maska 255.255.255.0, bramy nie ustawiasz. Na routerze w ustawieniach DNS przypisz pulę adresów od 192.168.2.2 do 192.168.2.253 i jako bramę wskaż 192.168.2.1. Na Debianie w pliku /etc/sysctl.conf odkomentuj linijkę, tj. usuń # przed linijką net.ipv4.ip_forward=1. Następnie wykonaj polecenie sysctl -p lub w najgorszym przypadku uruchom ponownie system.

Zobacz czy przechodzą pakiety ICMP pomiędzy Debianem, a routerem. Sprawdzić to poleceniem ping na Debianie.

ping -c 4 192.168.2.254

Jeśli przechodzą, to jest okej. Podłącz jakiś komputer do routera i zobacz czy przechodzą pakiety ICMP do Debiania poleceniem ping na tym komputerze.

ping 192.168.2.1

Jeśli tak, to zobacz czy masz wyjście do internetu.

ping 8.8.8.8

Jeśli tak, to wszystko jest prawidłowo skonfigurowane. Jeśli nie, pokaż wyniki poniższych poleceń.

ifconfig
route -n

Nic z tego nie wyszło.

root@FUJITSU-PC:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:30:05:59:28:fb  
          inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0
          inet6 addr: fe80::230:5ff:fe59:28fb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:1760 errors:0 dropped:0 overruns:0 frame:0
          TX packets:421 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:109525 (106.9 KiB) TX bytes:78890 (77.0 KiB)

eth1 Link encap:Ethernet HWaddr 00:0e:2e:cd:19:e2  
          inet addr:192.168.2.3 Bcast:192.168.2.255 Mask:255.255.255.0
          inet6 addr: fe80::20e:2eff:fecd:19e2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:21 errors:0 dropped:0 overruns:0 frame:0
          TX packets:526 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1546 (1.5 KiB) TX bytes:132288 (129.1 KiB)
          Interrupt:18 Base address:0x3400 

eth2 Link encap:Ethernet HWaddr 58:2c:80:13:92:63  
          inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
          inet6 addr: fe80::5a2c:80ff:fe13:9263/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:1407 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1294 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:982168 (959.1 KiB) TX bytes:272281 (265.8 KiB)

wlan0 Link encap:Ethernet HWaddr f4:ec:38:fd:14:64  
          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)

wlan1 Link encap:Ethernet HWaddr 00:30:cd:0d:2f:ef  
          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)

oraz

root@FUJITSU-PC:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth2
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1

I znowu po zmianie IP routera nie mogę się połączyć z jego panelem administracyjnym. Nawet nie pinguje. Pomyślałam, że może z routerem jest coś nie tak. Wyciągnęłam z szafy jakiś stary router i spróbowałam zrobić dokładnie tak samo. Niestety bez zmian.

Nie mozesz mieć eth0 i eth1 w tej samej podsieci. Zapomniałem dodać, że kabelek sieciowy podłączasz z jednej strony do eth0, a z drugiej do portu LAN w routerze, nie do portu WAN. Z dostępem do panelu w takim układzie nie powinno być żadnego problemu.

Pokaż jeszcze wynik polecenia.

cat /proc/sys/net/ipv4/ip_forward