Saya telah mengatur jaringan seperti itu: Mengatur jaringan hanya host di VirtualBox. Adaptor pertama dikonfigurasi dengan NAT, yang kedua dengan jaringan host-only
PEMBAWA ACARA:
TAMU Windows : CentOS VM1, CentOS VM2 (klon dari VM1)
Ketika menjalankan ifconfig -a pada kedua VM, saya perhatikan bahwa alamat MAC persis sama. Pertanyaan saya adalah bagaimana saya bisa melakukan ping dari VM1 ke VM2 mengingat alamat MACnya sama?
VM1:
eth0 Link encap:Ethernet HWaddr 08:00:27:AF:A3:28
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:feaf:a328/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:27 errors:0 dropped:0 overruns:0 frame:0
TX packets:47 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10671 (10.4 KiB) TX bytes:5682 (5.5 KiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:C4:A8:B6
inet addr:192.168.56.102 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fec4:a8b6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:859 errors:0 dropped:0 overruns:0 frame:0
TX packets:41 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:114853 (112.1 KiB) TX bytes:4823 (4.7 KiB)
ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 fe80::a00:27ff:feaf:a328/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 fe80::a00:27ff:fec4:a8b6/64 scope link
valid_lft forever preferred_lft forever
VM2:
eth0 Link encap:Ethernet HWaddr 08:00:27:AF:A3:28
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:feaf:a328/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:114 errors:0 dropped:0 overruns:0 frame:0
TX packets:151 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:41594 (40.6 KiB) TX bytes:13479 (13.1 KiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:C4:A8:B6
inet addr:192.168.56.101 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fec4:a8b6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1900 errors:0 dropped:0 overruns:0 frame:0
TX packets:78 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:259710 (253.6 KiB) TX bytes:9736 (9.5 KiB)
ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 fe80::a00:27ff:feaf:a328/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 fe80::a00:27ff:fec4:a8b6/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever
networking
ip
ethernet
mac-address
pengguna
sumber
sumber
dadfailed
diip -6 addr
output Anda . Itu berarti bahwa alamat Anda gagal deteksi duplikat alamat, sehingga IPv6 tidak akan dapat digunakan pada antarmuka itu.Jawaban:
Ini adalah salah satu hal yang mengejutkan orang karena bertentangan dengan apa yang telah diajarkan kepada mereka.
2 mesin dengan alamat mac perangkat keras yang sama pada domain broadcast yang sama dapat berbicara satu sama lain dengan baik selama mereka memiliki alamat IP yang berbeda (dan gear switching berfungsi dengan baik).
Mari kita mulai dengan pengaturan tes:
Jadi perhatikan bagaimana kedua mesin memiliki addr MAC yang sama, tetapi IP berbeda.
Mari kita coba ping:
Jadi, host jarak jauh merespons. Nah, itu aneh. Mari kita lihat tabel tetangga:
Itu MAC kami!
Mari kita lakukan
tcpdump
pada host lain untuk melihat bahwa itu sebenarnya mendapatkan traffic:Jadi, seperti yang Anda lihat, meskipun lalu lintas memiliki sumber dan alamat perangkat keras yang sama dengan alamat mac, semuanya masih berfungsi dengan baik.
Alasan untuk ini adalah bahwa pencarian alamat MAC datang sangat terlambat dalam proses komunikasi. Kotak telah menggunakan alamat IP tujuan, dan tabel routing untuk menentukan antarmuka mana yang akan mengirimkan lalu lintas keluar. Alamat mac yang ditambahkan ke paket datang setelah keputusan itu.
Saya juga harus mencatat bahwa ini tergantung pada infrastruktur layer 2. Bagaimana mesin ini terhubung, dan apa yang duduk di antara mereka. Jika Anda memiliki saklar yang lebih cerdas, ini mungkin tidak berfungsi. Mungkin melihat paket ini datang dan menolaknya.
Sekarang, melanjutkan ke kepercayaan tradisional, bahwa ini tidak berhasil. Yah itu benar, dari sudut pandang tertentu :-)
Masalahnya muncul ketika host lain di jaringan perlu berbicara dengan salah satu mesin ini. Ketika lalu lintas keluar, saklar akan merutekan lalu lintas dengan alamat mac tujuan, dan itu hanya akan mengirimkannya ke satu host.
Ada beberapa kemungkinan alasan mengapa pengaturan tes ini berfungsi:
sumber
Efek dari alamat MAC duplikat dapat halus dalam beberapa kasus.
Switch mendistribusikan lalu lintas ke host berdasarkan alamat "MAC yang terlihat". Ketika Anda menyalakan komputer Anda dan mengirimkan paket pertamanya di jaringan, switch Anda akan masuk dalam tabel MAC-nya yang "alamat MAC X berasal dari port Y". Sebaliknya, di masa depan ketika melihat paket unicast dialamatkan ke alamat MAC X, ia tahu untuk mengirimnya ke port Y.
Karena VM Anda hanya pada satu port switch fisik, terserah hypervisor Anda (VirtualBox) untuk memilah tempat mengirim paket yang diarahkan ke MAC virtual tersebut. Dalam kasus duplikat, mungkin hanya mengirimkannya ke kedua VM dan memungkinkan tumpukan jaringan pada setiap VM mengatasinya. (tumpukan jaringan kemungkinan akan melihat bahwa lalu lintas dikirim ke alamat MAC-nya yang bukan milik salah satu alamat IP-nya sendiri, dan diam-diam menjatuhkan paket.) Jadi, Anda dapat membayangkan bahwa ini akan menyebabkan cukup banyak pekerjaan tambahan, karena OS untuk membangunkan dan memproses setiap paket, sedangkan jika Anda memiliki alamat MAC yang unik, perangkat keras atau driver [virtual] dapat menjatuhkan paket yang ditujukan untuk host lain, sebelum mengirimnya ke stack.
Pada jaringan yang diaktifkan (tidak seperti contoh VM Anda), alamat MAC duplikat akan menyebabkan sakelar bingung tentang ke mana harus mengirim lalu lintas. Setiap paket yang dikirim oleh host dengan duplikat MAC biasanya akan menyebabkan switch untuk menduga bahwa host "pindah" dari satu port pada switch ke yang lain. Jika kedua host mengirim dan menerima lalu lintas pada tingkat yang sama, Anda akan mengharapkan setiap host kehilangan 50% dari lalu lintas pengembaliannya.
ARP dan IPv4 mungkin tidak terlalu khawatir tentang duplikat alamat MAC, sehingga jaringan IPv4 dapat berfungsi dengan baik. (meskipun tumpukan yang kuat, atau host dengan alat keamanan / jaringan tambahan, dapat mempertimbangkan duplikasi alamat MAC sebagai bendera merah.) Juga, jika Anda menggunakan DHCP, server DHCP (tidak ada ID klien yang cukup unik) dapat menetapkan alamat IPv4 duplikat, yang bisa bermasalah.
Di sisi lain, IPv6 mendasarkan alamat yang dikonfigurasi secara otomatis pada alamat MAC . IPv6 juga mencakup konsep deteksi alamat duplikat , yang berarti bahwa alamat MAC duplikat dapat menyebabkan efek berikut (menurut RFC 4862 bagian 5.4.5):
sumber