重疊網絡的ARP-Proxy-Scape

在路由器的界面上,網絡10.0.0.0/8同時在同一路由器的其他接口上使用網絡,網絡10.0.0.0/8:10.0.0.1.0/24和10.0.2.0.2.0.0.2.0/24使用。同時,網絡10.0.1.0/24和10.0.2.0/24網絡上沒有一個主機。

問題在於,來自大型網絡10.0.0.0.0/8的主機將無法與網絡10.0.1.0/24和10.0.2.0/24的主機進行溝通,因為網絡上的主機10.0.0.0.0/8相信他們在一個廣播中都在一個廣播段中,網絡請求10.0.1.1.0.1.0/24和10.0.2.2.2.2.2.2.0/24和SERS,該網絡將播出who的範圍。 10.0.1.0/24和10.0.2.0/24,沒有人可以回答。
ARP的一個例子:
ARP請求

ARP回复:

正確的決策編號1。最簡單的決策,即使用網絡10.0.0.0/8在路由器接口上包括ARP-Proxy的最簡單決定,但是在不同的供應商中,ARP-Proxy可以用不同的方式工作。例如,Juniper ARP-Proxy具有兩種操作模式:受限制和無限制。
限制 - 開關響應源和目標的物理網絡不同的ARP請求,如果源和目標IP地址在同一子網上,源和目標是不同的。在此模式下,在同一子網上的主機在沒有代理ARP的情況下進行通信。我們建議您在開關上使用此模式。
不受限制的 - 開關響應所有ARP請求,都有通往目的地的路線。這是默認模式(因為它是杜松網絡中的默認模式Junos操作系統(Junos OS)配置以外的其他模式)。我們在開關上使用限制模式推薦。
在Cisco ARP-Proxy中,Juniper在限制模式中包含默認模式。
在限制模式下的ARP-Proxy將無濟於事,因為發件人的IP地址和收件人的IP地址將在同一網絡上。在不受限制的模式下包含ARP-Proxy將解決該問題,但會創建另一個,因為ARP-Proxy對任何請求的響應將由確定重複IP地址的機制觸發。在發送免費的ARP消息時,主機將收到ARP-Proxy的答案。
第3號和第4號的選項將減少為在L2級別隔離一個網絡的主機,並通過路由器界面的L3之間的通信,並需要更改網絡設備的配置,並且還具有自己的限制和功能。
第5號選項編寫您的arp -proxy使用python3和spape - 一種操縱網絡軟件包的工具。
We connect a new host with Linux to the network 10.0.0.0.0/8 on board and launched ARP-Proxy, where we will intercept the packages with ARP-Request in which the IP address of the requested host enters the network 10.0.1.0/24 and 10.0.2.0/24 and respond to them Arp-Reply with the MAC address of the gateway of 10.0.0.0/8.結果,旨在用於網絡10.0.1.0/24和10.0.2.0/24的軟件包將發送到網絡10.0.0.0/8的網絡並交付給收件人。

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: -----------------------------------
在我們的環境中,我們使用Ubuntu Server 16.04分發和SystemD時尚播放腳本作為服務。
mkdir /opt/arp-proxy
cp ~/arp-proxy.py /opt/arp-proxy/
使用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
要啟動ARP-Proxy,您需要指定將收聽ARP請求的接口名稱,並發送ARP回復和將在ARP中使用的網絡的Mac網絡
我們激活並啟動我們的服務:
sudo systemctl enable arp-proxy.service
sudo systemctl start arp-proxy.service
服務狀態:
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
管理SystemD中的服務
Scapy安裝:
sudo pip3 install scapy-python3
替代文檔
Scape Doc PDF