Kiedy sieć, transmisja i brama są wymagane do ręcznego skonfigurowania interfejsu sieciowego?

10

https://wiki.debian.org/NetworkConfiguration#Bridging_without_Switching

Powyższy adres URL mówi, co następuje. Ale nie jest dla mnie jasne, kiedy są opcjonalne, a kiedy nie. Czy możesz podać mi link do referencji, które to opisują? Dzięki.

Jeśli konfigurujesz go ręcznie, wówczas coś takiego ustawi bramę domyślną (sieć, transmisja i brama są opcjonalne):

auto eth0
iface eth0 inet static
    address 192.0.2.7
    netmask 255.255.255.0
    gateway 192.0.2.254
użytkownik1424739
źródło
2
W najnowszych wersjach Ubuntu, które używają dnsmasq, musisz również zadeklarować serwery nazw DNS.
chili555
@ chili555, to działa, jeśli dodasz pakiet resolvconf. Przeczytaj moją odpowiedź poniżej. ;-) Czy wszystko w porządku z odpowiedzią, użytkownik1424739?
Anders
Wierzę w najnowsze wersje Ubuntu, że resolvconf jest instalowany domyślnie; Nie??
chili555
1
Czy możesz poświęcić trochę czasu na przejrzenie odpowiedzi @Anders. Zobacz, co mam zrobić, gdy ktoś odpowie na moje pytanie?
user.dz
@ chili555 Tak, jest. Chciałem tylko wyjaśnić połączenie między tym pakietem a serwerami dns w / e / n / interfaces. Przepraszam, jeśli byłam niejasna.
Anders

Odpowiedzi:

25

Jak skonfigurować statyczny adres IP i dlaczego

Ogłoszenie! Nie mówię o innych sposobach konfiguracji sieci, takich jak NetworkManager. Żadne urządzenie wymienione w /etc/network/interfacesnie jest dotknięte przez NM

Aby móc komunikować się przez sieć IP (IPv4 i IPv6), komputer musi wiedzieć, jaki ma adres IP. Dlatego addresspotrzebna jest dyrektywa, aby powiedzieć komputerowi.

Gdy komputer chce następnie rozmawiać z innym komputerem, używa adresu IP innych komputerów, aby sprawdzić, czy ten komputer jest w tej samej sieci, LAN. Jeśli tak, komputer może komunikować się bezpośrednio z drugim komputerem.

Skąd więc komputer wie, kiedy komunikuje się z komputerem w tej samej sieci LAN? Korzystając z sieci netmask, w których część netto adresu jest ustawiona na jedynki, a część hosta na zera. Tak więc, wykonując bitową operację AND między każdym bitem adresu IP a maską sieci, otrzymamy adres sieciowy adresu IP, gdzie część hosta wynosi zero. Jeśli więc zrobimy to na adresie IP komputerów i na innych komputerach, otrzymamy każdy adres sieciowy. Jeśli są równe, oznacza to, że komputery są w tej samej sieci i mogą rozmawiać bezpośrednio ze sobą.

Jeśli adresy sieciowe nie są równe, znajdują się w innej sieci LAN i nie mogą się ze sobą bezpośrednio komunikować. Następnie komputer musi użyć specjalnego komputera podłączonego do innych sieci LAN. Ten komputer jest routerem (który może mieć także zaporę i NAT). Kiedy więc komputer chce rozmawiać z innymi komputerami poza siecią LAN, musi znać adres tego komputera ustawiony w gatewaydyrektywie. Jeśli inny interfejs ustawił już gatewaywartość, nie należy i nie należy ustawiać kolejnej dyrektywy bramy dla tego interfejsu. Do gatewaydyrektywa ustawia domyślną trasę do komputera, więc trzeba tylko jeden dla IPv4 i IPv6 tylko jeden dla każdej maszyny. Ten adres sieciowy można ustawić ręcznie za pomocą networkdyrektywy.

Czasami komputer chce komunikować się ze wszystkimi komputerami w sieci LAN i używa adresu rozgłoszeniowego. Ten adres jest nasłuchiwany przez wszystkie komputery w tej samej sieci LAN. Jest to w zasadzie taki sam jak adres sieciowy, z tą różnicą, że część hosta to nie wszystkie zera i zamiast nich wszystkie. Ten adres rozgłoszeniowy jest ustawiany przez dyrektywę broadcastw interfejsie.

networkAdres interfejsu musi być obliczony tylko raz i zwykle jest obliczany poprawnie na podstawie tego addressi netmaskdyrektyw. To samo z broadcastadresem. Więc nie musisz ich ustawiać. W rzeczywistości, jeśli ustawisz jedną lub obie na niewłaściwe wartości, możesz utracić połączenie z Internetem i innymi komputerami w twojej sieci LAN. Więc jeśli nie masz na nich dziwnych wartości, pozwól komputerowi je obliczyć.

Tak więc minimalne ustawienia statyczne lub zwrotki /etc/network/interfacesmogą wyglądać tak dla urządzenia eth1w sieci prywatnej:

