it-swarm-id.com

Antarmuka jaringan virtual di Mac OS X

Saya tahu bahwa Anda dapat membuat antarmuka jaringan virtual di Windows (lihat sini ), dan di Linux juga cukup mudah dengan ip-alias, tetapi apakah ada hal serupa untuk Mac OS X? Saya telah mencari adapter loopback, antarmuka virtual dan tidak dapat menemukan solusi yang baik. 

Anda dapat membuat antarmuka baru di panel jaringan, berdasarkan pada antarmuka yang ada, tetapi itu tidak akan bertindak sebagai antarmuka berfungsi penuh nyata (jika antarmuka asli tidak aktif, maka yang diturunkan juga tidak aktif).

Skenario ini diperlukan ketika bekerja dalam situasi yang benar-benar terputus. Bahkan kemudian, masuk akal untuk memiliki kemampuan jaringan ketika menjalankan server dalam instalasi VMWare. Mesin virtual tersebut dapat dijangkau oleh alamat IP mereka, tetapi tidak dengan nama DNS mereka, bahkan jika saya menjalankan server DNS di salah satu mesin virtual tersebut. Dengan mengkonfigurasi antarmuka untuk menggunakan server DNS virtual, saya pikir saya bisa menguji beberapa skenario DNS. Sayangnya, tidak ada antarmuka yang menyelesaikan nama DNS jika tidak ada yang tidak aktif ...

42
Hans Doggen

Adaptor loopback selalu naik.

ifconfig lo0 alias 172.16.123.1 akan menambahkan alias IP 172.16.123.1 ke adaptor loopback

ifconfig lo0 -alias 172.16.123.1 akan menghapusnya

53
Dave Whitla

Membalas khususnya untuk:

Anda dapat membuat antarmuka baru di panel jaringan, berdasarkan pada antarmuka yang ada, tetapi itu tidak akan bertindak sebagai antarmuka berfungsi penuh nyata (jika antarmuka asli tidak aktif, maka yang diturunkan juga tidak aktif).

Ini dapat dicapai dengan menggunakan perangkat Tun/Tap seperti yang disarankan oleh psv141, dan memanipulasi file /Library/Preferences/SystemConfiguration/preferences.plist untuk menambahkan NetworkService berdasarkan antarmuka tun atau tap. Mac OS X tidak akan mengizinkan pembuatan NetworkService berdasarkan antarmuka jaringan virtual, tetapi orang dapat secara langsung memanipulasi file preferences.plist untuk menambahkan NetworkService dengan tangan. Pada dasarnya Anda akan membuka file preferences.plist dalam Xcode (atau mengedit XML secara langsung, tetapi Xcode mungkin lebih bodoh-bukti), dan menyalin konfigurasi dari antarmuka Ethernet yang ada. Tempat untuk membuat NetworkService baru berada di bawah "NetworkServices", dan jika Mac Anda memiliki perangkat Ethernet, profil NetworkService juga akan berada di bawah entri properti ini. Entri Ethernet dapat disalin cukup banyak kata demi kata, satu-satunya bidang yang akan Anda ubah adalah:

  • UUID
  • UserDefinedName
  • Konfigurasi IPv4 dan atur antarmuka ke perangkat tun atau ketuk Anda (mis. Tun0 atau ketuk0).
  • Server DNS jika diperlukan.

Kemudian Anda juga akan memanipulasi Lokasi tertentu yang Anda inginkan untuk NetworkService ini (ingat Mac OS X dapat mengkonfigurasi semua antarmuka jaringan tergantung pada "Lokasi" Anda). Lokasi default UUID dapat diperoleh di root dari PropertyList sebagai kunci "CurrentSet". Setelah mencari tahu lokasi mana (atau set) yang Anda inginkan, perluas properti Set, dan tambahkan entri di bawah Global/IPv4/ServiceOrder dengan UUID NetworkService baru. Juga di bawah properti Set Anda perlu memperluas properti Layanan dan menambahkan UUID di sini sebagai kamus dengan satu entri String dengan kunci __LINK__ dan nilai sebagai UUID (gunakan antarmuka lainnya sebagai contoh).

