NAT 스위치 실습-내부 네트워크 환경 구축하기
시작하기 전
지난 시간에 설명한 NAT 스위치의 실습을 진행해보려고 한다.
다만 이를 실제로 확인하기 위해서는 컴퓨터가 여러 대 있어야 한다.
그래서 편의를 위해 Hyper-V라는 가상환경을 활용해 진행해보겠다.
하이퍼-V 설치하고 VM 생성하기
작업표시줄 검색창에 Windows 기능 켜기/끄기를 입력하여 클릭한 창을 쭉 눌러
Hyper-V를 선택하고 확인을 누른다. 참고로 재부팅이 필요하다.
재부팅 하면 작업표시줄에 Hyper-V를 검색했을 때 프로그램이 나올 것이다.
본인은 이렇게 리눅스 VM환경 2대를 생성하였다.
VM 환경을 생성하는 방법은 이곳을 참조하길 바란다.
NAT 스위치 생성
Hyper-V 관리자의 오른쪽 대쉬보드에서 가상 스위치 관리자를 클릭하면 다음과 같은 창이 나온다.
여기서 Default Switch는 Hyper-V에서 기본으로 제공해주는 NAT 스위치로, 내부 IP 대역을 자동으로 생성해주지만, DHCP라는, 동적 IP를 생성해주는 기능이 추가로 구현되어 있어 VM을 구동중인 컴퓨터의 시스템을 재부팅 할때마다 IP가 자동 변경되는 문제가 있다.
따라서 내부(사설) IP를 재부팅해도 변경되지 않고 쓰려면 수동으로 스위치를 생성해주어야 한다.
새 가상 네트워크 스위치를 클릭하고, 내부를 선택하여 가상 스위치 만들기를 클릭한다.
클릭하면 이렇게 창이 바뀔 텐데, 이름을 적절히 입력하고 확인을 누른다.
IP/서브넷/게이트웨이
도스창에서 ipconfig를 입력하면 IP, 서브넷 마스크, 기본 게이트웨이를 확인할 수 있다는 말은 많이 들었다. IP는 알겠는데, 서브넷 마스크와 게이트웨이는 도대체 무엇일까?
우선 네트워크 영역에 대해 알 필요가 있다.
네트워크 주소는 IP 중 동일한 네트워크인지를 식별하는 영역이다.- 게이트웨이는 이 네트워크로 들어오는 관문, 즉 스위치/라우터이다. 따라서 ipconfig의 기본 게이트웨이는 라우터의 (내부)IP이다.
- 서브넷 마스크는 같은 네트웤인지를 확인하는 주소로, IP와 서브넷 마스크를 비트 연산하여 결과물이 네트워크 영역 내에 있으면 그 IP는 해당 네트워크에 속하는 원리이다.
- 예를 들어 네트워크 영역이 100.100.100.0~255 이고 서브넷이 255.255.255.0, 게이트웨이가 100.100.100.1 이면,
외부 장치들과 100.100.100.1을 통해서 100.100.100.0~255 네트워크에 접속 가능하다. - 만약 네트워크 내 100.100.100.40 IP가 있으면,
해당 IP는 100.100.100.40 & 255.255.255.0 = 100.100.100.0 이 되어 내부 네트워크에 속하는 것으로 판단된다. - 반면 123.123.100.123 IP는 & 연산=123.123.100.0 으로 100.100.100.0 네트워크가 아닌 것으로 여겨진다.
- 예를 들어 네트워크 영역이 100.100.100.0~255 이고 서브넷이 255.255.255.0, 게이트웨이가 100.100.100.1 이면,
- 서브넷 마스크를 이진수로 변환하여 1이 있는 부분이 IP에서 네트워크 주소에 해당하는 영역
- 255.255.240.0 은 11111111.11111111.11110000.0 이므로 IP를 2진수 변환시 세번째 .의 왼쪽에서 4번째 까지가 네트워크 주소,
나머지는 호스트(네트워크 내 기기)를 구분하는 영역이다.
- 255.255.240.0 은 11111111.11111111.11110000.0 이므로 IP를 2진수 변환시 세번째 .의 왼쪽에서 4번째 까지가 네트워크 주소,
NAT 스위치 활성화
윈도우즈 파워쉘을 열어 Get-NetAdapter
를 입력하면 생성한 네트워크 스위치의 인터페이스 인덱스 번호를 확인 가능하다. 이 인덱스 번호를 기억해두자.
그 다음, New-NetIPAddress -IPAddress (게이트웨이 IP) -PrefixLength (서브넷) -InterfaceIndex (인덱스 ID)
명령어로 스위치를 게이트웨이로 설정한다.
- (게이트웨이 IP)에는 사용할 사설 IP 대역을 결정한 뒤, 보통 편의를 위해 .1로 끝낸다.
- 사설 IP 대역은 OSI 국제표준으로 지정되어 있으므로, 다음 세 영역 중에서 지정한다.
10.0.0.0 ~ 10.255.255.255 172.16.0.0 ~ 172.31.255.255 192.168.0.0 ~ 192.168.255.255
- 사설 IP 대역은 OSI 국제표준으로 지정되어 있으므로, 다음 세 영역 중에서 지정한다.
(서브넷)은 서브넷 마스크를 . 단위로 2진수 변환 후 1의 개수를 센 것을 입력한다.
예를 들어 서브넷이 255.255.255.0 이면 11111111.11111111.11111111.0(2) 이므로
1이 총 24개, 따라서 24를 입력한다.- (인덱스 ID)에서는 방금 get-NetAdapter로 찾은 스위치의 인덱스 ID를 입력한다.
마지막으로, New-NetNat -Name (네트워크 이름) -InternalIPInterfaceaddressPrefix (네트워크 ID/서브넷)
으로 NAT 네트워크 환경을 생성한다.
(네트워크 이름)은 사용할 내부 네트웤 이름이다.
(네트워크 ID)는 전 단계에서 만들었던 게이트웨이 IP와 서브넷을 . 단위로 AND연산한 주소이다.
예를 들면 192.168.0.1 & 255.255.255.0 은 192.168.0.0 이다.(/서브넷)에는 마찬가지로 서브넷 주소를 이진수 변환해 1 개수를 세면 된다.
설정한 NAT 게이트웨이 및 네트워크는
Get-NetNat
명령어나 GUI IP속성으로 확인 가능하다.
(GUI 환경에서는 위 파워셀을 통한 설정을 기본 게이트웨이를 설정해야 한다는 오류로 불가능)
이제 각 VM별로 네트워크 어댑터 스위치를 교체해주면 끝난다!
IP 할당하고 연결 확인해보기
리눅스의 경우에는 nmtui
를 사용하여 윈도우의 IP설정과 같은 기능을 수행할 수 있다.
게이트웨이는 NAT 스위치의 IP로,
IP주소는 네트워크 영역 내에서 임의로 지정해주면 된다.
인터넷에 연결하기 위한 DNS 서버는 1.1.1.1, 8.8.8.8 같이 외부 DNS 주소로 일단 설정해준다.