본문 바로가기

네트워크

Cisco 장비에서 ARP 테이블과 MAC 주소 테이블을 확인하는 방법

반응형

Cisco 장비에서 ARP 테이블과 MAC 주소 테이블을 확인하는 방법

1. ARP 테이블 확인

ARP 테이블은 IP ↔ MAC 주소 매핑 정보를 보여줍니다.

show arp
Switch# show arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  192.168.1.1             3   aabb.cc00.1234  ARPA   Vlan10
Internet  192.168.1.10            5   aabb.cc00.abcd  ARPA   Vlan10

Switch# show mac address-table
          Mac Address Table
-------------------------------------------
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
  10    aabb.cc00.1234    DYNAMIC     Gi1/0/1
  10    aabb.cc00.abcd    DYNAMIC     Gi1/0/5

2. MAC 주소 테이블 확인

MAC 주소 테이블은 MAC ↔ 포트 매핑 정보를 보여줍니다.

 

Catalyst 시리즈(IOS 기반)

show mac address-table
Switch# show mac address-table
          Mac Address Table
-------------------------------------------
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
  10    aabb.cc00.1234    DYNAMIC     Gi1/0/1
  10    aabb.cc00.abcd    DYNAMIC     Gi1/0/5

특정 VLAN 확인

show mac address-table vlan 10

특정 포트 확인

show mac address-table interface Gi1/0/5
728x90

MAC 주소 확인

리눅스에서 기본 게이트웨이를 통해 나가는 인터페이스를 찾고, 그 인터페이스의 MAC 주소를 확인하는 방법입니다.

ip link show dev $(ip route show default | awk '/default/ {print $5}') | awk '/link\/ether/ {print $2}'
00:0c:29:3e:5c:7d
더보기

---

게이트웨이 인터페이스
ip route show default
인터페이스 MAC 확인
ip link show dev <iface>

---

MAC 주소 테이블 파일

$ cat main-l2.txt
 120    0004.fc40.2805    DYNAMIC     Gi1/0/15
 120    0009.0f09.021d    DYNAMIC     Te1/1/1
 130    189c.5d1f.5f18    DYNAMIC     Gi1/0/12
 140    189c.5d1f.5f40    DYNAMIC     Gi1/0/22
 150    1c98.ec27.defc    DYNAMIC     Gi1/0/20

스크립트 작성

리눅스에서 보는 MAC 주소 포맷(02:42:3c:3c:17:38)을 Cisco 스위치 포맷(xxxx.yyyy.zzzz)으로 변환해서, 스위치의 MAC 주소 테이블 파일(main-l2.txt)에서 검색하는 스크립트입니다.

vim macchange.sh
#!/bin/bash

# 사용법 확인
if [ $# -ne 1 ]; then
    echo "사용법: $0 <linux-mac>"
    echo "예: $0 02:42:3c:3c:17:38"
    exit 1
fi

LINUX_MAC=$1
FILE="main-l2.txt"

# 리눅스 MAC 주소를 소문자로 정리하고, 콜론(:) 제거
MAC_CLEAN=$(echo "$LINUX_MAC" | tr '[:upper:]' '[:lower:]' | sed 's/://g')

# Cisco 스타일 포맷 (xxxx.yyyy.zzzz)
CISCO_MAC=$(echo "$MAC_CLEAN" | sed -E 's/(.{4})(.{4})(.{4})/\1.\2.\3/')

echo "[변환된 MAC] $LINUX_MAC -> $CISCO_MAC"
echo
echo "[검색 결과]"

# main-l2.txt 에서 해당 MAC 검색
grep -i "$CISCO_MAC" "$FILE"

실행 예시

./macchange.sh 02:42:3c:3c:17:38
$ ./macchange.sh 02:42:3c:3c:17:38
[변환된 MAC] 02:42:3c:3c:17:38 -> 0242.3c3c.1738

[검색 결과]
 150    0242.3c3c.1738    DYNAMIC     Gi1/0/20

 

참고URL

- CISCO : Nexus 9000 Series ARP 및 MAC 테이블 동기화 동작 확인

 

728x90
반응형