Bir IP adresine ping atıp yanıt almak, o adreste çakışma olduğunu göstermez. Yalnızca bir cihazın yanıt verdiğini gösterir. IP çakışmasını doğrulamak için aynı IPv4 adresinin yerel ağda birden fazla MAC adresiyle cevap verdiğini veya aynı IP–MAC eşleşmesinin kısa aralıklarla değiştiğini görmemiz gerekir.
Bu rehberde örnek hedef adres olarak 192.168.1.50 kullanılıyor. Komutları çalıştırmadan önce hedefin sizinle aynı VLAN veya yayın alanında olduğundan emin olun. ARP tabanlı kontroller yönlendiricinin arkasındaki uzak bir ağda çalışmaz; uzak hedef için yalnızca ağ geçidinin MAC adresini görürsünüz.
Önce doğru ağ arayüzünü ve yolu bulun
Birden fazla Ethernet, Wi-Fi, VPN veya sanal ağ arayüzü varsa yanlış ARP tablosuna bakmak kolaydır. Linux’ta hedefe giden yolu şu komutla kontrol edin:
ip route get 192.168.1.50
Örnek çıktı:
192.168.1.50 dev enp1s0 src 192.168.1.20 uid 1000
cache
Burada kullanılacak arayüz enp1s0, test yapan cihazın adresi ise 192.168.1.20. Çıktıda via 192.168.1.1 gibi bir ağ geçidi görünüyorsa hedef doğrudan bağlı olmayabilir; bu durumda ARP ile hedef cihazı değil ağ geçidini incelemiş olursunuz.
Windows’ta aktif IPv4 adresini, ağ geçidini ve bağdaştırıcıyı birlikte görmek için:
ipconfig /all
Hedef IP ile istemcinin alt ağ maskesine göre aynı yerel ağda bulunup bulunmadığını kontrol edin. VPN ve sanal makine bağdaştırıcılarını fiziksel ağ kartıyla karıştırmayın.
Linux’ta IP–MAC eşleşmesini inceleyin
Linux çekirdeğinin komşu tablosu IPv4 için ARP eşleşmelerini gösterir. Önce hedefe tek paket gönderip komşu kaydının oluşmasını sağlayın, ardından kaydı okuyun:
ping -c 1 192.168.1.50
ip neigh show to 192.168.1.50 dev enp1s0
Normal bir kayıt şu biçimdedir:
192.168.1.50 lladdr 00:25:96:ff:1a:20 REACHABLE
lladdr sonrasındaki değer cihazın MAC adresidir. REACHABLE yakın zamanda doğrulanmış bir eşleşmeyi, STALE ise süresi yaşlanmış fakat hâlâ kullanılabilir bir kaydı ifade eder. Tek başına STALE durumu IP çakışması değildir. FAILED veya INCOMPLETE görülmesi de çakışmayı kanıtlamaz; cihaz kapalı, VLAN yanlış veya katman 2 erişimi kesik olabilir.
Komşu tablosunu birkaç saniye arayla tekrar okuyun:
for i in {1..6}; do
ping -c 1 -W 1 192.168.1.50 >/dev/null
ip neigh show to 192.168.1.50 dev enp1s0
sleep 2
done
Aynı IP için sırayla iki farklı MAC görünmesi güçlü bir çakışma işaretidir:
192.168.1.50 lladdr 00:25:96:ff:1a:20 REACHABLE
192.168.1.50 lladdr 3c:52:82:71:90:0d REACHABLE
192.168.1.50 lladdr 00:25:96:ff:1a:20 REACHABLE
Bu değişim yüksek erişilebilirlik kümesi, VRRP, proxy ARP veya sanal IP taşıma mekanizması tarafından bilinçli olarak oluşturuluyor olabilir. MAC adreslerinden biri ağ geçidine ya da güvenlik duvarına aitse bunu hata olarak kabul etmeden önce ağ tasarımını kontrol edin.
arping ile Duplicate Address Detection yapın
arping, aynı yerel ağda ICMP yerine ARP isteği gönderir. IP adresini bir cihaza atamadan önce kullanımda olup olmadığını sınamak için Duplicate Address Detection modu kullanılabilir:
sudo arping -D -I enp1s0 -c 3 192.168.1.50
echo $?
iputils-arping sürümünde -D testi hiç yanıt alınmazsa başarılı sayılır ve çıkış kodu 0 olur. Yanıt gelmesi, yerel ağda bir cihazın bu adresi sahiplendiğini gösterir. Bu, henüz yapılandırılmamış boş bir IP’yi kontrol ederken kullanışlıdır.
Hedef adres zaten test yaptığınız arayüze atanmışsa komut davranışı dağıtıma ve kullanılan arping paketine göre kafa karıştırabilir. Böyle bir durumda testi aynı VLAN’daki üçüncü bir Linux cihazından yapmak daha güvenlidir. Komut seçeneklerini sisteminizde arping --help ile doğrulayın; bazı dağıtımlarda aynı isimli farklı bir arping paketi bulunur.
Windows’ta ARP kaydını karşılaştırın
Windows’ta hedefe bir istek gönderdikten sonra yalnızca ilgili ARP kaydını görüntüleyin:
ping -n 1 192.168.1.50
arp -a 192.168.1.50
Örnek:
Interface: 192.168.1.20 --- 0x8
Internet Address Physical Address Type
192.168.1.50 00-25-96-ff-1a-20 dynamic
Komutu farklı zamanlarda tekrarladığınızda fiziksel adres değişiyorsa iki ayrı cihaz yanıt veriyor olabilir. Birden fazla ağ kartı bulunan bilgisayarda arp -a her bağdaştırıcı için ayrı tablo gösterebilir; doğru Interface başlığı altındaki kaydı okuyun.
Önbellekteki eski kaydı devre dışı bırakmak gerekiyorsa Yönetici olarak açılmış Komut İstemi’nde yalnızca hedef kaydı silin:
arp -d 192.168.1.50
ping -n 1 192.168.1.50
arp -a 192.168.1.50
Tüm ARP tablosunu silmek yerine tek hedefi temizlemek, diğer bağlantılara olan etkiyi sınırlar. Yine de uzak oturumla bağlı olduğunuz kritik bir sunucuda bu işlemi bakım penceresi dışında yapmayın.
Paket yakalamada iki farklı MAC arayın
Komşu tablosu sürekli değişiyorsa ARP trafiğini doğrudan izlemek daha açık kanıt verir:
sudo tcpdump -eni enp1s0 arp
Başka bir terminalden hedefe arping gönderin. Aynı who-has 192.168.1.50 isteğine farklı kaynak MAC adreslerinden yanıt gelmesi çakışmayı görünür hale getirir:
00:25:96:ff:1a:20 > ff:ff:ff:ff:ff:ff, ARP, Reply 192.168.1.50 is-at 00:25:96:ff:1a:20
3c:52:82:71:90:0d > ff:ff:ff:ff:ff:ff, ARP, Reply 192.168.1.50 is-at 3c:52:82:71:90:0d
Tek bir paket yerine birkaç istek gözlemleyin. Kablosuz istemci uykuya geçebilir, anahtarlama gecikmesi yaşanabilir veya cihaz yalnızca aralıklı yanıt verebilir.
DHCP kaydı neden tek başına yeterli değildir?
DHCP kiralama listesinde 192.168.1.50 için bir MAC adresi görmeniz yalnızca DHCP sunucusunun yaptığı atamayı gösterir. Aynı adresi elle yapılandırmış ikinci cihaz DHCP’den kiralama istemediği için bu listede görünmeyebilir.
Şu üç kaydı birlikte karşılaştırın:
- DHCP kiralamasındaki IP, MAC ve istemci adı
- Linux
ip neighveya Windowsarp -açıktısındaki MAC - Yönetilebilir switch üzerindeki MAC adres tablosunda görülen fiziksel port
MAC tablosu komutu üreticiye göre değişir. Amaç iki MAC adresinin hangi switch portlarından öğrenildiğini bulmaktır. MAC bir uplink portunda görünüyorsa sonraki switch üzerinde aramaya devam edin. Kablosuz ağda aynı iş için erişim noktası veya denetleyicinin istemci tablosuna bakılır.
Yanlış pozitifleri eleyin
| Gözlem | Çakışma dışındaki olası açıklama | Sonraki kontrol |
|---|---|---|
| IP’nin MAC adresi değişiyor | VRRP/HSRP, sanal IP veya küme failover işlemi | Gateway ve HA yapılandırmasını kontrol edin |
| Ping yanıtı var, ARP kaydı ağ geçidini gösteriyor | Hedef farklı bir alt ağda | Yönlendirme tablosunu ve hedef VLAN’ı kontrol edin |
| ARP yanıtı yalnızca güvenlik duvarından geliyor | Proxy ARP etkin | Güvenlik duvarı arayüz ve proxy ARP ayarlarını inceleyin |
| DHCP’de tek kayıt var, ağda iki MAC görülüyor | İkinci cihazda manuel IP tanımlı | Switch portundan cihazı bulun ve statik ayarı kontrol edin |
Kök nedeni düzelterek IP çakışmasını giderin
Hangi iki cihazın aynı adresi kullandığı belirlendikten sonra çözüm, adresi rastgele değiştirmek değildir. IP yönetim yöntemini düzeltin:
- Elle verilen sabit adresleri DHCP havuzunun dışına taşıyın.
- Sabit kalması gereken istemci için DHCP reservation kullanın.
- Eski veya yinelenmiş DHCP rezervasyonlarını temizleyin.
- Klonlanmış sanal makinelerde ağ yapılandırmasını ve MAC adresini kontrol edin.
- Birden fazla DHCP sunucusu varsa kapsamların birbiriyle çakışmadığını doğrulayın.
IP çakışmasının kavramsal nedenleri için IP Çakışması Nedir? yazısına bakabilirsiniz. Buradaki teşhis akışı ise değişiklik yapmadan önce gerçek cihazları ve fiziksel portları bulmaya odaklanır.
Düzeltmeyi aynı yöntemle doğrulayın
Düzeltmeden sonra test istemcisindeki yalnızca hedef komşu kaydını temizleyin ve tekrar sorgulayın:
sudo ip neigh flush to 192.168.1.50 dev enp1s0
sudo arping -I enp1s0 -c 5 192.168.1.50
ip neigh show to 192.168.1.50 dev enp1s0
Beş isteğin tamamında tek MAC adresi yanıt veriyor ve komşu tablosu artık değişmiyorsa çakışma ortadan kalkmıştır:
ARPING 192.168.1.50 from 192.168.1.20 enp1s0
Unicast reply from 192.168.1.50 [00:25:96:FF:1A:20]
Unicast reply from 192.168.1.50 [00:25:96:FF:1A:20]
Unicast reply from 192.168.1.50 [00:25:96:FF:1A:20]
Unicast reply from 192.168.1.50 [00:25:96:FF:1A:20]
Unicast reply from 192.168.1.50 [00:25:96:FF:1A:20]
192.168.1.50 lladdr 00:25:96:ff:1a:20 REACHABLE
Teknik başvuru: ip-neighbour(8), iputils arping(8) ve Microsoft arp komutu.