Penjelasan terperinci yang bagus tentang sintaks / etc / network / interfaces?

139

Saya memahami konsep yang sangat mendasar tentang cara menggunakan /etc/network/interfaces, tetapi yang saya temukan online hanyalah contoh, contoh demi contoh, yang dapat saya salin-tempel. Apa yang saya lewatkan adalah penjelasan tentang sintaks, penjelasan tentang arti perintah dan perintah yang diperlukan perintah. Saya ingin mengerti, karena sebagian besar waktu copy-paste tidak cukup, karena saya tidak bekerja pada mesin yang baru, jadi saya tidak bisa hanya menimpa konfigurasi yang ada karena akan merusak banyak hal. man interfacestidak sangat membantu karena ditulis sangat rumit.

Contoh pertanyaan yang saya miliki: apa artinya inetdalam sebuah ifacebaris secara persis (saya bahkan tidak bisa menemukannya di halaman manual), apa yang sebenarnya ada manualdi sebuah ifacebaris (banyak contoh yang menggunakannya, tetapi menurut manual ini memerlukan file konfigurasi tambahan, yang contoh-contoh tidak ada), kapan saya menggunakan atau membutuhkannya? Kapan tidak? Ketika saya membuat jembatan, apa yang sebenarnya terjadi pada antarmuka?

Foo Bar
sumber
4
Halaman manual mengatakan apa yang muncul setelah nama antarmuka adalah keluarga alamat yang digunakan antarmuka. "inet" adalah nama untuk IPv4, inet6 untuk ipv6. Ada juga ipx, x25, appletalk ..., meskipun ifupdown hanya berurusan dengan inet / inet6 / ipx seperti yang dijelaskan halaman manual. manualberarti bahwa jika gagal tidak melakukan apa-apa terhadap mereka, Anda harus melakukannya sendiri secara manual.
Stéphane Chazelas

Jawaban:

169

Baiklah, mari kita pisahkan menjadi beberapa bagian, untuk membuatnya lebih mudah dipahami /etc/network/interfaces:

Tautan opsi layer + jenis antarmuka (umumnya yang pertama dari setiap bait antarmuka dan disebut metode alamat keluarga + oleh interfaces(5)halaman manual):

auto interface- Mulai antarmuka saat boot. Karena itulah loantarmuka menggunakan konfigurasi penautan semacam ini.

allow-auto interface - Sama dengan auto

allow-hotplug interface- Mulai antarmuka ketika acara "hotplug" terdeteksi. Di dunia nyata, ini digunakan dalam situasi yang sama seperti autotetapi perbedaannya adalah ia akan menunggu acara seperti "terdeteksi oleh udev hotplug api" atau "kabel yang terhubung". Lihat " Hal-hal Terkait (hotplug) " untuk info tambahan.

Opsi-opsi ini adalah opsi "layer 2", mengatur status tautan pada antarmuka, dan tidak terkait dengan "layer 3" (perutean dan pengalamatan). Sebagai contoh, Anda dapat memiliki agregasi tautan di mana antarmuka bond0 harus naik apa pun status tautannya, dan anggota-anggotanya dapat naik setelah peristiwa status tautan:

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

Jadi, dengan cara ini saya membuat agregasi tautan dan antarmuka akan ditambahkan ke dalamnya dan dihapus pada status tautan kabel.

Jenis antarmuka yang paling umum:

Semua opsi di bawah ini adalah sufiks ke antarmuka yang ditentukan ( iface <Interface_family>). Pada dasarnya iface eth0menciptakan bait yang disebut eth0pada perangkat Ethernet. iface ppp0harus membuat antarmuka point-to-point , dan bisa memiliki cara berbeda untuk mendapatkan alamat seperti inet wvdialitu akan meneruskan konfigurasi antarmuka ini ke wvdialconfskrip. Tupel inet/ inet6+ optionakan menentukan versi protokol IP yang akan digunakan dan cara alamat ini akan dikonfigurasi ( static, dhcp, scripts...). The manual Debian secara online akan memberikan rincian lebih lanjut tentang hal ini.

