# VXLAN과 MacSec으로 분산 인프라 연결하기
공공 인터넷 없이 데이터센터 간 가상 머신을 연결하려면 MacSec 암호화로 보호된 VXLAN 터널을 사용합니다. 이를 통해 최소 오버헤드로 L2 연결성을 제공합니다. 설정에는 두 제공업체가 포함됩니다: DC1 (eth0의 IP 192.0.2.135, 데이터베이스와 백업 호스팅), DC2 (ens1의 IP 198.51.100.75, 웹사이트와 백업 실행).
각 노드에서 VNI 1과 UDP 포트 4789를 사용해 VXLAN 인터페이스를 생성합니다. 예측 가능성을 위해 MAC 주소를 수동으로 설정합니다.
DC1:
sudo ip link add vxlan0 type vxlan id 1 dstport 4789 dev eth0
sudo ip link set vxlan0 up
sudo ip link set vxlan0 address de:ad:be:ef:00:01
sudo bridge fdb append to 00:00:00:00:00:00 dst 198.51.100.75 dev vxlan0
DC2:
sudo ip link add vxlan0 type vxlan id 1 dstport 4789 dev ens1
sudo ip link set vxlan0 up
sudo ip link set vxlan0 address de:ad:be:ef:00:02
sudo bridge fdb append to 00:00:00:00:00:00 dst 192.0.2.135 dev vxlan0
IP 할당 후 (예: 10.255.255.1/2), ping과 SSH로 연결성을 테스트합니다. Tcpdump에서 VXLAN 트래픽이 ICMP/TCP 패킷을 캡슐화하는 것을 확인할 수 있습니다.
MacSec으로 트래픽 암호화하기
일반 VXLAN은 기밀성을 제공하지 않습니다. MacSec (802.1AE)은 MAC 주소에 연결된 L2 암호화를 추가로 제공합니다. 오버헤드가 낮고, tcpdump에서도 트래픽이 읽을 수 없습니다.
DC1:
sudo ip link add link vxlan0 macsec0 type macsec encrypt on
sudo ip macsec add macsec0 tx sa 0 pn 1 on key 01 0123456789abcdef0123456789abcdef
sudo ip link set macsec0 up
sudo ip macsec add macsec0 rx address de:ad:be:ef:00:02 port 1
sudo ip macsec add macsec0 rx address de:ad:be:ef:00:02 port 1 sa 0 pn 1 on key 02 fedcba9876543210fedcba9876543210
sudo ip address add 192.168.255.1/24 dev macsec0
DC2:
sudo ip link add link vxlan0 macsec0 type macsec encrypt on
sudo ip macsec add macsec0 tx sa 0 pn 1 on key 02 fedcba9876543210fedcba9876543210
sudo ip link set macsec0 up
sudo ip macsec add macsec0 rx address de:ad:be:ef:00:01 port 1
sudo ip macsec add macsec0 rx address de:ad:be:ef:00:01 port 1 sa 0 pn 1 on key 01 0123456789abcdef0123456789abcdef
sudo ip address add 192.168.255.2/24 dev macsec0
Tcpdump에서 패킷은 PN과 SCI가 포함된 암호화된 802.1AE 프레임으로 나타납니다. 내부 트래픽 (ICMP, TCP)은 숨겨집니다.
MacSec의 TLS 대비 장점:
- L2 레벨에서 작동.
- 최소 오버헤드.
- 추가 프로토콜 없이 MAC에 바인딩.
세 번째 노드 확장하기
홈 랩 (DC3, enp3s0의 IP 203.0.113.52, 모니터링과 백업)을 추가하려면 동일 VNI를 재사용합니다. FDB 항목과 MacSec RX/TX 키를 추가합니다.
DC3:
sudo ip link add vxlan0 type vxlan id 1 dstport 4789 dev enp3s0
sudo ip link set vxlan0 up
sudo bridge fdb append to 00:00:00:00:00:00 dst 198.51.100.75 dev vxlan0
sudo bridge fdb append to 00:00:00:00:00:00 dst 192.0.2.135 dev vxlan0
sudo ip link add link vxlan0 macsec0 type macsec encrypt on
sudo ip macsec add macsec0 tx sa 0 pn 1 on key 03 abcdef0123456789abcdef0123456789
sudo ip link set macsec0 up
sudo ip macsec add macsec0 rx address de:ad:be:ef:00:01 port 1 sa 0 pn 1 on key 01 0123456789abcdef0123456789abcdef
sudo ip macsec add macsec0 rx address de:ad:be:ef:00:02 port 1 sa 0 pn 1 on key 02 fedcba9876543210fedcba9876543210
sudo ip address add 192.168.255.3/24 dev macsec0
DC1과 DC2에서는 다음을 추가:
- 203.0.113.52에 대한 FDB.
- 키 03과 함께 RX 주소 de:ad:be:ef:00:03.
주요 요약
- L2 연결성: VXLAN은 NAT 없이 제공업체 간 원활한 네트워킹 제공.
- 암호화: MacSec은 링크 계층에서 트래픽 보호, tcpdump에서 페이로드 숨김.
- 확장성: 새 노드는 FDB 항목과 키 추가로 참여—터널 재구축 불필요.
- 효율성: IPsec이나 WireGuard 대비 낮은 CPU/RAM 오버헤드.
- 호환성: Linux 커널 4.7+ (VXLAN), 4.6+ (MacSec) 지원.
— Editorial Team
아직 댓글이 없습니다.