728x90

Windows Server의 RRAS (Routing and Remote Access Service) 기능을 사용하여 Azure Virtual Network와 S2S VPN을 연결하는 방법을 소개합니다.

 

S2S (Site to Site) VPN은 온프레미스 네트워크와 Azure Virtual Network 간의 연결을 의미하는데, 온프레미스의 VPN 장비와 Azure의 VPN Gateway를 서로 연결해서 구성합니다.

S2S VPN 구성을 테스트하고 싶어도 온프레미스에 VPN 장비가 없으면 테스트가 거의 불가능합니다.

 

이 글에서는 Azure Virtual Network를 온프레미스 네트워크라고 가정하고, Windows Server에 RRAS 역할을 설치하여 VPN 장비처럼 동작하도록 구성하는 방법을 소개합니다.

테스트 구성도를 보시면 좀 더 쉽게 이해하실 수 있을겁니다.

 

RRAS 테스트 구성도

 

 

왼쪽의 Virtual Network를 온프레미스 네트워크라고 가정하고, rras-vm을 VPN 장비처럼 동작하도록 구성하는 방법을 소개할 예정입니다.

테스트 환경 구성이 완료되면 온프레미스의 dmz-svr01과 Azure의 mgmt-vm간에 private ip 주소로 통신이 가능해집니다.

 

*중요
Microsoft는 Azure 의 Windows Server 가상 머신에서의 RRAS 사용을 공식적으로는 지원하지 않습니다.

https://support.microsoft.com/en-us/help/2721672/microsoft-server-software-support-for-microsoft-azure-virtual-machines


따라서, Azure에서는 테스트 용도로만 RRAS를 사용해야 합니다.
Azure에서 RRAS를 사용하다가 문제가 생기더라도 Microsoft로부터 지원을 받을 수 없습니다.

 

*테스트에서는 Azure Korea Central 지역을 사용합니다.

 

1. 가상 네트워크 구성

구성도와 같이 두 개의 가상 네트워크를 만듭니다.

Onprem-NW Hub-VNET
Address spaces : 192.168.0.0/16
- RRAS-Subnet : 192.168.100.0/24
- DMZ-Subnet : 192.168.200.0/24
Address spaces : 172.16.0.0/16
- GatewaySubnet : 172.16.0.0/26
- Mgmt-Subnet : 172.16.1.0/24

 

 

 

2. VPN Gateway 생성

Hub-VNET에 VPN Gateway를 만듭니다.

저는 아래와 같이 설정하였습니다.

 

VPN Gateway 생성

 

 

VPN Gateway가 생성되면 Public IP address를 확인합니다.

 

 

 

 

3. RRAS용 Windows VM 생성

Windows Server 2019 VM을 생성합니다.

저는 아래와 같이 설정했습니다만, 동일하게 설정하지 않으셔도 됩니다.

  • Image : Windows Server 2019 Datacenter - Gen2
  • Size : Standard D2as_v4

 

 

 

Virtual network와 Subnet은 아래와 동일하게 설정합니다.

  • Virtual network : OnPrem-NW
  • Subnet : RRAS-Subnet

 

 

 

RRAS VM 생성이 완료되면 VM을 중지합니다. 

VM이 중지되면 IP 주소를 테스트 구성도처럼 지정합니다.

 

RRAS VM

 

 

첫 번째 NIC의 IP 주소를 테스트 구성도처럼 지정합니다. (192.168.100.101)

 

RRAS 첫 번째 NIC

 

 

두 번째 NIC 추가 및 테스트 구성도처럼 IP 주소를 지정합니다. (192.168.200.101)

두 번째 NIC는 DMZ-Subnet에 연결합니다.

 

RRAS 두 번째 NIC

 

 

두 번째 NIC의 IP configurations 메뉴에서 IP forwardingEnabled로 변경합니다.

 

RRAS 두 번째 NIC - IP forwarding Enabled

 

 

RRAS VM을 시작합니다.

 

 

4. RRAS VM Windows 방화벽 중지 및 NSG 설정

RRAS VM의 Windows 방화벽을 중지합니다.

 

Windows Firewall Turn off

 

 