Opsi pada antarmuka Ethernet:

inet static - Menentukan alamat IP statis.

inet manual- Tidak menentukan alamat IP untuk antarmuka. Umumnya digunakan oleh antarmuka yang merupakan anggota penghubung atau agregasi, antarmuka yang perlu beroperasi dalam mode promiscuous ( mis. Mirroring port atau TAP jaringan ), atau memiliki perangkat VLAN yang dikonfigurasi pada mereka. Ini adalah cara untuk menjaga antarmuka tanpa alamat IP.

inet dhcp - Memperoleh alamat IP melalui protokol DHCP.

inet6 static - Menentukan alamat IPv6 statis.

Contoh:

# 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

Contoh ini akan memunculkan eth0, dan membuat antarmuka VLAN yang disebut vlan10yang akan memproses tag nomor 10 pada frame Ethernet.

Opsi umum di dalam bait antarmuka (layer 2 dan 3):

address - Alamat IP untuk antarmuka terkonfigurasi IP statis

netmask- Masker jaringan. Dapat dihilangkan jika Anda menggunakan alamat cidr. Contoh:

iface eth1 inet static
    address 192.168.1.2/24
    gateway 192.168.1.1

gateway- Gateway default server. Berhati-hatilah untuk menggunakan hanya satu orang ini.

vlan-raw-device - Pada antarmuka VLAN, tentukan "bapak" -nya.

bridge_ports - Pada antarmuka jembatan, tentukan anggotanya.

down- Gunakan perintah berikut untuk menuruni antarmuka ifdown.

post-down - Tindakan dilakukan segera setelah antarmuka mati.

pre-up - Tindakan sebelum antarmuka aktif.

up- Gunakan perintah berikut untuk meningkatkan antarmuka, bukan ifup. Terserah imajinasi Anda untuk menggunakan opsi apa pun yang tersedia di iputils. Sebagai contoh, kita dapat menggunakan up ip link set $IFACE up mtu 9000untuk mengaktifkan frame jumbo selama upoperasi (alih-alih menggunakan mtuopsi itu sendiri). Anda juga dapat memanggil perangkat lunak lain seperti up sleep 5; mii-tool -F 100baseTx-FD $IFACEmemaksa 100Mbps dupleks penuh 5 detik setelah antarmuka aktif.

hwaddress ether 00:00:00:00:00:00- Ubah alamat mac antarmuka bukan menggunakan yang hardcoded menjadi rom, atau dihasilkan oleh algoritma. Anda dapat menggunakan kata kunci randomuntuk mendapatkan alamat mac secara acak.

dns-nameservers- Alamat IP nameserver. Membutuhkan resolvconfpaket. Ini adalah cara untuk memusatkan semua informasi /etc/network/interfacesdaripada menggunakan /etc/resolv.confuntuk konfigurasi terkait DNS. Jangan mengedit resolv.conffile konfigurasi secara manual karena akan diubah secara dinamis oleh program-program dalam sistem.

dns-search example.net- Tambahkan example.net sebagai domain ke kueri inang, membuat FQDN. Opsi domaindari/etc/resolv.conf

wpa-ssid - Nirkabel: Mengatur SSID WPA nirkabel.

mtu- Ukuran MTU . mtu 9000= Bingkai Jumbo. Berguna jika kotak Linux Anda terhubung dengan sakelar yang mendukung ukuran MTU yang lebih besar. Dapat mematahkan beberapa protokol (Saya punya pengalaman buruk dengan bingkai snmp dan jumbo).

wpa-psk - Nirkabel: Tetapkan PSK enkode heksadesimal untuk SSID Anda.

