상세 컨텐츠

본문 제목

25.03.11. VLAN 구성, 서브인터페이스 및 802.1Q 캡슐화 설정과 NAT 및 웹 서버 구성 실습

AWS CLOUD SCHOOL 9기

by AI Engineer crystal 2025. 3. 11. 09:41

본문

1. Underlay Network in Cloud

Underlay Network는 클라우드 데이터 센터의 실제 물리적 네트워크 인프라를 의미합니다. 클라우드 서비스 제공업체는 데이터 센터 내에서 라우터, 스위치, 서버 및 연결된 네트워크 장비를 사용하여 물리적 네트워크를 구축합니다. 클라우드에서 Underlay Network는 물리적 장비를 통해 데이터를 전송하고, 클라우드 환경 내에서 서로 다른 데이터 센터나 가상 네트워크 간에 실제 트래픽을 전달합니다.

  • 특징:
    • 물리적 네트워크 인프라로 구성되며, 실제 패킷 전송이 이루어집니다.
    • 데이터 센터 내에서 IP 주소라우팅 프로토콜을 사용하여 경로를 설정하고 데이터를 전송합니다.
    • 주로 라우터, 스위치, 케이블 등 물리적 네트워크 장비가 포함됩니다.

예시:

  • 클라우드 데이터 센터에서 서버 간 연결을 위한 물리적 네트워크 경로가 Underlay Network에 해당합니다.
  • 클라우드 서비스 제공업체들이 사용하는 백본 네트워크는 클라우드 고객들이 인식하지 못하는 물리적 네트워크 인프라입니다.

2. Overlay Network in Cloud

Overlay NetworkUnderlay Network 위에 구축된 가상 네트워크로, 클라우드에서는 가상화된 네트워크 서비스를 제공합니다. Overlay Network는 터널링 기술을 사용하여, 실제 물리적 네트워크와 별개로 가상 네트워크를 구성하고, 서로 다른 클라우드 리소스나 가상 머신 간의 트래픽을 안전하게 전송합니다.

  • 특징:
    • 가상 네트워크는 터널링 기술을 사용하여 물리적 네트워크(Underlay Network) 상에서 가상화된 네트워크 경로를 제공합니다.
    • VXLAN, GRE, MPLS, VPN 등 터널링 프로토콜을 사용하여 캡슐화된 패킷을 전달합니다.
    • 가상 머신, 컨테이너, 그리고 가상 네트워크 장비들 간의 네트워크 연결을 관리합니다.

예시:

  • 클라우드에서 VXLAN을 사용하면, 여러 개의 가상 네트워크(예: 각 클라우드 사용자 또는 서비스마다 별도의 네트워크)를 하나의 물리적 네트워크(Underlay) 위에 격리된 가상 네트워크로 확장할 수 있습니다.
  • VPN 또는 GRE 터널을 이용해, 다양한 클라우드 리전(Region) 간에 가상 네트워크를 안전하게 연결할 수 있습니다.

3. 터널링을 통한 Underlay와 Overlay 네트워크 연결

터널링 기술을 사용하면 Overlay NetworkUnderlay Network의 물리적 경로를 기반으로 데이터를 안전하게 전송할 수 있습니다. 터널을 통해 가상화된 패킷이 물리적인 네트워크를 지나가며, 두 네트워크는 서로 독립적으로 운영됩니다.

주요 터널링 기술:

1. VXLAN (Virtual Extensible LAN):

  • VXLANL2 네트워크를 L3 네트워크 상에서 확장하는 기술입니다. VXLAN을 사용하면, 물리적 네트워크(Underlay)를 사용하여 여러 데이터 센터나 가상 네트워크(Virtual Network) 간의 연결을 확장할 수 있습니다.
  • 패킷 캡슐화: VXLAN은 기존의 Ethernet 프레임을 UDP 패킷으로 캡슐화하여 L3 네트워크 상에서 전달합니다. 이렇게 하면 물리적으로 분리된 네트워크 간에 Layer 2 네트워크가 확장됩니다.

