Metode-metode ini melakukan hal-hal yang secara fundamental berbeda. Untuk memahami alasannya, Anda perlu memahami model jejaring berlapis. Untuk tujuan kita di sini, layer 1, 2 dan 3 penting:
- Lapisan 1 adalah lapisan fisik - ini menentukan hal-hal seperti kabel apa yang dapat Anda gunakan, pola tegangan / arus apa yang mewakili 1s dan 0s pada kabel itu, bagaimana perangkat di setiap ujung kabel menegosiasikan berapa bit rate yang mereka operasikan dan seterusnya.
- Lapisan 2 adalah lapisan tautan - ini menentukan bahasa apa yang ada di setiap ujung kabel yang berbicara satu sama lain. Perangkat Ethernet pada lapisan ini memiliki hal-hal seperti bingkai dan alamat MAC.
- Lapisan 3 adalah lapisan jaringan - ini menentukan bagaimana perangkat menggunakan tautan lapisan 2 langsung ke perangkat lain untuk mencapai perangkat ketiga yang tidak dapat dijangkau secara langsung di lapisan 2. Perangkat di lapisan ini memiliki alamat IP dan tabel perutean.
MACVLAN / MACVTAP
MACVLAN membuat perangkat layer 2 atau link layer virtual, dengan alamat MAC-nya sendiri, yang membagikan layer 1 atau layer fisik dengan perangkat yang ada. Kasus yang paling jelas dimengerti adalah di mana Anda memiliki perangkat Ethernet yang terhubung ke jaringan dan Anda membuat perangkat MACVLAN berdasarkan pada perangkat Ethernet itu; sekarang Anda memiliki dua "perangkat" Ethernet dengan alamat MAC yang berbeda tetapi keduanya mengirimkan frame mereka pada kabel yang sama. Saya akan berbicara tentang MACVTAP sedikit lebih jauh ke bawah.
Antarmuka MACVLAN dapat berinteraksi dalam beberapa cara berbeda dengan antarmuka Ethernet yang ada, khususnya ketika sebuah bingkai muncul di salah satu antarmuka yang merupakan alamat yang lain:
- Dalam mode pribadi , bingkai dibuang; kedua antarmuka tidak mungkin saling berkomunikasi, hanya dengan perangkat eksternal.
- Dalam mode vepa , frame dikirim melalui layer fisik seperti frame lainnya. Jika perangkat Anda dicolokkan ke sakelar yang cukup pintar untuk mengetahui bahwa frame tersebut perlu dikirim kembali ke port yang sama dengan saat ia tiba, maka itu akan diterima oleh lapisan fisik yang sama yang mengirimnya dan kemudian lapisan 2 akan gunakan MAC untuk mengirimkannya ke antarmuka jaringan yang dimaksud.
- Dalam mode jembatan , ketika sebuah bingkai muncul di satu perangkat, itu diperiksa untuk melihat apakah itu ditujukan untuk yang lain dan jika demikian, itu dikirim ke sana tanpa melalui lapisan 1.
- Ada juga beberapa mode yang lebih tidak jelas.
Perhatikan bahwa antarmuka MACVLAN memiliki batasan penting: Mereka tidak mampu belajar alamat. Jadi Anda tidak dapat menjembatani antarmuka MACVLAN ke perangkat fisik kedua dan berharap dapat menjangkau perangkat fisik kedua itu dari yang pertama. Ini berfungsi dengan antarmuka Ethernet asli tetapi tidak dengan antarmuka MACVLAN yang menyertainya.
TUN / TAP
Antarmuka TAP juga merupakan perangkat lapisan 2 virtual baru tetapi tanpa lapisan 1 yang melekat padanya. Sebagai gantinya, sebuah program bisa mendapatkan deskriptor file yang mewakili lapisan fisik. Ia kemudian dapat menulis data frame Ethernet mentah ke dalam deskriptor file tersebut dan kernel akan memperlakukannya seperti paket Ethernet lain yang diterimanya pada antarmuka fisik nyata.
Hal besar tentang antarmuka TAP adalah lapisan fisik berada dalam mode pengguna; setiap perangkat lunak dengan izin yang sesuai dapat menghasilkan frame Ethernet dengan cara apa pun yang disukainya dan mendorongnya menjadi sesuatu yang oleh kernel diperlakukan sama seperti antarmuka fisik nyata. Ini membuatnya sangat berguna untuk hal-hal seperti VPN dan tunneling; Anda dapat menulis perangkat lunak tunneling apa pun yang Anda suka di ruang pengguna dan tidak perlu mencampuri ruang kernel untuk memasukkan frame ke dalam tumpukan jaringan, Anda cukup membuat perangkat TAP dan menulis frame ke deskriptor file-nya.
Perangkat TUN sama seperti perangkat TAP kecuali mereka beroperasi pada layer 3, bukan layer 2 dan perangkat lunak mode pengguna harus menulis paket IP mentah ke dalam deskriptor file, bukan frame Ethernet mentah.
Kembali ke perangkat MACVTAP , ini adalah semacam campuran antara antarmuka MACVLAN dan TAP. Seperti antarmuka TAP, program mode pengguna bisa mendapatkan deskriptor file dan menulis frame Ethernet mentah ke dalamnya. Seperti antarmuka MACVLAN, frame-frame tersebut kemudian dikirim melalui lapisan fisik perangkat Ethernet yang sebenarnya. Ini memungkinkan Anda untuk dengan mudah menyesuaikan perangkat lunak yang ditulis untuk menggunakan perangkat TAP untuk menggunakan perangkat MACVLAN.
VNet
Ini secara konseptual mirip dengan jaringan TUN / TAP tetapi memiliki bidang kontrol yang lebih maju (sehingga perangkat lunak mode pengguna yang menggunakannya dapat mengkonfigurasi antarmuka lebih fleksibel) dan bidang data yang lebih optimal (sehingga Anda dapat memindahkan data melalui perangkat jaringan virtual lebih lanjut efisien).
Semua ini melakukan hal yang serupa tetapi memiliki kemampuan yang sedikit berbeda. Semuanya dapat digunakan untuk menghubungkan VM ke jaringan Ethernet:
- Produk virtualisasi dapat mengambil frame Ethernet dari tamu dan menuliskannya ke dalam deskriptor file untuk perangkat TAP. Perangkat TAP itu dapat ditetapkan alamat IP-nya sendiri oleh tuan rumah, atau ia dapat bekerja keras ke jembatan bersama dengan antarmuka Ethernet untuk berbagi alamat IP tuan rumah, atau iptables dapat dikonfigurasi untuk meneruskan lalu lintas di atasnya menggunakan NAT.
- Sebuah produk virtualisasi dapat membuat Ethernet membingkai dari tamu dan menuliskannya ke dalam deskriptor file untuk perangkat MACVTAP; ini kemudian ditransmisikan secara langsung pada lapisan fisik perangkat Ethernet, secara efektif memberikan VM perangkat Ethernet "nyata" (meskipun perlu dicatat bahwa dimungkinkan untuk membuat perangkat MACVLAN / MACVTAP untuk jenis antarmuka jaringan lain seperti jembatan).
- Produk virtualisasi dapat menghubungkan driver virtio di tamu ke driver virtio di host untuk jaringan yang sangat efisien.