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
주의: 이 작업은 일시적인 패킷 손실을 유발할 수 있으므로, 운영 시간 외에 수행하는 것이 안전합니다.
현장 적용 사례
- 단말기 오프라인 문제 해결: 사용자가 네트워크에 접속 불가 시, 해당 MAC 주소가 스위치에 학습되었는지 확인하여 물리 계층 이상 유무를 판단합니다.
- VLAN 격리 설정 검증: 서로 다른 VLAN 간 MAC 주소가 혼재되지 않아야 하며, 만약 교차되어 있으면 trunk 포트 설정 오류 가능성이 있습니다.
- 보안 정책 감사: 서버와 같은 중요 장비는 정적 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
실행 중인 컨테이너 목록을 확인합니다.