2. GRE (Generic Routing Encapsulation):

  • L3 네트워크 상에서 다른 프로토콜을 캡슐화하는 터널링 기술입니다. GRE는 데이터 패킷을 다른 프로토콜의 헤더로 감싸서 목적지로 전달합니다.
  • 캡슐화된 원본 데이터 (Payload):
    • GRE는 데이터를 캡슐화하는 데 사용되며, 원본 데이터L3 패킷 또는 L4 데이터일 수 있습니다. 이 원본 데이터는 TCP, UDP, IP와 같은 여러 프로토콜을 포함할 수 있습니다.
    • 이 원본 데이터는 GRE 터널을 통해 캡슐화되며, 터널링된 데이터GRE 헤더IP 헤더로 감싸집니다.
  • IP 헤더 (L3):
    • GRE 캡슐화된 데이터는 **L3 (네트워크 계층)**에서 전송되므로, 원본 데이터 위에 새로운 IP 헤더가 추가됩니다. 이 IP 헤더출발지 IP목적지 IP를 포함하여, L3 네트워크를 통해 데이터를 목적지로 전달하는 역할을 합니다.
    • IP 헤더는 실제 GRE 터널링 데이터가 네트워크를 통해 라우터를 거쳐 전송될 수 있도록 합니다.
  • GRE 헤더:
    • GRE 헤더는 캡슐화된 원본 데이터L3 패킷으로 전달하는 데 필요한 정보를 담고 있습니다. 이 GRE 헤더에는 출발지와 목적지 IP 주소와 같은 정보가 포함됩니다.
    • GRE 헤더는 데이터를 캡슐화하고, 터널을 형성하여 데이터를 목적지까지 안전하게 전달할 수 있게 합니다.
  • 디캡슐화 (Unwrapping):
    • GRE 터널을 통해 목적지에 도달하면, 수신 측에서는 디캡슐화 과정이 진행됩니다.
    • 디캡슐화는 GRE 헤더IP 헤더를 제거하고, 원래의 캡슐화된 데이터를 복원하는 과정입니다. 이렇게 되면 원본 데이터가 다시 L3 또는 L4 형식으로 복원됩니다.

3. VPN (Virtual Private Network):

  • VPN은 공용 네트워크(예: 인터넷)를 사용하여 두 지점 간 안전한 통신을 가능하게 하는 기술입니다. VPN은 터널링을 사용하여 데이터를 **암호화(Encryption)**하고, 이를 통해 보안을 강화합니다. VPN은 주로 GRE, IPsec, SSL 등을 사용하여 터널을 생성하고, 이 터널을 통해 데이터를 안전하게 전송합니다.

VPN 구성 요소:

  • 터널: 공용 네트워크(인터넷) 내에서 암호화된 안전한 경로를 제공합니다.
  • 암호화(Encryption): 패킷의 내용을 기밀성을 유지하기 위해 암호화합니다.
  • 인증(Authentication): 패킷의 송수신자가 신뢰할 수 있는지 확인합니다.
  • 해시(Hash): 데이터의 무결성을 확인하는 데 사용됩니다. 패킷의 내용이 변경되지 않았는지 확인합니다.

4. 클라우드에서 Underlay와 Overlay 네트워크의 활용

  • Underlay 네트워크는 클라우드 서비스 제공업체가 직접 관리하는 물리적 네트워크 인프라입니다. 클라우드의 데이터 센터 및 리전 간의 연결, 서버 간의 트래픽 전달 등이 이루어집니다.
  • Overlay 네트워크는 가상화된 네트워크로, 클라우드 고객이 관리하는 가상 네트워크 환경을 제공합니다. 이를 통해 클라우드 리소스들은 서로 독립적으로 운용되며, 보안트래픽 분리가 강화됩니다.

예시 1: 하이브리드 클라우드 환경

  • 온프레미스 데이터 센터와 클라우드 환경 간에 GRE 터널을 설정하여 두 네트워크 간에 안전한 연결을 제공합니다. 이 터널을 통해 클라우드 리전과 온프레미스 네트워크 간에 안전한 Overlay 네트워크를 구축합니다.

예시 2: 멀티 클라우드 환경

  • 여러 클라우드 제공업체(예: AWS, Azure, GCP) 간에 VXLAN을 사용하여 Overlay 네트워크를 설정합니다. 이 경우, 각 클라우드 환경은 물리적인 Underlay 네트워크 상에 서로 다른 VNI를 사용하여 서로 다른 가상 네트워크를 연결합니다.

예시 3: 회사 데이터베이스와 네트워크 보안

배경: 회사는 외부 지사본사에서 데이터베이스에 접근하려고 합니다. 이때, 데이터베이스의 정보는 중요한 기밀 정보이므로 외부에서 안전하게 접근할 수 있는 방법이 필요합니다.

1. VPN을 이용한 보안 연결

