ARP-Proxy-Scape untuk jaringan yang tumpang tindih

Pada antarmuka router, jaringan 10.0.0.0/8 digunakan secara bersamaan pada antarmuka lain dari router yang sama, potongan -potongan dari jaringan 10.0.0/8: 10.0.1.0/24 dan 10.0.2.0/24 digunakan. Pada saat yang sama, tidak ada satu host tunggal dari Networks 10.0.1.0/24 dan 10.0.2.0/24 di jaringan 10.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0/24.

The problem is that hosts from the large network 10.0.0.0/8 will not be able to communicate with hosts from networks 10.0.1.0/24 and 10.0.2.0/24, since hosts on the network 10.0.0.0/8 believe that they are in one broadcasting segment with networks 10.0.1.0/24 and 10.0.2.0/24 and will send broadcast arp the WHO-E-SIS requests for networks for Hosts 10.0.1.0/24 dan 10.0.2.0/24 yang tidak akan ada yang bisa dijawab oleh siapa pun.
Contoh ARP:
Permintaan ARP

Balas ARP:

Keputusan yang tepat No. 1. Keputusan paling sederhana No. 2 untuk memasukkan ARP-Proxy pada antarmuka router dengan jaringan 10.0.0.0/8, tetapi pada vendor yang berbeda, ARP-Proxy dapat bekerja secara berbeda. Misalnya, Juniper ARP-Proxy memiliki dua mode operasi: dibatasi dan tidak dibatasi.
Terbatas - Switch menanggapi permintaan ARP di mana jaringan fisik sumber dan target berbeda dan tidak menanggapi jika sumber dan target alamat IP berada pada subnet yang sama. Dalam mode ini, host pada subnet yang sama berkomunikasi tanpa proxy ARP. Kami menyarankan Anda menggunakan mode ini pada sakelar.
Tidak Terbatas - Switch menanggapi semua permintaan ARP untuk memiliki rute ke tujuan. Ini adalah mode default (karena mode default di Juniper Networks Junos Operating System (Junos OS) konfigurasi selain dari sakelar). Kami merekomendasikan menggunakan mode terbatas pada sakelar.
Dalam Cisco ARP-Proxy, mode default termasuk dalam mode terbatas oleh Juniper.
ARP-Proxy dalam mode terbatas tidak akan membantu kami, karena alamat IP pengirim dan alamat IP penerima akan berada di jaringan yang sama. Dimasukkannya ARP-Proxy dalam Mode Tidak Terbatas akan menyelesaikan masalah, tetapi akan menciptakan yang lain, karena ARP-Proxy menanggapi permintaan apa pun akan dipicu oleh mekanisme untuk menentukan alamat IP duplikat. Saat mengirim pesan ARP serampangan, tuan rumah akan menerima jawaban dari ARP-Proxy.
Opsi No. 3 dan No. 4 direduksi menjadi isolasi host dari satu jaringan dari satu sama lain di level L2 dan komunikasi antara host melalui L3 antarmuka router dan memerlukan perubahan pada konfigurasi peralatan jaringan, dan juga memiliki batasan dan fitur mereka sendiri.
Opsi No. 5 Untuk menulis ARP -Proxy Anda Gunakan Python3 dan Scape - alat untuk memanipulasi paket jaringan.
Kami menghubungkan host baru dengan Linux ke jaringan 10.0.0.0.0/8 di atas papan dan meluncurkan ARP-Proxy, di mana kami akan mencegat paket dengan ARP-Request di mana alamat IP dari host yang diminta memasuki jaringan 10.0.1.0/24 dan 10.0.0/24 dan menanggapi ARP-Reply Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac dari The Mac of the Gate.0.0.0.0. Akibatnya, paket yang dimaksudkan untuk jaringan 10.0.1.0/24 dan 10.0.2.0/24 akan dikirim ke jaringan jaringan 10.0.0.0/8 dan dikirim ke penerima.

