Motywacja:
Chcę używać mojego serwera linux zamiast przeciętnego routera bezprzewodowego z kilku powodów
- Chcę się dowiedzieć, jak skonfigurować pełniejszy serwer na systemie Linux
- Nie chcę mieć modemu podłączonego do routera ani przełącznika sieciowego
- Mam dość zmęczenia odłączaniem routera co 10 dni, ponieważ po prostu się zawiesza
- Mam dość kupowania routerów, aby zdać sobie sprawę, że brakuje im czegoś kluczowego, takiego jak przekierowanie portów lub statyczne adresowanie IP (dhcp)
Ustawiać:
Ostatecznie połączenie przejdzie do modemu, a następnie bezpośrednio do mojego serwera eth0
, a następnie eth1
wyłączy się do przełącznika sieciowego, do którego wszystkie inne komputery klienckie zostaną podłączone za pomocą kabli Ethernet (na razie zapomnij o łączności bezprzewodowej). Obecnie jednak jestem w budynku biurowym i mam połączenie przychodzące do modemu, który przechodzi do routera, który przechodzi do przełącznika sieciowego, który następnie przechodzi w eth0
sposób określony powyżej.
Aktualne samouczki:
Przejrzałem kilka samouczków (samouczek Ubuntu jest najlepszy) i przejrzałem tutaj niektóre pytania dotyczące routera (tj. Ten ), ale wszystkie one zawierają kilka kluczowych pojęć, takich jak:
- Z czym jest
eth1
związanyeth0
? W/etc/network/interfaces
muszę powiedziećeth1
używaćeth0
jakonetwork
(na ogół jest to rzeczywisty fizyczny adres routera)? - Czy muszę coś zrobić, aby poinstruować,
eth1
aby wziąć dostęp do Internetueth0
i przekazać go każdemu, kto chce go w przełączniku sieciowym?
Obecne podejście:
Oto mój /etc/network/interfaces
plik na serwerze:
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.70
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
auto eth1
# iface eth1 inet dhcp
iface eth1 inet static
address 192.168.7.0
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
I ifconfig
mówi mi, że obie karty sieciowe działają dobrze:
eth0 Link encap:Ethernet HWaddr 20:cf:30:55:a0:5f
inet addr:192.168.1.70 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::22cf:30ff:fe55:a05f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11297 errors:0 dropped:0 overruns:0 frame:0
TX packets:16639 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:948633 (948.6 KB) TX bytes:1274685 (1.2 MB)
eth1 Link encap:Ethernet HWaddr 00:11:95:f7:f4:6d
inet addr:192.168.7.0 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::211:95ff:fef7:f46d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:243 errors:0 dropped:0 overruns:0 frame:0
TX packets:3231 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:29934 (29.9 KB) TX bytes:213055 (213.0 KB)
Interrupt:21
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:65536 Metric:1
RX packets:5348 errors:0 dropped:0 overruns:0 frame:0
TX packets:5348 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:470737 (470.7 KB) TX bytes:470737 (470.7 KB)
wlan0 Link encap:Ethernet HWaddr bc:f6:85:f8:70:5c
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)
A oto co route -n returns
na serwerze:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.7.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Potem mam klienta
auto lo
iface lo inet loopback
iface eth0 inet dhcp
Ale nie ma przypisanego adresu IP.
EDYCJA: Oto plik konfiguracyjny serwera isc-dhcp-serwer, w /etc/dhcp3/dhcpd.con
którym skopiowałem głównie z tej strony .
# Sample /etc/dhcpd.conf
# (add your comments here)
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mydomain.example";
subnet 192.168.7.0 netmask 255.255.255.0 {
range 192.168.7.10 192.168.7.25;
}
EDYCJA: Wyjściesudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level warning
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Pytanie:
Jakich kluczowych kroków / elementów brakuje w tej konfiguracji?
źródło
dhcp
(i dlategodhcpd
) nie jest obowiązkowe i służy jedynie do scentralizowania wszystkich statycznych ips na serwerze (w przeciwieństwie do zmiany/etc/network/interfaces
pliku na każdym hoście). Dlatego postanowiłem nie eksperymentować z tym, dopóki to nie zadziała. Mam jednakdhcp3-server
zainstalowane, a takżeisc-dhcp-server
dhcpd.conf
plik i wskazałem, że używamisc-dhcp-server
Odpowiedzi:
Muszę iść jak Kuba Rozpruwacz z powodu kilku brakujących rzeczy, które masz:
Jeśli twój klient użyje DHCP do uzyskania adresu IP, potrzebujesz serwera DHCP.
U klientów oznacza to, że otrzymają swoje adresy IP z serwera DHCP, jeśli nie skonfigurowałeś serwera DHCP, powinieneś użyć stałych adresów IP lub zainstalować serwer DHCP.
Brakuje serwerów DNS skonfigurowanych na klientach. Albo z powodu braku serwera DHCP, albo możesz chcieć użyć lokalnego serwera DNS dla całej sieci.
Nie zaoferowałeś
iptables
reguł (wyniksudo iptables -L
), ale mogłem zgadywać, że nie aktywowałeś reguł Masquerade ani przekazywania IP zgodnie z opisem .Adres IP
eth1
nie jest zalecany. Dowolny adres IP0
to zazwyczaj sama sieć, a większość routerów / zapory sieciowej jest mylona, gdy są używane . Zmień to na,192.168.7.1
a będziesz w większości w porządku.Twoja
broadcast
wartość weth1
interfejsie jest nieprawidłowa. Wysyła paczki do nikąd. Prawidłowa wartość (biorąc pod uwagę inne wartości interfejsu) to192.168.7.255
.Twoje opcje na serwerze DHCP są błędne. Pakiety ARP do routera nigdy nie osiągną. Oto, co powinieneś mieć:
Postępuj zgodnie z nimi, a najprawdopodobniej router będzie działał.
źródło
sudo iptables -L
zapytania192.168.7.255
i wiersz 8subnet 192.168.7.0
.255
jest zwykle używanym adresem rozgłoszeniowym, każda paczka wysyłana w tym kierunku będzie wysyłana do wszystkich systemów w tych samych podsieciach. Oznacza to, że każdy pakiet wysłany do 1.2.3.255 zostanie odebrany przez dowolny system, którego adres IP zaczyna się od 1.2.3, ponieważ wszystkie są w tej samej podsieci en.wikipedia.org/wiki/Subnetwork#IPv4_subnettingdhcp
czy sieć. Wykona statyczny adres IP w celu przetestowania. w przypadku statycznegoeth1
adresu IP klienta, czy używam adresu IP jako bramy?Braiam odpowiedział na moje pytanie, ale pomyślałem, że dobrze byłoby tu znaleźć dokładny przewodnik. Zaktualizuj to, jeśli popełniłem błędy.
Najpierw upewnij się, że masz dwie karty Ethernet (NIC) i zaktualizuj
/etc/network/interfaces
plik jako taki ( nie myl tego z/etc/networks
plikiem).Aby znaleźć
gateway
,broadcast
inetwork
wykonaj te instrukcje .Następnie przejdź do klienta i najpierw edytuj plik
/etc/network/interface
(ponownie, nie/etc/networks
) dla statycznego adresu IP, aby upewnić się, że przynajmniej karta NIC działa.Zmień wartości, aby pasowały do powyższych wartości. Jeśli to działa, świetnie, skorzystaj z instrukcji tutaj, ale postępuj zgodnie z nimi dokładnie , ponieważ jest kilka
dhcp
plików, więc nie pomyl folderu/etc/dhcp
z/etc/dhcp3
i tak dalej.źródło