문제: 외부 지사에서 본사 네트워크 내 데이터베이스 서버에 접근하려면, 공용 인터넷을 통해 연결하게 됩니다. 그러나 공용 인터넷을 통해 연결하는 것은 보안상 위험이 있습니다.

해결 방법: VPN을 사용하여, 외부 지사와 본사 간에 암호화된 터널을 생성합니다. 이 터널을 통해 외부 지사에서 본사 데이터베이스 서버에 안전하게 연결할 수 있습니다.

  • 암호화: VPN은 모든 패킷을 암호화하여 전송하므로, 외부에서의 패킷 도청을 방지할 수 있습니다.
  • 인증: VPN 연결 시, 외부 지사는 디지털 인증서사용자 비밀번호를 통해 본인 인증을 거쳐야만 연결이 가능하므로, 사용자 인증을 강화할 수 있습니다.

2. GRE 터널링을 통한 안전한 패킷 전송

문제: VPN을 사용해도 회사 내 여러 서버들(예: 파일 서버, 애플리케이션 서버 등) 간의 패킷 전송을 안전하게 하기 위해 추가적인 보안이 필요할 수 있습니다.

해결 방법: GRE 터널을 사용하여, 다양한 서버 간에 데이터를 캡슐화하여 안전하게 전송합니다.

  • GRE 터널L3 네트워크 상에서 데이터 패킷을 캡슐화하여 안전하게 전송할 수 있게 해줍니다.
  • 패킷 캡슐화: 데이터베이스 서버에서 발생한 데이터 요청을 GRE 터널로 캡슐화하여 다른 서버로 전달하는 방식으로 안전한 데이터 전송이 이루어집니다.

3. VXLAN을 통한 가상화된 네트워크 연결

문제: 회사의 데이터베이스 서버가 가상화 환경에 배치되어 있고, 여러 개의 데이터베이스 서버가 분산되어 있는 경우, 이를 하나의 가상 네트워크로 묶어서 관리해야 할 필요가 있습니다.

해결 방법: VXLAN을 사용하여, 서로 다른 데이터베이스 서버들이 물리적으로 다른 네트워크에 있을 때에도 가상 네트워크로 연결하고, 각 서버를 하나의 큰 가상 네트워크에 속하게 만들어 관리할 수 있습니다.

  • VXLANL2 네트워크L3 네트워크 상에서 확장하여, 물리적으로 떨어져 있는 데이터베이스 서버들을 하나의 가상 네트워크로 묶어줍니다.
  • 데이터베이스 서버 간 통신VXLAN을 통해 이루어지므로, 네트워크 세분화효율적인 리소스 관리가 가능합니다.

4. VLAN을 통한 네트워크 분리

문제: 회사 내에서 다양한 부서가 데이터를 다루고 있는데, 각 부서가 데이터베이스에 접근하는 것을 별도의 네트워크로 관리하여 보안을 강화하고 싶습니다.

해결 방법: VLAN을 사용하여, 각 부서마다 별도의 네트워크를 구성하고, 이 네트워크들 간의 트래픽을 분리하여 보안을 강화할 수 있습니다.

  • VLAN은 네트워크를 논리적으로 구분하여, 예를 들어 인사 부서, 회계 부서, 개발 부서 등 각 부서마다 별도의 VLAN을 할당합니다.
  • 부서별 트래픽 분리를 통해, 각 부서의 네트워크가 격리되고, 한 부서의 네트워크가 침해되더라도 다른 부서에 영향을 미치지 않도록 합니다.

  • L4 (Transport Layer) - Segment
    • L4 계층은 전송 계층으로, 데이터를 세그먼트 단위로 나누어 송수신합니다.
    • 대표적인 프로토콜: TCP, UDP
    • 데이터가 세그먼트로 나뉘어지며, 포트 번호를 통해 응용 프로그램 간에 통신을 구분합니다.
  • L3 (Network Layer) - Packet
    • L3 계층은 네트워크 계층으로, 데이터를 패킷 단위로 전달합니다.
    • 라우터가 이 계층의 장비로, IP 주소를 사용하여 패킷을 네트워크 간에 전달하고 경로 설정을 담당합니다.
    • 네트워크 구분/연결을 담당하며, 물리적 인터페이스별로 네트워크를 구분할 수 있습니다. (예: 서로 다른 서브넷 간의 라우팅)
  • L2 (Data Link Layer) - Frame (Ethernet/MAC)
    • L2 계층은 데이터 링크 계층으로, 데이터를 프레임 단위로 처리합니다.
    • 스위치가 이 계층의 장비로, MAC 주소를 이용하여 동일 네트워크 내의 노드를 연결합니다.
    • VLAN을 사용하여 가상 네트워크를 만들 수 있습니다. 이때, 1개 네트워크1개 서브넷, 1개 브로드캐스트 도메인과 연결됩니다.
    • ARP(주소 확인 프로토콜)는 MAC 주소를 찾기 위해 사용되며, 같은 네트워크 내에서 MAC 주소를 알아내기 위해 발생합니다.