iface eth1 static inet
     address   192.168.44.10
     netmask   255.255.255.0
     gateway   192.168.44.1

Jak działa rozpoznawanie nazw i jak jest powiązane z DNS.

Nazwy domen służą do konwersji między łatwymi do odczytania i zapamiętania nazwami domen a komputerami, które nie są tak łatwe do zapamiętania, wspomniane powyżej adresy IP. Nazywa się to rozpoznawaniem nazw .

Zwykle jest to kontrolowane przez plik /etc/nsswitc.confi linię zaczynającą się od hosts:. Jeśli poprosisz komputer o połączenie z komputerem my.example.com, przejrzy ten plik i spróbuje rozwiązać adres IP z nazwy my.example.com. Ten plik nie odpowiada na pytanie „jakie adresy IP ma mój.przyklad.com”, po prostu informuje komputer, gdzie może znaleźć odpowiedź.
Zwykle /etc/hostsnajpierw próbuje pliku w celu uzyskania statycznych nazw lokalnych, następnie avahi w mDNSprzypadku dynamicznych nazw lokalnych, a następnie programu do zmiany nazw domen DNS, aby uzyskać nazwę z Internetu.

Jeśli niektóre z nich nie odpowiadają na pytania, może to wyglądać, jakby komputer utknął na chwilę. Jeśli to otrzymasz, najpierw sprawdź rozwiązywanie nazw.

Tak więc dodając adresy statyczne, możesz po prostu dodać go do swojego /etc/hostspliku. Nawiasem mówiąc, jeśli masz adres statyczny, prawdopodobnie powinieneś zmienić tam adres IP swojego urządzenia na swój adres IP, a nie domyślny 127.0.1.1(który znajduje się w sieci localnet, gdzie jest localhost 127.0.0.1). Działa to tylko w przypadku klientów, a nie serwerów.

Dynamiczne adresy, które otrzymujesz z komputerów z systemem Linux wraz z avahipakietem oraz z komputerów Apple (i MS Windows z iTunes?). Jest to obsługiwane przez „magię” i nie trzeba tego naprawiać.

DNS jest używany do łączenia się z Internetem i musisz powiedzieć komputerowi, gdzie są te serwery DNS, których chcesz użyć, jaki adres IP użyć i jaka jest domyślna domena DNS.

Odbywa się to w pliku /etc/resolv.confi można je ustawić statycznie. To nie działa tak dobrze w naszym nie tak statycznym świecie, więc zazwyczaj masz resolvconfzainstalowany pakiet o nazwie . To pozwala skonfigurować te ustawienia w /e/n/interfacespliku.

Jeśli więc założymy, że chcemy dodać jeden z serwerów DNS Googles 8.8.8.8oraz serwer DNS twojego dostawcy usług internetowych 192.0.2.1i domenę my.example.orgdomeny jako domyślną, po prostu edytuj /etc/network/interfacesplik i dodaj te dwie linie w sekcji dla urządzenia statycznego.

    dns-nameservers   8.8.8.8  192.0.2.10
    dns-search        my.example.org

Możesz również zauważyć, że program rozpoznawania nazw DNS będzie używał maksymalnie trzech serwerów DNS. Proszę spojrzeć na to w man-page dnia resolv.conf. Jak zwykle, można użyć polecenia man nsswitch.conf, man resolv.confa man resolvconfpo więcej informacji.

Zauważ też, że używam domeny example.com i example.org oraz sieci IP 192.0.2.0/24 dla przykładowego serwera DNS ISP. Są one wyraźnie zdefiniowane do użycia w przykładach. Zobacz http://example.com/ lub http://tools.ietf.org/html/rfc2606 i rfc5735

Jak zatem sprawdzić, czy to działa?
Możesz to zrobić na wiele sposobów, ale zwykle używam

getent hosts my.test.com

przetestować całą konfigurację pod kątem rozpoznawania nazw. Jeśli chcę tylko sprawdzić, czy DNS działa, używam jednego z następujących poleceń:

host my.test.com
dig my.test.com

Pamiętaj jednak, że te testują DNS tylko poprzez ustawienia w /etc/resolv.confpliku, a nie /etc/nsswitch.confczęść. To może być to, czego chcesz lub nie.

Anders
źródło
1
Ładne wyjaśnienie, dziękuję. Jak chili555 wspomina o znaczeniu DNS przy rozwiązywaniu nazw domen, dobrze będzie, jeśli dodasz do tego punkt. (Jeśli chodzi o połączenia internetowe lub WAN, konieczne jest skonfigurowanie wszystkich)
user.dz
Coś takiego?
Anders
1
Zapraszamy. :-) Zastanawiam się, czy to wystarczająco dobra odpowiedź dla użytkownika 1424739
Anders
W każdym razie, /etc/internet/interfacesbędą wkrótce przestarzałe dla Ubuntu, na rzecz własnych NetPlan, patrz /etc/netplan/*.yamli NM(które można modyfikować nm-tools).
Anders