Setelah Anda memodifikasi file preferences.plist Anda, reboot saja, dan NetworkService akan tersedia di bawah SystemPreferences-> Network. Perhatikan bahwa kami telah menirukan perangkat Ethernet sehingga lapisan jaringan Mac OS X akan mencatat bahwa "kabel dicabut" dan tidak akan membiarkan Anda mengaktifkan antarmuka melalui GUI. Namun, karena perangkat yang mendasarinya adalah perangkat tun/tap dan memiliki alamat IP, antarmuka akan menjadi aktif dan perutean yang tepat akan ditambahkan pada tingkat BSD.

Sebagai referensi ini digunakan untuk melakukan sihir routing khusus.

Jika Anda sampai sejauh ini dan mengalami masalah, Anda harus membuat perangkat tun/tap dengan membuka salah satu perangkat di bawah/dev /. Anda dapat menggunakan program apa pun untuk melakukan ini, tapi saya sendiri penggemar C kuno yang baik:

#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
int main()
{
   int fd = open("/dev/tun0", O_RDONLY);
   if (fd < 0)
   {
      printf("Failed to open tun/tap device. Are you root? Are the drivers installed?\n");
      return -1;
   }
   while (1)
   {
      sleep(100000);
   }
   return 0;
}
22
bmasterswizzle

Sehubungan dengan @bmasterswizzle's BRILLIANT jawab - lebih khusus - untuk @DanRamos 'pertanyaan tentang bagaimana memaksa tautan-antarmuka antarmuka baru untuk "naik" .. Saya menggunakan skrip ini, yang tidak dapat saya ingat asal skripnya, yang tidak dapat saya ingat asal tulisannya, tetapi yang berfungsi luar biasa (berkoordinasi dengan @bmasterswizzles "Mona Lisa" dari jawaban ) ...

#!/bin/zsh

[[ "$UID" -ne "0" ]] && echo "You must be root. Goodbye..." && exit 1
echo "starting"
exec 4<>/dev/tap0
ifconfig tap0 10.10.10.1 10.10.10.255
ifconfig tap0 up
ping -c1 10.10.10.1
echo "ending"
export PS1="tap interface>"
dd of=/dev/null <&4 & # continuously reads from buffer and dumps to null

Saya TIDAK yakin saya mengerti perubahan pada Prompt di akhir, atau ...

dd of=/dev/null <&4 & # continuously reads from buffer and dumps to null

tapi apa pun. berhasil. lampu tautan ????: hijau ✅. menyukainya ????.

enter image description here

8
Alex Gray

Dimungkinkan untuk menggunakan perangkat TUN/TAP . http://tuntaposx.sourceforge.net/

5
psv141

Beberapa orang lain sepertinya mengisyaratkan hal ini, tetapi berikut ini menunjukkan menggunakan ifconfig untuk membuat vlan dan menguji DNS pada antarmuka virtual (menggunakan minidns ) pada OS X 10.9.5:

$ sw_vers -productVersion
10.9.5
$ Sudo ifconfig vlan169 create && echo vlan169 created
vlan169 created
$ Sudo ifconfig vlan169 inet 169.254.169.254 netmask 255.255.255.255 && echo vlan169 configured
vlan169 configured
$ Sudo ./minidns.py 169.254.169.254 &
[1] 35125
$ miniDNS :: * 60 IN A 169.254.169.254


$ Dig @169.254.169.254 +short test.Host
Request: test.Host. -> 169.254.169.254
Request: test.Host. -> 169.254.169.254
169.254.169.254
$ Sudo kill 35125
$ 
[1]+  Exit 143                Sudo ./minidns.py 169.254.169.254
$ Sudo ifconfig vlan169 destroy && echo vlan169 destroyed
vlan169 destroyed
5
web-online

Apa yang Anda maksud dengan 

"tetapi itu tidak akan bertindak sebagai antarmuka berfungsi penuh nyata (jika antarmuka asli tidak aktif, maka yang diturunkan juga tidak aktif"