ip_rp_filter 1- Filter jalur balik diaktifkan. Berguna dalam situasi di mana Anda memiliki 2 rute ke host, dan ini akan memaksa paket untuk kembali dari tempat asalnya (antarmuka yang sama, menggunakan rute-rutenya). Contoh: Anda terhubung pada lan Anda ( 192.168.1.1/24) dan Anda memiliki server DLNA dengan satu antarmuka di LAN Anda ( 192.168.1.10/24) dan antarmuka lain pada DMZ untuk menjalankan tugas-tugas administratif ( 172.16.1.1/24). Selama sesi ssh dari komputer Anda ke dlna dmz ip, informasi harus kembali kepada Anda, tetapi akan hang selamanya karena server dlna Anda akan mencoba untuk memberikan respons secara langsung melalui antarmuka lan itu. Dengan rp_filter diaktifkan, itu akan memastikan bahwa koneksi akan kembali dari tempat asalnya. Informasi lebih lanjut di sini .

Beberapa opsi tersebut tidak opsional. Debian akan memperingatkan Anda jika Anda memasukkan alamat IP pada antarmuka tanpa netmask, misalnya.

Anda dapat menemukan contoh konfigurasi jaringan yang lebih baik di sini .

Hal-hal terkait :

Tautan yang memiliki informasi terkait dengan /etc/network/interfacesfile konfigurasi jaringan:


sumber
Terima kasih, ini sangat membantu. Apakah inetada hubungannya dengan "internet"? Saya membaca bahwa ini hanya berarti "IPv4" dan inet6berarti "IPv6", tetapi istilah "inet" benar-benar membingungkan ketika Anda melihatnya dan mengacaukannya dengan singkatan "internet". Dan nama-nama yang digunakan, seperti eth0, apakah ini didefinisikan atau dapatkah saya memilihnya sendiri? Jika saya memiliki lebih dari satu adaptor LAN, bagaimana cara mengetahui ethmilik adaptor LAN mana?
Foo Bar
2
Kedua. Bersama-sama mereka menentukan metode akuisisi alamat ip (dhcp, statis, skrip ppp, tidak ada alamat) dan versi protokol ip ( inet= v4 dan inet6= v6). Nama antarmuka cukup banyak tergantung pada distribusi yang Anda gunakan, dan caranya udevdikonfigurasi. Debian menggunakan eth*dan wlan*untuk menghubungkan kabel dan nirkabel. Fedora menggunakan skema biosdevname di mana em0merupakan antarmuka ethernet built-in pertama pada motherboard Anda, dan p<slot>p<eth port>nama untuk PCI nic. Anda dapat memperbaiki nama jaringan di /etc/udev/rules.d/70-persistent-net.rulesatau membuat alias di interfaces.
2
Mengenai "gateway - gateway default server. Berhati-hatilah untuk menggunakan hanya satu orang ini." Apakah itu satu per bait atau satu antarmuka gateway di antara semua bait?
ctbrown
2
Seharusnya satu gateway di antara semua bait, atau, Anda akan mengalami masalah dengan rute default Anda. Untuk bekerja dengan multi gateway / multi link, beberapa pemikiran dengan iptables + penandaan paket + aturan ip akan diperlukan.
Satu pertanyaan kecil, jika dalam file ini, saya memiliki iface eth0 inet statis dan kemudian jika saya menulis beberapa IP terhadap bidang alamat, apakah ini berarti bahwa IP tertentu yang baru saja saya tulis akan terikat pada alamat MAC sistem saya?
k10
0

Saya juga ingin menambahkan:

  • antarmuka untuk layanan ifup / ifdown.
  • Ketika Anda menggunakan allow-hotplug tidak akan dimulai dengan ifup / ifdown, bcos Anda harus menggunakan flag --allow = hotplug.

Anda dapat melacak apa yang terjadi dengan ifup dengan menggunakan --verbose flag.

Saya tidak shure 100% dari ini, tetapi tampaknya pada dasarnya ketika ifup dipanggil u akan menjalankan semua dari / etc / network / interfaces dengan up ... jika tidak dinyatakan sebaliknya.

Saya tidak tahu apa hubungannya dengan: layanan jaringan ...

Akan lebih baik jika seseorang menunjukkan apa yang terjadi setelah panggilan:

service networking restart

dalam kaitannya dengan ifup / ifdown.

Hormat kami
sumber