VPN Gateway와 S2S VPN 연결을 위해, RRAS VM의 NSG의 Inbound 규칙에 아래의 Port들을 허용으로 추가합니다.
*Source는 VPN Gateway의 Public IP 주소, Destination은 RRAS VM의 첫 번째 NIC의 Private IP 주소
- TCP port 443 (SSTP)
- UDP port 500 (IKEv2)
- UDP port 4500 (IKEv2 NAT traversal)

 

RRAS-Subnet의 NSG

 

 

 

5. VPN Gateway 설정

Local Network Gateway와 Connection 리소스를 생성합니다.

 

Local Network Gateway를 생성할 때,

IP address에는 RRAS VM의 Public IP 주소를 입력하고,

Address Space에는 온프레미스 IP 대역을 입력합니다. (192.168.0.0/16)

 

Local network gateway

 

 

Connection 리소스를 생성할 때, Connection type은 Site-to-site (IPsec)을 선택합니다.

 

 

 

Virtual network gateway, Local network gateway, Shared key(PSK)를 지정합니다.

나머지 옵션은 기본값을 사용합니다.

* Shared key는 RRAS 구성에서도 사용됩니다.

 

 

 

 

6. RRAS 역할 설치

RRAS VM에 원격으로 접속한 후 RRAS 역할을 설치하고 구성합니다.

 

Server Manager - Add Roles and Features

 

Server Manager

 

 

Server Roles에서 Remote Access를 선택합니다.

 

Server Roles - Remote Access

 

 

Role Services에서 DirectAccess and VPN (RAS), Routing을 선택합니다.

 

Role Services - DirectAccess and VPN (RAS), Routing

 

 

나머지 옵션들은 기본값을 사용해서 RRAS 역할을 설치합니다.

 

 

7. RRAS 구성

* 이 부분이 이번 글에서 핵심입니다.

 

RRAS 역할이 설치된 후 Azure VPN Gateway와 연결하기 위해 RRAS를 구성합니다.

 

Routing and Remote Access 관리 콘솔을 실행합니다.

 

 

 

RRAS VM을 오른쪽 버튼 클릭하고 'Configure and Enable Routing and Remote Access'를 클릭합니다.

 

Configure and Enable Routing and Remote Access

 

 

Routing and Remote Access Server Setup Wizard

  • [Next]

 

 

 

Configuration

  • 'Secure connection between two private networks' 
  • [Next]

 

 

 

Demand-Dial Connections

  • 'No' 
  • [Next]

 

 

 

Completing the Routing and Remote Access Server Setup Wizard

  • [Finish]

 

 

 

 

Network Interfaces 오른쪽 버튼 클릭 - 'New Demand-dial Interface' 클릭

 

 

 

Demand-Dial Interface Wizard

  • [Next]

 

 

 

Interface Name

  • Interface name : AzureVPNGW
  • [Next]

 

Interface name

 

 

Connection Type

  • Connect using virtual private networking(VPN)
  • [Next]

 

Connection Type - Connect using virtual private networking (VPN)

 

 

VPN Type

  • IKEv2
  • [Next]

 

VPN Type - IKEv2

 

 

Destination Address

  • VPN Gateway의 Public IP 주소 입력
  • [Next]

 

 

 

Protocols and Security

  • Route IP packets on this interface
  • [Next]

 

 

 

Static Routes for Remote Networks

  • [Add]
  • Azure IP 대역 등록 (172.16.0.0/16)
  • [Next]

 

Azure IP 대역 등록

 

 

Dial-Out Credentials

  • [Next]

 

 

 

Completing the Demand-Dial Interface Wizard

  • [Finish]

 

 

 

 

*Preshared key를 지정합니다.

 

새로 생성된 Network Interface 오른쪽 버튼 클릭 - 'Properties'

 

 

 

[Security] 탭

  • Use preshared key for authentication - Preshared key 입력 ('12345')
  • [OK]

 

Preshared key 등록

 

 

*Azure VPN Gateway와 연결합니다.

 

AzureVPNGW 오른쪽 버튼 클릭 - 'Connect'

 

Connect

 

연결 완료 (Connection State가 Connected로 표시됩니다.)

 

 

 

 

VPN Gateway Connection 리소스를 확인해보면, Status가 Connected로 표시됩니다.

(Connected로 표시되기까지 약 3~5분 정도 걸립니다.)

 

 

 

이제 S2S VPN 연결이 완료되었습니다.

 

 

8. 테스트용 VM 생성