?

Saya dapat membuat antarmuka baru, mendasarkannya pada yang sudah ada, kemudian menonaktifkan yang sudah ada dan yang baru masih berfungsi. Namun, membuat antarmuka kedua tidak membuat antarmuka nyata (ketika Anda memeriksa dengan ifconfig), itu hanya akan menetapkan IP kedua untuk yang sudah ada (namun, yang ini bisa berupa DHCP sedangkan yang pertama sulit dikodekan misalnya).

Jadi, apakah saya mengerti Anda benar, bahwa Anda ingin membuat antarmuka, tidak terikat dengan antarmuka nyata? Bagaimana antarmuka ini kemudian digunakan? Misalnya. jika Anda mencabut semua WLAN dan menarik semua kabel jaringan, ke mana antarmuka ini mengirim lalu lintas, jika Anda mengirim lalu lintas ke sana? Mungkin pertanyaan Anda agak tidak jelas, mungkin banyak membantu jika diulang lagi, jadi jelas apa yang sebenarnya Anda coba lakukan dengan "antarmuka virtual" ini begitu Anda memilikinya.

Seperti yang Anda sebutkan "alias IP" dalam pertanyaan Anda, ini berarti antarmuka alias. Tapi antarmuka alias selalu terikat dengan antarmuka nyata. Perbedaannya adalah di Linux antarmuka seperti itu benar-benarADALAHsebuah antarmuka (misalnya antarmuka alias untuk eth0 bisa menjadi eth1), sementara di Mac, tidak ada antarmuka real dibuat, alih-alih antarmuka virtual dibuat , yang dapat dikonfigurasikan dan digunakan secara independen, tetapi masih merupakan antarmuka yang sama secara fisik dan dengan demikian tidak ada antarmuka bernama baru yang dihasilkan (Anda hanya memiliki dua antarmuka, yang keduanya sebenarnya en0, tetapi keduanya dapat diaktifkan/dinonaktifkan dan dikonfigurasi secara independen).

1
Mecki

Lihatlah tutorial ini, ini untuk FreeBSD tetapi juga berlaku untuk OS X. http://people.freebsd.org/~arved/vlan/vlan_en.html

1
Ariel Monaco

saya telah menggunakan PFSense, router/firewall berbasis BSD untuk mencapai tujuan ini….

mengapa? karena OS X Server jadi FREAKY tanpa IP Statis…

jadi setelah bergulat dengannya selama DAYS untuk membuat NAT dan DHCP serta firewall dan ...

Saya mencoba ini paralel ...

akan membiarkanmu tahu bagaimana kelanjutannya ...

0
Alex Gray

jika Anda berada di lingkungan dev dan ingin mengakses beberapa layanan yang sudah berjalan di localhost/mesin Host. di docker untuk mac Anda memiliki opsi lain. gunakan docker.for.mac.localhost bukan localhost dalam docker container . docker.for.mac.Host.internal harus digunakan daripada docker.for.mac.localhost dari Docker Edisi Komunitas 17.12.0-ce-mac46 2018-01-09 . Ini memungkinkan Anda terhubung ke layanan yang berjalan di mac Anda dari dalam wadah buruh pelabuhan. Silakan lihat tautan di bawah ini

memahami perilaku docker.for.mac.localhost

catatan rilis

0
arvin_v_s

Pergi ke Preferensi Jaringan.

Di bagian bawah daftar adapter jaringan, klik ikon +  

Pilih antarmuka yang ada yang ingin Anda arp (katakanlah Ethernet 1), dan berikan Nama Layanan yang Anda inginkan untuk port baru (katakanlah Ethernet 1.1) kemudian tekan create.

Sekarang Anda memiliki antarmuka virtual baru di gui dan dapat mengelola alamat IP dll dengan cara normal.

ifconfig -a akan mengkonfirmasi bahwa Anda memiliki beberapa IP pada antarmuka, dan ini akan tetap ada ketika Anda reboot.

Ini Mac. Jangan melawannya, lakukan dengan cara yang mudah. 

0
Henry 3 Dogg