VLAN별 MAC 주소 테이블 분석을 통한 네트워크 문제 진단 및 Spring Boot 기반 Docker 이미지 생성과 실행

VLAN 기반 MAC 주소 테이블 확인 방법

display mac-address vlan [vlan-id] 명령어는 스위치와 같은 네트워크 장비에서 특정 VLAN에 속한 디바이스들의 MAC 주소 정보를 조회할 때 사용됩니다. 이 테이블은 장비가 어떤 포트를 통해 어떤 MAC 주소를 학습했는지를 기록하며, 네트워크 연결 상태를 점검하거나 설정 오류를 추적하는 데 중요한 역할을 합니다.

주요 활용 사례는 다음과 같습니다:

  • VLAN 내 디바이스의 물리적 연결 여부 확인
  • MAC 주소 학습 정상 동작 검증
  • ARP 충돌 또는 중복 MAC 문제 진단

출력 예시 및 필드 설명

명령어 display mac-address vlan 10 실행 시 아래와 같은 결과가 나타날 수 있습니다.

MAC Address       VLAN ID   Interface               Type
------------------------------------------------------------
00:11:22:33:44:55   10        GigabitEthernet0/0/1    Dynamic
AA:BB:CC:DD:EE:FF   10        GigabitEthernet0/0/2    Static

각 열의 의미는 다음과 같습니다:

  • MAC Address: 네트워크 인터페이스의 고유 물리 주소
  • VLAN ID: 해당 주소가 속한 가상 로컬 네트워크 식별자
  • Interface: MAC 주소가 감지된 포트 이름
  • Type: Dynamic은 자동 학습된 항목, Static은 관리자가 수동 등록한 항목을 의미함

실무 기반 질문 및 해설

문제 1: VLAN 20에 등록된 모든 MAC 주소를 보려면 어떻게 하나요?

해당 VLAN의 MAC 테이블을 출력하면 됩니다.

display mac-address vlan 20

이 명령은 VLAN 20에 포함된 모든 MAC 주소와 연결 포트를 나열하여, 네트워크 구성의 일관성을 검토할 수 있게 해줍니다.

문제 2: 동적과 정적 MAC 항목을 어떻게 구분하나요?

결과 출력에서 Type 컬럼을 확인합니다. Dynamic은 트래픽을 통해 자동으로 등록된 것이며, 일정 시간 후 만료될 수 있습니다. 반면 Static은 수동 설정되어 재부팅 시에도 유지되며, 보안 정책이나 고정 매핑에 사용됩니다.

문제 3: 특정 단말기가 올바른 VLAN에 연결되었는지 어떻게 확인하나요?

해당 단말기의 MAC 주소를 확인한 후, 다음 명령으로 검색합니다.

display mac-address vlan 10 | include 00:11:22:33:44:55

결과에 주소가 존재하면 정상 연결된 것으로 판단할 수 있고, 없을 경우 포트 VLAN 설정 오류, 케이블 미연결, 또는 장비 비활성화 등을 의심해야 합니다.

문제 4: VLAN 10의 동적 MAC 항목을 초기화하려면?

일부 장비에서는 아래 명령으로 동적 학습 항목을 삭제할 수 있습니다.

reset mac-address vlan 10

주의: 이 작업은 일시적인 패킷 손실을 유발할 수 있으므로, 운영 시간 외에 수행하는 것이 안전합니다.

현장 적용 사례

  1. 단말기 오프라인 문제 해결: 사용자가 네트워크에 접속 불가 시, 해당 MAC 주소가 스위치에 학습되었는지 확인하여 물리 계층 이상 유무를 판단합니다.
  2. VLAN 격리 설정 검증: 서로 다른 VLAN 간 MAC 주소가 혼재되지 않아야 하며, 만약 교차되어 있으면 trunk 포트 설정 오류 가능성이 있습니다.
  3. 보안 정책 감사: 서버와 같은 중요 장비는 정적 MAC 바인딩이 되어 있어야 하며, 이를 명령어로 확인하여 무단 장치 연결을 방지합니다.

관련 보조 명령어

  • 모든 VLAN의 MAC 주소 보기:
    display mac-address
  • 특정 인터페이스에 연결된 MAC 주소 필터링:
    display mac-address interface GigabitEthernet0/0/1
  • MAC 주소 만료 시간 확인:
    display mac-address aging-time

Spring Boot 애플리케이션을 도커 이미지로 패키징하고 실행하기

Docker 환경에서 간단한 "Hello World" 스프링 부트 애플리케이션을 만들고 컨테이너로 실행하는 과정을 소개합니다.

1. 프로젝트 생성

start.spring.io에서 아래 설정으로 프로젝트를 다운로드합니다.

  • Project: Maven
  • Language: Java
  • Spring Boot 버전: 최신 안정판
  • Dependencies: Spring Web

2. Hello Controller 작성

package com.example.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    
    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, Docker World!";
    }
}

3. 빌드 및 JAR 파일 생성

./mvnw clean package

빌드 후 target/demo-0.0.1-SNAPSHOT.jar 파일이 생성됩니다.

4. Dockerfile 작성

프로젝트 루트에 Dockerfile 생성:

FROM openjdk:17-jre-slim
WORKDIR /app
COPY target/demo-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]

5. 도커 이미지 빌드

docker build -t spring-hello .

6. 컨테이너 실행

docker run -d -p 8080:8080 --name hello-container spring-hello

브라우저에서 http://localhost:8080/hello 접속 시 응답 확인 가능.

7. 컨테이너 상태 확인

docker ps

실행 중인 컨테이너 목록을 확인합니다.

태그: MAC address table VLAN troubleshooting docker Spring Boot network diagnostics

6월 23일 20:47에 게시됨