Contoh log arp-proxy.py:
2017-03-12 00:35:00,984 INFO STDOUT: -----------------------------------
2017-03-12 00:35:00,985 INFO STDOUT: ARP receive:
2017-03-12 00:35:00,985 INFO STDOUT: -----------------------------------
2017-03-12 00:35:00,986 INFO STDOUT: ###[ Ethernet ]###
2017-03-12 00:35:00,986 INFO STDOUT: dst = ff:ff:ff:ff:ff:ff
2017-03-12 00:35:00,986 INFO STDOUT: src = e4:8d:8c:79:dc:2e
2017-03-12 00:35:00,986 INFO STDOUT: type = 0x806
2017-03-12 00:35:00,987 INFO STDOUT: ###[ ARP ]###
2017-03-12 00:35:00,987 INFO STDOUT: hwtype = 0x1
2017-03-12 00:35:00,987 INFO STDOUT: ptype = 0x800
2017-03-12 00:35:00,987 INFO STDOUT: hwlen = 6
2017-03-12 00:35:00,987 INFO STDOUT: plen = 4
2017-03-12 00:35:00,988 INFO STDOUT: op = who-has
2017-03-12 00:35:00,988 INFO STDOUT: hwsrc = e4:8d:8c:79:dc:2e
2017-03-12 00:35:00,988 INFO STDOUT: psrc = 10.0.0.100
2017-03-12 00:35:00,988 INFO STDOUT: hwdst = 00:00:00:00:00:00
2017-03-12 00:35:00,988 INFO STDOUT: pdst = 10.0.1.55
2017-03-12 00:35:00,988 INFO STDOUT: ###[ Padding ]###
2017-03-12 00:35:00,989 INFO STDOUT: load = 'x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00'
2017-03-12 00:35:00,989 INFO STDOUT: -----------------------------------
2017-03-12 00:35:00,989 INFO STDOUT: -----------------------------------
2017-03-12 00:35:00,989 INFO STDOUT: ARP send:
2017-03-12 00:35:00,989 INFO STDOUT: -----------------------------------
2017-03-12 00:35:00,989 INFO STDOUT: ###[ Ethernet ]###
2017-03-12 00:35:00,989 INFO STDOUT: dst = e4:8d:8c:79:dc:2e
2017-03-12 00:35:00,989 INFO STDOUT: src = 00:0c:29:85:7d:35
2017-03-12 00:35:00,990 INFO STDOUT: type = 0x806
2017-03-12 00:35:00,990 INFO STDOUT: ###[ ARP ]###
2017-03-12 00:35:00,990 INFO STDOUT: hwtype = 0x1
2017-03-12 00:35:00,990 INFO STDOUT: ptype = 0x800
2017-03-12 00:35:00,990 INFO STDOUT: hwlen = 6
2017-03-12 00:35:00,990 INFO STDOUT: plen = 4
2017-03-12 00:35:00,990 INFO STDOUT: op = is-at
2017-03-12 00:35:00,991 INFO STDOUT: hwsrc = 90:fa:3d:aa:bb:cc
2017-03-12 00:35:00,991 INFO STDOUT: psrc = 10.0.1.55
2017-03-12 00:35:00,991 INFO STDOUT: hwdst = e4:8d:8c:79:dc:2e
2017-03-12 00:35:00,991 INFO STDOUT: pdst = 10.0.0.100
2017-03-12 00:35:00,991 INFO STDOUT: -----------------------------------
Di lingkungan kami, kami menggunakan distribusi Ubuntu Server 16.04 dan SystemD modis untuk meluncurkan skrip sebagai layanan.
mkdir /opt/arp-proxy
cp ~/arp-proxy.py /opt/arp-proxy/
Buat file dengan pengaturan skrip SystemD:
touch /lib/systemd/system/arp-proxy.service
ARP-Proxy.Service
[Unit]
Description=arp-proxy for overlapped networks
[Service]
Type=simple
ExecStart=/opt/arp-proxy/arp-proxy.py enp4s0 00:05:00:05:00:05
StandardOutput=null
Restart=always
[Install]
WantedBy=multi-user.target
Untuk meluncurkan ARP-Proxy, Anda perlu menentukan nama antarmuka yang akan mendengarkan permintaan ARP dan mengirim balasan ARP dan jaringan Mac dari jaringan yang akan digunakan dalam balasan ARP
Kami mengaktifkan dan meluncurkan layanan kami:
sudo systemctl enable arp-proxy.service
sudo systemctl start arp-proxy.service
Status Layanan:
sudo systemctl status arp-proxy.service
● arp-proxy.service - arp-proxy for overlapped networks
Loaded: loaded (/lib/systemd/system/arp-proxy.service; enabled; vendor preset: enabled)
Active: active (running) since Вс 2017-03-12 18:41:01 MSK; 7s ago
Main PID: 10294 (python3)
Tasks: 1
Memory: 18.6M
CPU: 981ms
CGroup: /system.slice/arp-proxy.service
└─10294 python3 /opt/arp-proxy/arp-proxy.py enp4s0 00:05:00:05:00:05
Kelola Layanan di SystemD
Instalasi scapy:
sudo pip3 install scapy-python3
Dokumentasi scape
Scape doc pdf