네트워크 통신 테스트를 위한 VM들을 온프레미스 네트워크(OnPrem-NW)와 Azure Virtual Network(Hub-VNET)에 생성합니다.

(dmz-svr01, mgmt-vm)

 

 

 

*VM을 생성하는 과정에 대한 설명은 생략합니다.

 

 

 

9. 온프레미스 서브넷에 UDR 설정

*이 부분도 중요합니다.

 

온프레미스(OnPrem-NW)에서 Azure Virtual network(Hub-VNET)의 IP 대역으로 나가는 트래픽이 RRAS를 통과하도록 하기위해 UDR을 사용합니다.

 

Routes에서

  • Address prefix는 Azure IP 대역을 지정하고 (172.16.0.0/16),
  • Next hop type은 'Virtual appliance',
  • Next hop IP address는 RRAS의 두 번째 NIC의 IP 주소를 입력합니다 (192.168.200.101).

UDR을 온프레미스 서브넷(DMZ-Subnet)에 연결합니다.

 

UDR

 

 

10. 네트워크 통신 테스트

테스트를 위해 VM의 Windows 방화벽은 중지합니다.

 

 

 

두 VM 간에 Private IP 주소로 통신이 가능한지 확인해봅니다.

 

 

끝.

728x90
728x90

서브넷 마스크 계산기 및 계산 방법 2가지(CIDR, netmask)

2023-01-31 by 나루

네트워크를 설정하다보면 서브넷 마스크 또는 마스크라고 되어 있는 부분에 입력을 해야 하는 경우가 있을 것입니다. 서브넷 마스크 계산 방법을 알아보고, 또 서브넷 마스크 계산기도 함께 준비했습니다.

서브넷 마스크란? CIDR?

클래스 단위로 결정된 주소 비트를 이론적으로 어느 정도의 서브넷이라는 단위로 나눌 것인지 지정하는 것입니다. 크게 네트워크 영역과 호스트 영역으로 나뉘게 되는데, 이를 통해서 네트워크의 성능을 보장하고, 제한된 자원을 효율적으로 사용할 수 있게 됩니다. 그리고 CIDR은 Classless Inter-Domain Routing의 줄임말로 클래스 없는 도메인 간 라우팅 기법입니다.

서브넷 마스크 계산 방법: CIDR을 Netmask로 변환

그림 1의 Addresses에서의 192.168.0.31/24 와 같이 뒤에 /24 를 표기하는 것을 CIDR 값이라고 부릅니다.

그림 1. CIDR로 서브넷 표기하기

그리고 그림 2와 같이 많은 분들이 흔히 사용하는 개인 네트워크의 사설 IP 주소 192.168.0.132와 같은 값을 이용할 때 Netmask 값은 255.255.255.0으로 설정해서 이용합니다.

그림 2. Netmask로 서브넷 표기하기

위의 두 가지 값은 표현은 다르게 되나 동일하게 처리됩니다. 아래 계산기에서 24라고 입력해 보시면 2진수 Netmask에서 11111111 11111111 11111111 00000000 이라고 표현되는 것을 볼 수 있습니다. 왼쪽에서부터 몇 비트를 마스킹할 것인지 표현하는 게 CIDR 표기법입니다.

Netmask는 그걸 십진수로 8비트씩 끊어서 10진수로 표현한 것입니다. 흔히 넷마스크로 사용하는 255.255.255.0이 그 예입니다.

CIDR과 Netmask 계산기

아래 CIDR에 숫자를 입력해 주면 Netmask 값으로 변환이 됩니다. Netmask에 값을 채워넣으면 CIDR로 변환됩니다. 두가지 경우 모두 2진수 Netmask 값으로도 변환됩니다. 단, netmask 값은 페이지 하단의 표를 참고해서 사용하시기 바랍니다.

CIDR 
Netmask 
Netmask(2진수) 11111111 11111111 11111111 11111000
그림 3. 서브넷 마스크 계산 방식

192.168.121.110/24로 표기한다면, 앞의 24비트인 192.168.121 까지가 호스트 주소이고, 이후의 110 값에 해당하는 8비트가 호스트 주소가 된다고 이해하시면 됩니다. 즉, 좌측부터 24개 비트가 1로 채워져 넷마스크 값은 255.255.255.0이 됩니다.

