Rozumiem bardzo podstawową koncepcję korzystania z /etc/network/interfaces, ale wszystko, co znajduję w internecie, to przykłady, przykład po przykładzie, z którego mogę skopiować i wkleić. Brakuje mi wyjaśnienia składni, wyjaśnienia znaczenia poleceń i tego, jakiej kolejności poleceń wymagają. Chcę to zrozumieć, ponieważ w większości przypadków kopiowanie i wklejanie nie wystarcza, ponieważ nie pracuję na nowej maszynie, więc nie mogę po prostu nadpisać istniejących konfiguracji, ponieważ spowodowałoby to uszkodzenie wielu rzeczy. man interfaces nie był zbyt pomocny, ponieważ jest napisany bardzo skomplikowanie.

Przykładowe pytania, które mam: co robi inet w wiersz iface oznacza dokładnie (nie mogłem go nawet znaleźć na stronie podręcznika), co oznacza manual w iface oznacza dokładnie (używa go wiele przykładów, ale zgodnie ze stroną podręcznika wymaga on dodatkowego pliku konfiguracyjnego, którego przykłady nie przedstawiają), kiedy ich używać lub potrzebuję? Kiedy nie? Kiedy tworzę mostek, co dokładnie dzieje się z interfejsami?

Komentarze

  • Strona podręcznika mówi, że to, co pojawia się po nazwie interfejsu, to rodzina adresów, z których interfejs używa. " inet " to nazwa dla IPv4, inet6 dla IPv6. Tam ' s także ipx, x25, appletalk …, chociaż ifupdown zajmuje się tylko inet / inet6 / ipx, jak wyjaśnia strona podręcznika. manual oznacza, że ifupdown don ' nic z nimi nie robić, musisz to zrobić samodzielnie.

Odpowiedz

Podzielmy to na części, aby ułatwić zrozumienie /etc/network/interfaces:

Warstwa linków + opcje typu interfejsu (ogólnie pierwsza z każdej sekcji interfejsu i nazywana metodą + rodzina adresów przez interfaces(5) manpages):

auto interface – Uruchom interfejs (y) podczas rozruchu. Dlatego interfejs lo używa takiej konfiguracji łączenia.

allow-auto interface – Tak samo jak auto

allow-hotplug interface – Uruchom interfejs po wykryciu zdarzenia„ hotplug ”. W prawdziwym świecie jest to używane w takich samych sytuacjach jak auto, ale różnica polega na tym, że będzie czekać na zdarzenie takie jak „wykrycie przez udev hotplug api” lub „połączenie kablowe” . Aby uzyskać dodatkowe informacje, zobacz „ Powiązane rzeczy (hotplug) ”.

Te opcje to w zasadzie opcje warstwy 2, konfigurujące stany linków na interfejsach i nie są związane z „warstwą 3” (routing i adresowanie). Na przykład możesz mieć agregację łączy, w której interfejs bond0 musi być włączony niezależnie od stanu łącza, a jego elementy członkowskie mogą być włączone po zdarzeniu stanu łącza:

auto bond0 iface bond0 inet manual down ip link set $IFACE down post-down rmmod bonding pre-up modprobe bonding mode=4 miimon=200 up ip link set $IFACE up mtu 9000 up udevadm trigger allow-hotplug eth0 iface eth0 inet manual up ifenslave bond0 $IFACE down ifenslave -d bond0 $IFACE 2> /dev/null allow-hotplug eth1 iface eth1 inet manual up ifenslave bond0 $IFACE down ifenslave -d bond0 $IFACE 2> /dev/null 

W ten sposób tworzę agregację łączy , a interfejsy zostaną do niej dodane i usunięte w stanach łączy kablowych.

Najpopularniejsze typy interfejsów:

Wszystkie poniższe opcje są sufiksem do zdefiniowanego interfejsu (iface <Interface_family>). Zasadniczo iface eth0 tworzy sekcję o nazwie eth0 na urządzeniu Ethernet . iface ppp0 powinien utworzyć interfejs punkt-punkt i może mieć różne sposoby uzyskiwania adresów, takich jak inet wvdial, który przekaże konfigurację tego interfejsu do skryptu wvdialconf. Krotka inet / inet6 + option określi wersję protokół IP , który będzie używany i sposób, w jaki ten adres zostanie skonfigurowany (static, dhcp, scripts …). podręczniki Debiana online zawierają więcej szczegółów na ten temat.

