Apa cara yang tepat untuk mengirim Frame Ethernet ke mesin lain di jaringan lokal?

1

Saya baru-baru ini mulai belajar tentang model OSI, jaringan dan banyak hal.
Karena saya suka coding di C, saya ingin mengirim frame Ethernet saya sendiri.

Sekarang saya membuatnya bekerja; namun, saya masih ragu tentang satu hal:
Saat mengirim Bingkai Ethernet dari mesin SEBUAH ke mesin B (dengan asumsi bahwa kedua mesin berada di jaringan yang sama), alamat MAC apa yang harus saya tentukan sebagai Tujuan Alamat MAC dari frame?
Saya mencoba alamat MAC router saya dan alamat MAC mesin B Kedua cara bekerja. Untuk mendapatkan alamat MAC dari mesin B , Saya hanya membuat permintaan ARP.

Namun, apa jalan yang benar?

Saya memantau lalu lintas dengan Wireshark di mesin SEBUAH dan dengan tcpdump pada mesin B . Itu output pada mesin B ( e0:d5:5e:c6:52:9a adalah alamat MAC mesin B ):

Saat menentukan mesin B Alamat MAC sebagai alamat tujuan ( a0:ce:c8:10:75:8c adalah NIC MAC mesin SEBUAH ):

18:42:46.152800 a0:ce:c8:10:75:8c > e0:d5:5e:c6:52:9a, ethertype IPv4 (0x0800), length 64: 192.168.178.21.23455 > 192.168.178.27.23456: UDP, length 5

Saat menentukan alamat MAC router sebagai alamat tujuan ( c8:0e:14:fd:f3:23 adalah NIC MAC dari router):

18:45:04.735375 c8:0e:14:fd:f3:23 > e0:d5:5e:c6:52:9a, ethertype IPv4 (0x0800), length 60: 192.168.178.21.23455 > 192.168.178.27.23456: UDP, length 5

Hasil ini menunjukkan bahwa router menulis ulang Sumber Alamat MAC dan mungkin menggunakan Cache-nya untuk menentukan alamat MAC tujuan yang benar untuk IP tujuan.

Bagaimana router menangani frame tempat alamat MAC dari mesin B ditentukan?

Apakah ada perbedaan antara keduanya?

Apakah ada satu cara yang disukai / benar?

T.Meyer
sumber

Jawaban:

2

Metode yang umumnya benar, jika Anda tahu bahwa mesin tujuan ada di subnet lokal, adalah dengan langsung menggunakan alamat MAC mesin tujuan (membuat pencarian ARP jika perlu). Ini akan bekerja bagaimanapun juga dari ethertype atau konten frame, dan umumnya akan mem-bypass router (akan dihubung pendek melalui switch Ethernet).

Jika frame berisi IPv4 atau IPv6, Anda dapat mengirimkannya ke router subnet, yang akan melakukan pencarian ARP dan meneruskan muatan frame ke host mana pun yang menjadi tujuan alamat IP milik. (Lagi pula, itulah router melakukan: mereka meneruskan paket IP - bahkan jika itu berarti mencerminkan mereka kembali ke antarmuka yang sama.)

Namun, mengirim paket lokal melalui router tidak efisien dan sama sekali tidak perlu dalam kebanyakan kasus. Untuk router yang lebih murah, itu mungkin berarti memiliki paket diproses oleh CPU yang sangat lambat (dibandingkan dengan kecepatan penuh switch Ethernet).

Yang mengatakan, metode kedua aku s kadang-kadang digunakan dalam praktik, bersama dengan fitur "isolasi klien" (alias "VLAN pribadi") pada sakelar dan titik akses.

grawity
sumber
2

Ingatlah bahwa Ethernet tidak memiliki router. Router adalah konsep layer 3 (layer jaringan, tempat IP hidup), yang merupakan layer di atas Ethernet, yang seharusnya tidak diketahui oleh Ethernet sendiri.

Alamat yang benar untuk diletakkan di bidang tujuan header Ethernet adalah alamat MAC Ethernet dari host tujuan.

Dalam pertanyaan Anda, Anda juga menyebutkan mengirim frame Ethernet ke host, dan ternyata frame Ethernet berisi datagram IP untuk host IP yang berbeda dari tujuan Ethernet yang Anda kirimkan. Sehingga IP host kebetulan bertindak sebagai router, dan itu merutekan IP datagram Anda untuk Anda dengan mengirimkannya kembali ke LAN Ethernet yang sama, tetapi kali ini dengan alamat tujuan Ethernet yang benar sesuai dengan alamat IP host, IP datagram adalah alamat untuk.

Spiff
sumber