Saya telah membuka antarmuka dummy di laptop (Ubuntu 15.10) saya dengan alamat ip 10.0.3.144, netmask 255.255.255.255
Saya memiliki USB - & gt; Adaptor ethernet. Ketika dicolokkan dalam hal ini, dikonfigurasi untuk menyediakan antarmuka "eth0", yang mendapatkan alamat IP-nya melalui DHCP dalam kisaran 10.0.3.2 - 10.0.3.10 (netmask 255.255.255.0)
Saya perhatikan bahwa ketika eth0 muncul - misalnya pada 10.0.3.2, mesin lain dapat mencapai 10.0.3.144 - ini adalah perilaku yang diinginkan, tetapi Saya tidak mengerti persis MENGAPA ini terjadi. Saya tidak memiliki jenis bridging yang diatur, jadi saya akan berpikir bahwa mesin tidak akan menjawab untuk antarmuka dummy.
Saya bisa melihat permintaan arp dan balasan pada antarmuka et laptop -
tcpdump -n -i eth0 arp tcpdump: keluaran verbose ditekan, gunakan -v atau -vv untuk dekode protokol lengkap mendengarkan pada eth0, tipe tautan EN10MB (Ethernet), ukuran tangkapan 262144 byte
tcpdump -n -i eth0 arp
14:01:31.948781 ARP, Request who-has 10.0.3.144 tell 10.0.3.254, length 48
14:01:31.948842 ARP, Reply 10.0.3.144 is-at 00:23:55:9c:52:31, length 28
Perilaku ini dapat diulang jika saya menghapus entri ARP pada 10.0.3.254 (yang kebetulan merupakan router juga menjalankan Linux)
Adakah yang bisa menyarankan jika saya bisa mengandalkan perilaku ini? (dan mengapa komputer akan menjawab pada antarmuka untuk alamat IP yang tidak terikat padanya - dan terkait - akankah ini berpotensi, dalam keadaan tertentu, menambah routing dalam skenario di mana ada beberapa antarmuka pada subnet dan paket yang berbeda harus dipaksa untuk melintasi firewall?).
Jawaban:
Itu belum tentu benar pada host Linux.
Alamat IP secara default adalah milik host Linux, bukan antarmuka.
Lihat Linux menganggap alamat IP sebagai milik host dan bukan antarmuka
"Fitur" Linux ini kadang-kadang disebut sebagai "masalah fluks ARP", dan dijelaskan di bagian 2.1.4 dari Address Resolution Protocol (ARP)
Ada beberapa metode untuk mengubah perilaku ini di Linux. Di masa lalu saya telah menambal kernel untuk menghilangkannya. Metode lain kurang mengganggu, seperti yang disebutkan dalam LVS HOWTO .
Jika Anda tidak melakukan apa pun, maka perilaku ARP ini harus konsisten.
sumber
Perangkat lain percaya bahwa 10.0.3.144 adalah bagian dari jaringan. Subnet mask 255.255.255.255 (a.k.a. / 24) menentukan ukuran jaringan dari 256 alamat. Dengan cara subnet diletakkan, subnet 256-address yang berisi 10.0.3.2-10.0.3.10 adalah subnet yang berjalan dari 10.0.3.0 hingga 10.0.3.255. Jadi, ketika perangkat lain mencoba berkomunikasi dengan 10.0.3.144, maka alamat itu tampaknya menjadi bagian dari subnet yang sama. Akibatnya, perangkat lain akan mencoba berkomunikasi menggunakan Layer 2 (ARP, Ethernet / WiFi), bukan Layer 3 (routing menggunakan IPv4 / IPv6).
Komputer yang menerima lalu lintas Layer 2 mengenali 10.0.3.144 sebagai bagian dari subnet yang digunakannya. Jadi komputer memperhatikan lalu lintas, yang ditujukan ke komputer. Mungkin di kemudian hari, komputer bahkan mungkin menyadari bahwa 10.0.3.144 adalah alamat IP yang ada di NIC lainnya. Karena Networking diimplementasikan dengan komponen perangkat lunak yang berbeda, dirancang untuk menangani satu atau lebih "lapisan" dari model OSI, sangat mungkin bahwa komponen yang mengenali 10.0.3.144 sebagai alamat IP Layer 3 tidak set instruksi / kode / pemrograman yang menentukan bahwa alamat ARP dapat diterima.
Memahami bahwa komputer biasanya tidak memiliki alamat IP di seluruh sistem. Port jaringan memiliki alamat IP. Jadi setiap kartu jaringan biasanya mendapatkan alamat IP sendiri.
Jika Anda tidak ingin kartu jaringan kedua menerima lalu lintas, Anda mungkin perlu melakukan satu atau lebih dari hal-hal ini:
Untuk menjawab pertanyaan lain: Menjembatani sering dapat dianggap sebagai "penerusan Layer 2". Penerusan Layer 3 juga bisa mengakibatkan lalu lintas menyeberang ke NIC lain, bahkan jika Anda tidak menggunakan bridging Layer 2.
Mengenai apakah Anda bisa mengandalkan perilaku: Saya yakin begitu. Tetapi Anda harus memahaminya, dan mengajukan pertanyaan sampai Anda melakukannya. Setelah Anda memahami bagaimana hal-hal seharusnya bekerja, Anda dapat memverifikasi apakah itu yang terjadi; jika demikian, itu seharusnya agak dapat diandalkan. Jika masih ada misteri, maka kejutan mungkin terjadi, jadi pastikan untuk terus bertanya tentang apa pun yang masih belum jelas.
sumber