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
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:
- HOWTO: Bezpieczeństwo sieci bezprzewodowej – WPA1, WPA2, LEAP itp. .
- Jak połączyć dwa interfejsy za pomocą ip / iproute2? .
- Co to jest zdarzenie hotplug w interfejsie?
Komentarze
- Dzięki, to bardzo pomaga. Czy
inet
ma coś wspólnego z " internetem "?Czytałem gdzieś, że oznacza to po prostu " IPv4 " iinet6
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ładeth0
, czy są zdefiniowane, czy mogę je wybrać samodzielnie? Jeśli mam więcej niż jedną kartę LAN, jak mogę stwierdzić, któraeth
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 iinet6
= v6). Nazwy interfejsów w dużej mierze zależą od używanej dystrybucji i sposobu konfiguracjiudev
. Debian używaeth*
iwlan*
do interfejsów kablowych i bezprzewodowych. Fedora używa schematu biosdevname, gdzieem0
to pierwszy wbudowany interfejs Ethernet na płycie głównej, ap<slot>p<eth port>
nazwa nici PCI. Możesz poprawić nazwy sieci w/etc/udev/rules.d/70-persistent-net.rules
lub utworzyć alias nainterfaces
. - 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
manual
oznacza, że ifupdown don ' nic z nimi nie robić, musisz to zrobić samodzielnie.