실습) VLAN 생성, 인터페이스 설정, 서브인터페이스 및 802.1Q 캡슐화 구성 실습

### vlan 생성 ###
SW1# vlan dat
SW1(vlan)# vlan 10 name SALES
VLAN 10 added:
    Name: SALES
SW1(vlan)# vlan 20 name ENG
VLAN 20 added:
    Name: ENG
SW1(vlan)# exit
APPLY completed.
Exiting....

### 인터페이스 설정 ###
SW1# config t
SW1(config)# int f1/11
SW1(config-if)# switchport mode access
SW1(config-if)# switchport access vlan 10
SW1(config-if)# int f1/12
SW1(config-if)# sw mode access
SW1(config-if)# sw acc vlan 20
SW1(config-if)# int f1/10
SW1(config-if)# sw mode trunk

### 서브인터페이스 생성 ###
R1(config)# int f0/1
R1(config-if)# no sh
R1(config-if)# int f0/1.10

### 802.1Q 캡슐화 설정###
R1(config-subif)# encap dot1q 10

### IP 주소 할당 ###
R1(config-subif)# ip add 172.31.1.1 255.255.255.0

→ 트렁크 포트가 설정되지 않으면, 스위치 간에 VLAN 정보가 전달되지 않기 때문에, 같은 VLAN에 속한 장치들끼리도 통신이 불가능합니다. 트렁크 포트를 설정하여 스위치 간에 여러 VLAN의 트래픽이 전달되도록 해야만, VLAN에 속한 장치들끼리 통신이 가능합니다.


실습) 정적 NAT 및 웹 서버 설정을 통한 외부 접근 구성과 SSH 연결 설정

1. 웹 서버 설정 (172.16.2.111에서 웹 서버 실행)

  • 목표: 172.16.2.111에서 외부 접속 시 "HELLO ALL" 메시지가 보이도록 웹 서버 설정.
  1. echo 명령어를 사용하여 /var/www/html/index.html 파일에 "HELLO ALL"을 작성합니다.
  2. echo "hello all" | sudo tee /var/www/html/index.html

2. SSH 서버 설정 (172.16.2.111에서 SSH 접속 허용)

  • 목표: 172.16.2.111에서 SSH 접속 시 패스워드 인증을 허용하도록 설정.
  1. /etc/ssh/sshd_config 파일을 편집하여 패스워드 인증을 활성화합니다.
  2. sudo vi /etc/ssh/sshd_config
  3. PasswordAuthentication 옵션을 yes로 설정합니다.
  4. PasswordAuthentication yes
  5. 변경사항을 적용하기 위해 SSH 서비스를 재시작합니다.
  6. sudo systemctl restart sshd

3. 정적 NAT (Static NAT) 설정 (R1 라우터에서)

  • 목표: 172.16.2.111을 211.183.3.112로 매핑하여 외부에서 211.183.3.112로 접속 시 내부 172.16.2.111로 라우팅되도록 설정.
  1. R1 라우터에서 정적 NAT 설정을 추가합니다. 이는 외부 IP(211.183.3.112)를 내부 IP(172.16.2.111)와 1:1로 매핑하는 설정입니다.
  2. R1(config)# ip nat inside source static 172.16.2.111 211.183.3.112

라우터가 패킷을 처리하는 방법

NAT(Network Address Translation)

  • 내부 네트워크의 IP 주소를 외부 공인 IP 주소로 변환하여 인터넷에 접근하도록 지원.
  • 내부 주소를 숨기고 보안을 강화
  • 비용 감소
  • 코드변경 감소

