오늘은 우분투에서 vlan 설정을 하는 방법을 알아보겠다. KVM이나 VMware EXSI같은 다른 하이퍼바이저를 이용하면 외부 설정없이 바로 통신되는 것 같지만 VMware workstation은 그렇지 않다. 먼저 이런 부수적인 얘기는 나중에 하고 VLAN 설정하는 방법부터 알아보도록 하겠다.
VLAN 설정법
개인적으로 VLAN 설정법을 찾아보면서 예전엔 굉장히 불편하고 많은 절차를 거쳐야했다고 생각한다. 하지만 Netplan으로 변경되면서 그런 부수적인 설정을 필요없다. vmnet은 bridge를 사용하는 것을 추천하고 만약에 host-only를 이용하겠다면 읽어야 할 글이 길어진다.
vi /etc/netplan/00-~~~.yaml
ens33:
dhcp4: false
vlans:
[사용할 vlan 이름]:
id: [vlan id]
link: [vlan 통신에 이용할 물리 인터페이스]
[그 외 일반적인 물리 인터페이스 설정과 동일함]
ex ))))
vlans:
vlan.10:
id: 10
link: ens33
addresses: [192.168.10.100/24]
위와 같은 형식으로 작성한다. 굉장히 간단하고 쉽다.
VM을 통해 확인해보겠다.
VLAN 설정이 정상적으로 적용되었다면 위와같이 [지정한 vlan]@[이용하는 물리 인터페이스] 형식으로 출력된다. 여기서 생각할 점은 이렇게되면 인터페이스 이름이 [지정한 vlan]@[이용하는 물리 인터페이스] 일 것 같지만 그렇지 않다. netplan 파일에서 정의한 vlan 이름이 (위 예시에서는 vlan.10) 인터페이스의 이름이다. 따라서 dhcp 설정같은 인터페이스 지정이 필요한 곳에 입력할 때 혼동하지 말도록 하자.'
사실 VMware workstation이 아닌 window hypervisor나 kvm이라면 여기까지만 읽어도 좋다. 아 그리고 vmnet을 bridge로 설정한 사람이라면 여기까지 읽어도 좋다. 아래 사진과 같이 tcpdump를 이용하면 이쁘게 vlan.10을 이용하는 모습을 볼 수 있을테니까
하지만 굳이굳이 vmnet을 host-only로 이용하고자 하는 사람들은 안타깝지만 좀 긴 글을 읽어야한다.
host-only ?!
아까는 정상적으로 통신이 됐다. 이제 다시 vmnet을 host-only로 구성하고 vlan.10의 vm을 구성하고 ping을 보내보겠다.
아까와는 다르게 통신이 되지 않는 굉장한 이슈를 확인할 수 있다. 사진에는 더 자세하게 넣지 않겠지만 arp 통신에서부터 guest host(vm)가 vlan에서 발생하는 트래픽을 unknown format으로 삭제하고 도달할 수 없는 경향을 보인다. 왜 일까? 도대체 왜? 필자는 이 문제 때문에 2주 동안이나 구글링을 하고 원인을 찾기 위해 보고서도 정리해보고 처음으로 서버 포럼에 질문도 해보면서 별의별짓을 다 해봤다.
https://superuser.com/questions/1809901/arp-issue-with-vlan-on-vmware-workstation#1809909
위 질문이 필자가 처음으로 서버 포럼에 작성한 질문이며 돌아온 답변은 VMware는 host-only에서 vlan을 지원하지 않는다...! 뭐 반은 맞고 반은 틀린 말이다. VMware workstation에서 vlan을 지원하지 않는 것은 아니고 지원한다. 하지만 다른 ESXi 같은 툴처럼 더 세부적이고 민감한 설정은 할 수 없으며 HOST-ONLY의 VMNET이라는 vSwitch는 vlan을 지원하지 않는다. 아무튼 다시 본론으로 돌아와서 VGT MODE, 더 간단하게는 vlan id 4095를 알아야 했다. 이번 사태로 얼마나 이론이 중요한지 알았다.
vlan id 4095가 키 포인트인데 이는 무엇이고 vgt mode는 무엇일까? vmware가 vlan을 처리하는 방식 중 하나인 vgt mode는 원래 vSwitch의 역할인 vlan tagging을 guest host가 책임지도록 하는 모드이다. 이 모드를 활성화하면 vSwitch에서는 tagging이 작동하지 않고 guest vm에서 tagging된 트래픽을 포워딩만 해준다. 진짜진짜 중요한 사실이다. VMware에서 vlan을 이용하지 못하는 이유는 vmnet 이라는 이 VMware workstation의 vSwitch는 vlan tagging을 해석하지 못하기 때문인데 이 역할을 VM에게 전가하니까 통신이 가능하게 되는 것이다.
https://www.stigviewer.com/stig/vmware_esx_3_virtual_center/2016-05-03/finding/V-15809
VLAN ID 4095는 예약된 포트로 TRUNK 포트를 뜻하거나 VGT 모드를 활성화한다라는 뜻을 가진다. 따라서 HOST-ONLY가 이용중인 가상 어댑터에 VLAN ID 4095를 이용하여 VGT 모드를 활성화할 수 있다.
제어판을 실행하고
사용중인 HOST-ONLY VMNET의 어댑터를 선택한다. 속성 - 구성 - 고급 순으로 이동하면 VLAN ID 설정란이 보인다.
이를 4095로 설정하고 확인 후 닫기만 해주면된다. 이 얼마나 간단한가!!!! 나를 그렇게 스트레스 속으로 몰아넣고 최대 2013년도 블로그글 까지 찾아보게 했던 이 문제는 이 정말 간단한 VGT 모드라는 것만 알았더라도.....인강 사놓고 안보고 있던 ESXi 인강만 좀 더 찾아봤더라도 쉽게 해결되지 않았을까 하는 의문점이 든다...하하
이제 다시 위 설정을 적용하고 핑을 보낸 후 tcpdump를 이용하여 캡쳐하면 vlan을 이용하여 정상적으로 통신하는 것을 확인할 수 있다.
'네트워크 > 서버보안' 카테고리의 다른 글
Proxmox에 올라간 EVE-NG 노드와 인터넷 연결하기 (0) | 2024.05.01 |
---|---|
EVE-NG 기초 설정(노드 추가, 각종 트러블슈팅) (0) | 2024.04.27 |
ubuntu syslog 서버,라우터 (0) | 2023.03.14 |
도커와 컨테이너 (0) | 2023.03.10 |
베어메탈 (0) | 2023.03.10 |