특히 회사나 학교와 같은 곳에서는 넷마스크 값을 네트워크 관리자를 통해 명확히 확인 후 사용하시기 바랍니다. 물론 개인이 사용하는 192.168.0.xxx의 경우에는 편안하게 255.255.255.0 사용하면 되겠습니다.

CIDR & Netmask 테이블

바로 위에 계산기를 준비해 놓았지만, 아래 표를 통해서도 확인할 수 있습니다.

CIDR Mask Hosts
/32 255.255.255.255 1
/31 255.255.255.254 2
/30 255.255.255.252 4
/29 255.255.255.248 8
/28 255.255.255.240 16
/27 255.255.255.224 32
/26 255.255.255.192 64
/25 255.255.255.128 128
/24 255.255.255.000 256
/23 255.255.254.000 512
/22 255.255.252.000 1024
/21 255.255.248.000 2048
/20 255.255.240.000 4096
/19 255.255.224.000 8192
/18 255.255.192.000 16384
/17 255.255.128.000 32768
/16 255.255.000.000 65536
/15 255.254.000.000 131072
/14 255.252.000.000 262144
/13 255.248.000.000 524288
/12 255.240.000.000 1048576
/11 255.224.000.000 2097152
/10 255.192.000.000 4194304
/9 255.128.000.000 8388608
/8 255.000.000.000 16777216
/7 254.000.000.000 33554432
/6 252.000.000.000 67108864
/5 248.000.000.000 134217728
/4 240.000.000.000 268435456
/3 224.000.000.000 536870912
/2 192.000.000.000 1073741824
/1 128.000.000.000 2147483648
표. CIDR, Netmask 별 이용가능한 호스트 개수

관련자료

위의 계산기에는 stackoverflow의 netmask 관련 코드를 사용했습니다.
위키피디아의 CIDR 페이지를 참고했습니다.

함께 읽으면 좋은 글

728x90
728x90

서브넷 마스크와 서브넷팅 계산 방법

 

 

하나의 네트워크에 16,777,214개의 호스트 IP를 할당할 수 있는 A 클래스 는 엄청나게 큰 규모의 국제적인 기업 또는 단체가 아니라면 매우 비효율적이다.

 

만약 이 장치가 4개가 있는 가정집에 A 클래스를 그대로 부여한다면 Network Address와 Broadcast Address까지 포함하여 6개가 사용되고 남은 16,777,208개는 아무도 사용하지 않고 낭비된다.

 

이러한 문제를 해결하기 위해 IP를 사용하는 네트워크 장치들의 수에 따라 효율적으로 사용할 수 있는 서브넷(Subnet)이 등장하게 되었다.

 

 

서브넷 마스크는 IP주소 체계의 Network ID와 Host ID를 서브넷 마스크를 통해 변경하여서 '네트워크 영역을 분리 또는 합체' 시키는 개념이다.

 

네트워크를 분리한 것을 서브넷팅(Subnetting), 합치는 걸 슈퍼넷팅(Supernetting)이라고 한다.

 

서브넷팅은 서브넷 마스크를 이용하여 Host ID를 Network ID로 변환하게 되고, 슈퍼넷팅은 서브넷 마스크를 이용하여 Network ID를 Host ID로 변환하게 되어서 가능해진다.

 

서브넷 마스크

 

  • IP 주소에는 반드시 서브넷 마스크가 있다.
  • 서브넷 마스크는 기본적으로 255와 0으로 이루어져 있다.
  • 여기서 255는 네트워크 부분이며 0은 호스트 부분이 된다.
  • 255로 된 부분은 무시하시고 0으로 된 부분에서 IP를 나눠쓰는 혹은 IP를 쪼개는 개념이다.

 

IP를 쪼개는 이유는 IP주소가 모자라기 때문이며 네트워크를 구축시에 가장 중요한 부분이라고 할수있으며 서버관리시에 꼭 필요한 부분이다.

 

 

서브넷 마스크의 형태는 IP주소와 똑같이 32bit의 2진수로 되어있으며, 8bit(1byte)마다, .(dot)으로 구분하고 있다.

즉, IP와 똑같은 OOO, OOO, OOO, OOO의 모습을 가지고 있다.

 

형태가 똑같은 이유는 IP주소와 서브넷 마스크를 AND 연산하기 위해서이다.

 

 

 

서브넷 마스크를 사용하는 이유

브로드캐스트 영역(네트워크)를 나누기 위함 입니다.