정적 NAT

  1. 1:1 매핑(단순한 구성)
  2. 고정성(고정IP 제공)
    • 서버와 같은 특정 자원(예를 들어, 웹 서버, FTP 서버)에 접근할 때 일관된 외부 IP를 사용해야 하기 때문에 이 방식이 적합합니다.
  3. 공인 IP 자원 절약 불가능
    • 정적 NAT는 1:1 매핑을 사용하기 때문에 각 사설 IP마다 공인 IP를 하나씩 할당해야 하므로 공인 IP 자원을 낭비할 수 있습니다.
  4. 트래픽 추적 용이
    • 정적 NAT는 매핑이 고정적이기 때문에, 트래픽을 추적하기 쉽고, 특정 IP 주소로부터 오는 트래픽을 정확하게 파악할 수 있습니다.
    • 이는 보안 상의 이유나 특정 서비스 접근을 관리할 때 유리합니다.

예시: 정적 NAT 설정

ip nat inside source static 192.168.1.10 211.183.3.100
  • **PAT (Port Address Translation)**은 하나의 공인 IP 주소를 여러 개의 사설 IP 주소가 공유하여 사용하는 방식입니다. 포트를 기준으로 구분되기 때문에, 공인 IP 자원을 매우 효율적으로 사용할 수 있습니다.

동적 NAT

동적 NAT는 사설 주소공인 주소로 변환하는 방식입니다. ACL을 사용하여 사설 IP 범위를 정의하고, **풀(pool)**을 사용하여 공인 IP 주소를 할당합니다.

  • 사설 IP 주소 그룹ACL을 통해 정의됩니다. 예를 들어, 192.168.1.0/24 범위를 정의할 때 Standard ACL을 사용하여 출발지 주소를 매칭합니다.
  • 공인 IP 주소 그룹pool을 사용하여 설정됩니다. 풀(pool)에서 공인 IP를 할당받은 후, 동적으로 NAT 변환이 이루어집니다.

ACL의 종류

  1. Standard ACL (기본 ACL):
    • 출발지 IP 주소만을 기반으로 트래픽을 필터링합니다.
    • 목적지 IP 주소나 포트 번호는 고려하지 않습니다.
    • 보통 출발지 IP를 기준으로 허용하거나 차단할 때 사용됩니다.
  2. Extended ACL (확장 ACL):
    • 출발지 IP, 목적지 IP, 포트 번호 등 다양한 요소를 기준으로 트래픽을 필터링할 수 있습니다.
    • 더 복잡한 필터링을 필요로 할 때 사용됩니다.

Look at this bit과 Don't care bit

Look at this bit와 Don't care bit는 ACL을 설정할 때 필드를 어떻게 비교할 것인지에 대한 규칙을 설명하는 중요한 개념입니다. **와일드카드 마스크(wildcard mask)**를 설정할 때, ACL은 특정 비트만 매칭하고 나머지 비트는 무시할 수 있습니다.

Look at this bit

  • Look at this bit는 매칭해야 하는 비트를 의미합니다.
  • ACL을 적용할 때 이 비트가 정확히 일치해야 정상적으로 매칭됩니다.
  • 예를 들어, 255.255.255.0에서 첫 24비트는 정확히 일치해야 하는 비트입니다.

Don't care bit

  • Don't care bit는 매칭하지 않아도 되는 비트를 의미합니다.
  • 이 비트들은 무시되고, ACL이 매칭되기 위해서는 다른 비트만 일치하면 됩니다.
  • 예를 들어, 와일드카드 마스크 0.0.0.255에서 마지막 8비트는 매칭되지 않아도 됩니다.

예시:

  • IP 주소: 192.168.1.0
  • 서브넷 마스크: 255.255.255.0
  • 와일드카드 마스크: 0.0.0.255
  1. Look at this bit:
    • 255.255.255.0에서 255는 모두 1로 설정되어 있기 때문에 매칭해야 하는 비트입니다.
    • 192.168.1.x에서 192.168.1 부분은 정확히 일치해야 하므로 Look at this bit에 해당합니다.
  2. Don't care bit:
    • 0.0.0.255에서 255는 무시해도 되는 비트입니다.
    • 즉, x 부분에 대해 어떤 값이 들어가도 상관없으므로 Don't care bit에 해당합니다.

### NAT 관련 설정 확인 ###
R1(config)#do show run | in ip nat
 ip nat outside
 ip nat inside
 ip nat inside
 
### 액세스 리스트 생성 ###
R1(config)#access-list 11 permit any

### NAT 풀 설정 ###
R1(config)#ip nat pool pub 211.183.3.201 211.183.3.239 prefix-length 24

### 내부 소스 NAT 설정 ###
R1(config)#ip nat inside source list 11 pool pub

관련글 더보기