Linux 서버를 운영하다 보면 서버 간 통신이 되지 않거나 특정 네트워크만 접속되지 않고, Ping이나 SSH 연결이 실패하는 경우가 있습니다. 특히 스위치에 연결된 서버에서는 VLAN(Virtual LAN) 설정 오류가 이러한 문제의 주요 원인이 되는 경우가 많습니다.
VLAN은 하나의 물리적인 스위치를 여러 개의 논리적인 네트워크로 분리하는 기술입니다. VLAN 설정이 잘못되면 같은 스위치에 연결되어 있어도 서로 통신하지 못하거나, 전혀 다른 네트워크로 인식되어 서비스 장애가 발생할 수 있습니다.
이번 글에서는 Linux에서 VLAN 문제가 발생하는 원인과 확인 방법, 해결 방법을 실무 중심으로 알아보겠습니다.
VLAN이란?
VLAN은 물리적인 장비를 논리적으로 분리하여 여러 개의 네트워크처럼 사용할 수 있도록 하는 기술입니다.
예를 들어 하나의 스위치에서도 다음과 같이 여러 네트워크를 구성할 수 있습니다.
Switch
├── VLAN 10 (개발)
│ ├── Server A
│ └── Server B
│
├── VLAN 20 (운영)
│ ├── Server C
│ └── Server D
│
└── VLAN 30 (관리)
└── Admin PC
다른 VLAN에 속한 장비는 기본적으로 서로 직접 통신할 수 없습니다.
VLAN 문제가 발생하는 주요 원인
대표적인 원인은 다음과 같습니다.
- VLAN ID 설정 오류
- Access Port 설정 오류
- Trunk Port 설정 오류
- Native VLAN 불일치
- Switch 설정 오류
- VLAN Interface 미생성
- IP 주소 설정 오류
- Gateway 설정 오류
- Docker Bridge 충돌
- Kubernetes CNI 설정 오류
실무에서는 Trunk Port 설정 오류와 VLAN ID 불일치가 가장 많이 발생합니다.
1. VLAN 인터페이스 확인하기
현재 VLAN 인터페이스를 확인합니다.
ip -d link show
예시
eth0.10
eth0.20
VLAN 인터페이스가 존재하는지 확인합니다.
2. VLAN 인터페이스 생성하기
VLAN 10을 생성합니다.
ip link add link eth0 name eth0.10 type vlan id 10
활성화합니다.
ip link set eth0.10 up
IP를 설정합니다.
ip addr add 192.168.10.100/24 dev eth0.10
3. VLAN 정보 확인하기
VLAN 상세 정보를 확인합니다.
ip -d link show eth0.10
예시
vlan protocol 802.1Q
id 10
VLAN ID가 올바른지 확인합니다.
4. 인터페이스 상태 확인하기
인터페이스 상태를 확인합니다.
ip link
DOWN 상태라면
ip link set eth0 up
또는
ip link set eth0.10 up
으로 활성화합니다.
5. Routing 확인하기
라우팅 정보를 확인합니다.
ip route
VLAN 인터페이스를 통해 올바른 Gateway가 설정되어 있는지 확인합니다.
6. Ping 테스트하기
같은 VLAN 장비와 통신을 확인합니다.
ping 192.168.10.1
다른 VLAN이라면 L3 Router 또는 Layer 3 Switch를 통해 통신 가능한지도 확인합니다.
7. tcpdump로 VLAN 태그 확인하기
패킷을 분석합니다.
tcpdump -i eth0 vlan
또는
tcpdump -i eth0 -e
802.1Q VLAN Tag가 정상적으로 포함되는지 확인합니다.
8. NIC 지원 여부 확인하기
NIC 정보를 확인합니다.
ethtool eth0
또는
ip link
일부 오래된 NIC는 VLAN Offload 설정이 영향을 줄 수 있습니다.
9. Docker 및 Kubernetes 확인하기
Docker
docker network ls
Kubernetes
kubectl get nodes
Overlay Network와 VLAN 구성이 충돌하지 않는지 확인합니다.
10. 로그 확인하기
커널 로그를 확인합니다.
journalctl -k
또는
dmesg | grep -i vlan
VLAN Interface 생성 오류가 있는지 확인합니다.
VLAN 문제 점검 순서
실무에서는 다음 순서대로 점검하는 것이 좋습니다.
- VLAN 인터페이스 확인
- VLAN ID 확인
- 인터페이스 상태 확인
- Routing 확인
- Ping 테스트
- tcpdump 분석
- Switch Port 확인
- Trunk/Access 설정 확인
- Docker/Kubernetes 확인
- 로그 확인
VLAN 문제 사용 시 주의사항
다음 사항을 고려해야 합니다.
- Access Port와 Trunk Port를 구분한다.
- Native VLAN이 일치하는지 확인한다.
- VLAN ID를 정확하게 설정한다.
- Gateway도 해당 VLAN에 맞게 설정한다.
- Docker Overlay Network와 충돌 여부를 확인한다.
- Kubernetes CNI 환경도 함께 점검한다.
VLAN은 단순히 네트워크를 나누는 기능이 아니라 보안과 네트워크 관리 효율성을 높이는 핵심 기술입니다.
VLAN과 Subnet의 차이
| 항목 | VLAN | Subnet |
|---|---|---|
| 동작 계층 | Layer 2 | Layer 3 |
| 목적 | 네트워크 분리 | IP 주소 분리 |
| 기준 | VLAN ID | IP 주소 |
| 장비 | Switch | Router |
VLAN은 스위치에서 네트워크를 논리적으로 분리하는 기술이고, Subnet은 IP 주소를 논리적으로 분할하는 기술입니다.
자주 묻는 질문
VLAN ID가 다르면 통신할 수 없나요?
기본적으로는 통신할 수 없습니다. 서로 다른 VLAN 간 통신을 위해서는 Layer 3 스위치나 라우터를 통한 Inter-VLAN Routing이 필요합니다.
Trunk Port와 Access Port의 차이는 무엇인가요?
Access Port는 하나의 VLAN만 전달하며 일반 PC나 서버가 연결됩니다. Trunk Port는 여러 VLAN의 태그가 포함된 트래픽을 전달하며 스위치 간 연결이나 가상화 서버에서 주로 사용됩니다.
VLAN 인터페이스는 재부팅 후에도 유지되나요?
ip link add 명령으로 생성한 VLAN 인터페이스는 재부팅하면 사라집니다. 영구적으로 사용하려면 NetworkManager, Netplan 또는 배포판의 네트워크 설정 파일에 등록해야 합니다.
마무리
VLAN은 Linux 서버 환경과 기업 네트워크에서 매우 중요한 기술입니다. ip link, ip -d link, tcpdump, ethtool 등을 활용하면 VLAN 관련 문제를 빠르게 분석할 수 있으며, VLAN ID와 스위치 포트 설정, 라우팅 정보를 함께 점검하면 대부분의 문제를 해결할 수 있습니다.