Opcje interfejsów Ethernet:

inet static – Definiuje statyczny adres IP.

inet manual – Nie definiuje adresu IP dla interfejsu. Zwykle używane przez interfejsy, które są elementami mostu lub agregacji, interfejsy, które muszą działać w trybie swobodnym ( np. Dublowanie portów lub sieciowe TAPy ) lub mają skonfigurowane urządzenie VLAN. Jest to sposób na utrzymanie interfejsu bez adresu IP.

inet dhcp – Uzyskaj adres IP przez protokół DHCP.

inet6 static – Definiuje statyczny adres IPv6.

Przykład:

# Eth0 auto eth0 iface eth0 inet manual pre-up modprobe 8021q pre-up ifconfig eth0 up post-down ifconfig eth0 down # Vlan Interface auto vlan10 iface vlan10 inet static address 10.0.0.1 netmask 255.255.255.0 gateway 10.0.0.254 vlan-raw-device eth0 ip_rp_filter 0 

Ten przykład podniesie eth0 i utworzy Interfejs VLAN o nazwie vlan10, który będzie przetwarzał tag numer 10 w ramce Ethernet.

Typowe opcje w sekcji interfejsu (warstwa 2 i 3):

address – adres IP dla interfejsu ze statycznym adresem IP

netmask – maska sieci. Można go pominąć, jeśli używasz adresu cidr. Przykład:

iface eth1 inet static address 192.168.1.2/24 gateway 192.168.1.1 

gateway – domyślna brama serwera. Uważaj, aby używać tylko jednego tego faceta.

vlan-raw-device – W interfejsie VLAN definiuje swojego „ojca”.

bridge_ports – W interfejsie mostka zdefiniuj jego elementy.

down – Użyj następującego polecenia, aby wyłączyć interfejs zamiast ifdown.

post-down – Działania podjęte zaraz po wyłączeniu interfejsu.

pre-up – Działania przed uruchomieniem interfejsu.

up – Użyj następującego polecenia, aby zwiększyć interfejs zamiast ifup. To zależy od Twojej wyobraźni, aby użyć dowolnej opcji dostępnej na iputils. Jako przykład możemy użyć up ip link set $IFACE up mtu 9000, aby włączyć ramki typu jumbo podczas up (zamiast używać samej opcji mtu). Możesz także zadzwonić do dowolnego innego oprogramowania, takiego jak up sleep 5; mii-tool -F 100baseTx-FD $IFACE, aby wymusić pełny dupleks 100 Mb / s 5 sekund po uruchomieniu interfejsu.

hwaddress ether 00:00:00:00:00:00 – Zmień adres mac interfejsu zamiast używać tego, który jest zakodowany na stałe w rom lub wygenerowany przez algorytmy. Możesz użyć słowa kluczowego random, aby uzyskać losowy adres mac.

dns-nameservers – adresy IP serwerów nazw. Wymaga pakietu resolvconf. Jest to sposób na skoncentrowanie wszystkich informacji w /etc/network/interfaces zamiast używania /etc/resolv.conf do konfiguracji związanych z DNS. Nie edytuj ręcznie pliku konfiguracyjnego resolv.conf, ponieważ będzie on dynamicznie zmieniany przez programy w systemie.

dns-search example.net – Dołącz example.net jako domenę do zapytań hosta, tworząc nazwę FQDN. Opcja domain z /etc/resolv.conf

wpa-ssid – Sieć bezprzewodowa: ustaw bezprzewodowy WPA SSID.

mtu MTU . mtu 9000 = Jumbo Frame. Przydatne, jeśli twoja skrzynka z Linuksem jest podłączona za pomocą przełączników obsługujących większe rozmiary MTU. Może złamać niektóre protokoły (miałem złe doświadczenia z ramkami snmp i jumbo).

wpa-psk – Bezprzewodowe: Ustaw kod PSK szesnastkowy dla swojego identyfikatora SSID.