한 네트워크에 수 많은 호스트가 있을 경우 원활한 통신이 불가능해지게 됩니다. 이를 해결하기 위해서 네트워크를 적절하게 나누어 주셔야 합니다. 또한 네트워크를 적절하게 구분지어주기 때문에 IP 주소를 아끼는 효과가 있습니다.

 

호스트 이름으로부터 IP 주소지에 대한 네트워크 이름을 규정으로 32비트 크기로 만들어진다.

 

 

혹시 IP주소 뒤에 /24 같은 것들이 붙어 있는 것을 볼 수 있을것이다.

이는 Prefix(접두어)로 (CIDR이라고도 한다.)서브넷 마스크의 bit 수를 의미한다.

 

옥탯의 8bit가 모두 1일 경우 10진수로 255가 되기에 /24는 왼쪽으로 나열된 1bit의 수가 24개라는 뜻이다.

 

예시) 192.168.0.3/24는 IP주소가 192.168.0.3 이며, 서브넷 마스크는 255.255.255.0이라는 의미다.

 

클래스 범위 표기법
A 11111111.00000000.00000000.00000000 /8 OR 255.0.0.0
B 11111111.11111111.00000000.00000000 /16 OR 255.255.0.0
C 11111111.11111111.11111111.00000000 /24 OR 255.255.255.0

 

 

Bitmask (서브넷 마스크로 사용된 1의 개수) Netmask(255.255.255.x) 네트워크 수 (서브넷 개수) 호스트 수
/25 128 2 128
/26 192 4 64
/27 224 8 32
/28 240 16 16
/29 248 32 8
/30 252 64 4
/31 254 128 2
/32(Host Rount) 255 256 1

 

 

네트워크 수는 2의 제곱의 수로 계산하면 된다.

호스트 수 256을 네트워크수로 나누면 된다.

 

서브넷 마스크의 마지막인 32bit는 (255.255.255.255)를 호스트루트(Broadcast)라고 하는데 이것은 특정 호스트로 가는 경로를 알릴때 사용한다.

 

 

 

 

서브넷팅의 이해

 

IP주소 낭비를 방지하기 위한 원본 네트워크를 여러 개의 네트워크로 분리하는 과정(자신의 네트워크 주소를 더 작은 서브 네트워크로 2의 배수로 나누는 과정)을 말한다.

 

서브넷팅을 과정중에 분리된 네트워크 단위를 서브넷이라고 하며, 서브넷팅을 하기 위해서는 서브넷 마스크의 이해가 필요하다.

 

서브넷팅(Subnetting) 하는 법

 

 

192.168.32.0/24라는 네트워크 주소 하나를 25개씩의 호스트가 있는 각각의 네트워크로 분할하려고한다.

 

Ip Address Subnet mask
192.168.32.0 255.255.255.0
11000000.10101000.00100000.00000000 11111111.11111111.11111111.00000000

 

위에 표에 서브넷마스크(Subnet mask)는 1로 표시된 부분은 Network-ID로 사용되는 부분이며,

0 으로 표시된 Host-ID 부분을 가지고 서브넷팅을 하게된다.

 

위 표와 같이 하나의 옥텟은 8bit(00000000)로 이루어져 있으며, 1개의 bit는 2개의 정보를 표현할 수 있다.

 

이번에는 Host-ID 부분을 필요한 개수인 5개의 Bit로 쪼개보겠다.

 

192.168.32.000/00000

<-(Network ID) (Host ID)->

 

0~31 192.168.32.0 ~ 192.168.32.31
32~63 192.168.32.32 ~ 192.168.32.63
64~95 192.168.32.64 ~ 192.168.32.95
96~127 192.168.32.96 ~ 192.168.32.127
128~159 192.168.32.128 ~ 192.168.32.159
160~191 192.168.32.160 ~ 192.168.32.191
192~223 192.168.32.192 ~ 192.168.32.223
224~255 192.168.32.224 ~ 192.168.32.255

 

각각의 범위가 서로 다른 네트워크를 의미한다.

범위에 있는 숫자는 각각의 네트워크 안에서 호스트로 할당해줄 수 있는 IP의 범위가 된다.

 

범위의 맨 앞에 있는 게 각 네트워크 대표주소(192.168.32.0)가 되며,

마지막의 (192.168.32.255)의 숫자가 브로드캐스트 숫자가 된다.

728x90

+ Recent posts