IT 정보/네트워크 스위치

🛠️ 실무 팁(중급): 다산 스위치 'MAC Address Table' 자동 백업 및 모니터링

DONOT 2025. 6. 17. 16:24
MAC 주소 테이블 자동 백업으로 네트워크 장애 대응력 강화
다산 MAC Address Table
다산 스위치에서 MAC Address Table을 주기적으로 백업하고
변경 사항을 모니터링하는 파이썬 자동화 스크립트 실전 예제입니다.
네트워크 장애 분석과 보안 이상 탐지에 매우 유용합니다.

실전 코드 예시
import paramiko
import json
from datetime import datetime

def backup_mac_table(switch_ip, username, password):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(switch_ip, username=username, password=password)

stdin, stdout, stderr = ssh.exec_command("show mac address-table")
mac_table = stdout.read().decode('utf-8')

# 타임스탬프와 함께 백업 저장
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
backup_file = f"mac_table_{switch_ip}_{timestamp}.txt"

with open(backup_file, 'w') as f:
    f.write(mac_table)

# MAC 주소 변경 감지 로직
mac_entries = parse_mac_table(mac_table)
detect_mac_changes(switch_ip, mac_entries)

ssh.close()
return backup_file

def parse_mac_table(mac_output):
mac_entries = []
lines = mac_output.split('\n')
for line in lines:
if len(line.split()) >= 4:
vlan, mac, type_info, port = line.split()[:4]
mac_entries.append({
'vlan': vlan,
'mac': mac,
'type': type_info,
'port': port
})
return mac_entries

def detect_mac_changes(switch_ip, current_macs):
# 이전 백업과 비교하여 변경사항 탐지
# 새로운 MAC, 사라진 MAC, 포트 변경 등을 체크
print(f"MAC Table backup completed for {switch_ip}")




실무 적용 포인트

  • 정기적인 MAC 테이블 백업으로 네트워크 상태 이력 관리
  • MAC 주소 변경 감지로 보안 이상 징후 조기 발견
  • 장애 발생 시 이전 상태와 비교 분석으로 신속한 원인 파악

MAC 테이블 자동 백업으로 네트워크 운영의 가시성을 높이세요!
반응형