ip_rp_filter 1 Filtr odwrotnej ścieżki włączony. Przydatne w sytuacjach, gdy masz 2 trasy do hosta, a to zmusi pakiet do powrotu z miejsca, w którym przyszedł (ten sam interfejs, używając swoich tras). Przykład: masz połączenie z siecią LAN (192.168.1.1/24) i masz serwer DLNA z jednym interfejsem w Twojej sieci LAN (192.168.1.10/24) i innymi interfejs na dmz do wykonywania zadań administracyjnych (172.16.1.1/24). Podczas sesji ssh z komputera do dlna dmz ip, informacje muszą do Ciebie wrócić, ale będą się zawieszać na zawsze, ponieważ serwer DLNA będzie próbował dostarczyć odpowiedź bezpośrednio przez interfejs sieciowy swojego komputera. Przy włączonym rp_filter zapewni że połączenie powróci z miejsca, z którego pochodzi. Więcej informacji tutaj .

Niektóre z tych opcji nie są opcjonalne. Debian ostrzeże jeśli na przykład umieścisz adres IP w interfejsie bez maski sieci.

Więcej dobrych przykładów konfiguracji sieci znajdziesz tutaj .

Powiązane rzeczy :

Linki zawierające informacje związane z /etc/network/interfaces plik konfiguracji sieci:

Komentarze

  • Dzięki, to bardzo pomaga. Czy inet ma coś wspólnego z " internetem "?Czytałem gdzieś, że oznacza to po prostu " IPv4 " i inet6 oznacza " IPv6 ", ale termin " inet " jest naprawdę mylące, gdy go widzisz i mylisz ze skrótem od " internet ". A nazwy, których używa, na przykład eth0, czy są zdefiniowane, czy mogę je wybrać samodzielnie? Jeśli mam więcej niż jedną kartę LAN, jak mogę stwierdzić, która eth należy do której karty LAN?
  • Obie. Razem definiują metodę pozyskiwania adresów IP (dhcp, statyczne, skrypty ppp, brak adresu) oraz wersję protokołu IP (inet = v4 i inet6 = v6). Nazwy interfejsów w dużej mierze zależą od używanej dystrybucji i sposobu konfiguracji udev. Debian używa eth* i wlan* do interfejsów kablowych i bezprzewodowych. Fedora używa schematu biosdevname, gdzie em0 to pierwszy wbudowany interfejs Ethernet na płycie głównej, a p<slot>p<eth port> nazwa nici PCI. Możesz poprawić nazwy sieci w /etc/udev/rules.d/70-persistent-net.rules lub utworzyć alias na interfaces.
  • Jeśli chodzi o " brama – domyślna brama serwera. zachowaj ostrożność, aby użyć tylko jednego z tego gościa. " Czy jest to jeden interfejs bramy na sekcję, czy jeden interfejs bramy między wszystkimi sekcjami?
  • Powinien być jedną bramą wśród wszystkich sekcji, lub będziesz mieć problem z domyślną trasą. Aby pracować z wieloma bramami / łączami, potrzebne będą pewne przemyślenia dotyczące iptables + oznaczania pakietów + reguł IP.
  • allow-hotplug nie czeka w tle na " połączone kablem zdarzenia " na portach Ethernet i nigdy tego nie zrobiono. unix.stackexchange.com/a/520633/29483

Odpowiedź

Dodałbym również, że:

  • interfejsy są przeznaczone dla usług ifup / ifdown.
  • Kiedy używasz allow-hotplug, to nie rozpocznie się od ifup / ifdown, bcos musisz użyć flag –allow = hotplug.

Możesz śledzić, co jest dzieje się z ifup przy użyciu flagi –verbose.

Nie jestem tego w 100% pewien, ale wydaje się, że w zasadzie, gdy wywoływane jest ifup, u wykona wszystko z / etc / network / interfaces z up … jeśli nie określono inaczej.

Nie jestem pewien, jak to się ma do: sieci usług …

Byłoby miło, gdyby ktoś wskazał, co się dzieje po rozmowie:

service networking restart 

w odniesieniu do ifup / ifdown.

Odpowiedź

Jeśli chcesz dodać opcje podczas korzystania z pakietu resolvconf, tzn. w Ubuntu umieszczasz tę konfigurację w /etc/resolvconf/resolv.conf.d/base:

# /etc/resolvconf/resolv.conf.d/base options timeout:1 attempts:1 rotate 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *