본문 바로가기
Study/Network

[Network] 네트워크 아키텍쳐의 종류

by Jamie Lim 2020. 9. 14.

1. NAT

 * 실습 추가 예정

 

[ 정리 ]

NAT

 

NAT Network Address Translation의 약자로 게스트 OS가 호스트 OS NIC을 이용해 외부와 통신하는 아키텍쳐이다. 게스트에서 ping(8.8.8.8)을 통해 호스트와 통신하면 서로 통신하고 있음을 와이어샤크를 통해 확인할 수 있다. 왜냐하면 게스트 OS에서 인터넷에 통신을 요청하면 가상머신에서 밖으로 나가 Host NIC을 거쳐야 한다. 그래서 호스트 OS에서도 패킷이 잡히게 되는 것이다(Host IP).

하지만 반대로 호스트에서 ping(8.8.8.8)을 진행하면 호스트에서는 패킷들이 잡히지만 게스트 OS에서는 잡히지 않는다. 왜냐하면 호스트 OS에서는 바로 NIC를 지나 라우터를 통해 인터넷과 통신하면 되므로 이때 게스트 OS와는 전혀 상관없는 통신을 진행한다. 그래서 와이어샤크를 확인했을 때 호스트 OS에서는 패킷이 잡히지만 게스트 OS에서는 패킷이 잡히지 않는 것이다.

한번 게스트끼리 통신을 시켜보니 ping을 통해 패킷을 보내지만 다른 쪽에서는 받지 못한다. 또한, 호스트 역시 받지 못했다.

 


2. NAT 네트워크

  Ubuntu Kali Linux Host
IP Address 10.0.2.4 10.0.2.15 192.168.25.29

 

  1) 인터넷 연결 (ping 8.8.8.8)

   (1) icmp in Ubuntu

    < Ubuntu >

 

    < Host >

 

   * Kali에서는 패킷이 잡히지 않음

 

 

   (2) icmp in kali

    <kali>

 

    <Host>

 

   * Ubuntu에서는 패킷이 잡히지 않음

 

 

   (3) icmp in host os

    <Host>

 

   * UbuntKali에서는 패킷이 잡히지 않음

 

 

[ NAT 네트워크 인터넷 통신 ]

  Guest OS - Ubuntu Guest OS - Kali Linux Host OS
Network Info Ubuntu MAC
Ubuntu IP
Kali Linux MAC
Kali Linux IP
Host MAC
Host IP
Ubuntu -> ping 8.8.8.8 Ubuntu MAC
Ubuntu IP
X Host MAC
Host IP
Kali Linux -> ping 8.8.8.8 X Kali Linux MAC
Kali Linux IP
Host MAC
Host IP
Host -> ping 8.8.8.8 X X Host MAC
Host IP

 

 

  2) 게스트 OS끼리 통신

   (1) ubuntu -> kali

    <ubuntu>

 

    <kali>

 

   (2) kali -> ubuntu

    <kali>

 

    <ubuntu>

 

   * 게스트 통신을 하는 동안은 Host에서는 패킷이 잡히지 않는다

 

 

[ NAT 네트워크 게스트 OS 통신 ]

  Guest OS - Ubuntu Guest OS - Kali Linux Host OS
Network Info Ubuntu MAC
Ubuntu IP
Kali Linux MAC
Kali Linux IP
Host MAC
Host IP
Ubuntu -> Kali Linux Ubuntu MAC
Ubuntu IP
Kali Linux MAC
Kali Linux IP
X
Kali Linux -> Ubuntu Ubuntu MAC
Ubuntu IP
Kali Linux MAC
Kali Linux IP
X

 

[ 정리 ]

NAT 네트워크

 

NAT 네트워크는 게스트 OS가 호스트 OS NIC을 이용해 외부와 통신 호스트끼리 네트워크를 진행하는 것이다. 우선 게스트 OS에서 ping 8.8.8.8을 통해 인터넷에 연결되는지 확인한다. 확인하면 칼리와 우분투 모두 인터넷 연결이 된다. 그런데 인터넷에 연결을 하기 위해서는 가상머신의 NIC과 라우터를 지나 Host NIC과 라우터도 지나기 때문에 Host에서도 패킷이 잡힌다(Host IP). 이때 역시 반대로 Host에서 ping 8.8.8.8을 했을 때 게스트 OS를 거치지 않기에 아무런 패킷도 잡지 않는다.

만약 게스트 OS(Ubuntu, Kali)끼리 통신을 하게 되면 게스트는 서로 패킷을 잡을 수 있다. 하지만 서로 통신하는 패킷을 Host에서는 잡히지 못 한다. , 게스트끼리의 소통은 가상머신 밖으로 나가지 않고 내부에서 연결이 가능하다는 것이다.

 

 


3. 내부 네트워크

  Ubuntu Kali Linux Host
IP Address 10.10.10.3 10.10.10.2 192.168.25.29

 

   1) 인터넷 연결 (ping 8.8.8.8)

    <kali>

 

    <ubuntu>

 

 

[ 내부 네트워크 인터넷 통신 ]

  Guest OS - Ubuntu Guest OS - Kali Linux Host OS
Network Info Ubuntu MAC
Ubuntu IP
Kali Linux MAC
Kali Linux IP
Host MAC
Host IP
Ubuntu -> ping 8.8.8.8 X X X
Kali Linux -> ping 8.8.8.8 X X X
Host -> ping 8.8.8.8 X X Host MAC
Host IP

  

 

  2) 게스트 OS끼리 통신 (kali -> ubuntu)

    <kali>

 

    <ubuntu>

 

   * 게스트끼리의 통신은 ubuntu -> kali, kali -> ubuntu 모두 가능하다.

 

 

   3) 게스트 OS와 호스트 OS 통신 (kali -> host)

    <kali>

 

   * 내부 네트워크로 게스트끼리만 통신이 가능해 호스트와는 통신이 불가능하다. 우분투에서도 마찬가지다.

 

 

[ 내부 네트워크 게스트 OS 통신 & 호스트 OS 통신]

  Guest OS - Ubuntu Guest OS - Kali Linux Host OS
Network Info Ubuntu MAC
Ubuntu IP
Kali Linux MAC
Kali Linux IP
Host MAC
Host IP
Ubuntu -> Kali Linux Ubuntu MAC
Ubuntu IP
Kali Linux MAC
Kali Linux IP
X
Kali Linux -> Ubuntu Ubuntu MAC
Ubuntu IP
Kali Linux MAC
Kali Linux IP
X
Kali -> Host X X X
Host -> Kali X X X

 

 

[ 정리 ]

내부 네트워크

 

내부 네트워크는 게스트 OS끼리 가상의 NIC를 이용해 서로 통신하는 것으로 호스트와는 통신할 수 없다. 그래서 게스트 OS에서 ping 8.8.8.8을 이용해 인터넷에 연결하려 하면 ‘connect: Network is unreachable’이라는 문구와 함께 그냥 종료된다. 게스트가 호스트에 통신하기 위해 ping 호스트 ip를 해도 똑 같은 결과다. 그리고 게스트끼리 통신을 하게 되면 그때는 잘 통신이 이루어진다.

 


4. 호스트 전용 네트워크

  Ubuntu Kali Linux Host
IP Address 192.168.56.101 192.168.56.102 192.168.56.1

 

 

   (1) 인터넷 연결 (ping 8.8.8.8)

    <kali>

 

    <ubuntu>

 

 

[ 호스트 전용 네트워크 인터넷 통신 ]

  Guest OS - Ubuntu Guest OS - Kali Linux Host OS
Network Info Ubuntu MAC
Ubuntu IP
Kali Linux MAC
Kali Linux IP
Host MAC
Host IP
Ubuntu -> ping 8.8.8.8 X X X
Kali Linux -> ping 8.8.8.8 X X X
Host -> ping 8.8.8.8 X X Host MAC
Host IP

  

 

   (2) 게스트 OS끼리 통신

    <kali>

 

    <ubuntu>

 

   * 위 실습은 칼리에서 ping 우분투 ip를 통해 통신한 것이다. 반대의 경우도 마찬가지로 잘 실행된다. 호스트에서는 역시 패킷이 잡히지 않는다.

 

 

   (3) 게스트 OS와 호스트 OS 통신 (kali -> host)

     <kali>

 

     <host>

 

   * 인터넷에는 연결이 안 되지만 Host OS와는 통신이 가능하다. Ubuntu 역시 마찬가지다.

 

 

[ 호스트 전용 네트워크 게스트 OS 통신 & 호스트 OS 통신 ]

  Guest OS - Ubuntu Guest OS - Kali Linux Host OS
Network Info Ubuntu MAC
Ubuntu IP
Kali Linux MAC
Kali Linux IP
Host MAC
Host IP
Ubuntu -> Kali Linux Ubuntu MAC
Ubuntu IP
Kali Linux MAC
Kali Linux IP
X
Kali Linux -> Ubuntu Ubuntu MAC
Ubuntu IP
Kali Linux MAC
Kali Linux IP
X
Kali -> Host X Kali Linux MAC
Kali Linux IP
Host MAC
Host IP
Host -> Kali X X X

 

[ 정리 ]

호스트 전용 네트워크

 

호스트 전용 네트워크는 게스트가 가상의 NIC를 이용해 호스트와 통신할 수 있는 네트워크다. 이때, 가상의 NIC은 외부 네트워크로 연결어 있지 않다. 가상의 NIC이 외부로 연결되어 있지 않으므로 인터넷에는 연결할 수 없어 ping 8.8.8.8을 하면 내부 네트워크처럼 ‘connect: Network is unreachable’이 출력되고 바로 종료된다. 게스트끼리의 통신은 가능하고 내부 네트워크와 다르게 호스트와도 통신이 가능하다.

 


네트워크 아키텍쳐 구상

 

1) 내부망 + 외부 통신

구성 요소 : 게스트 OS A, 게스트 OS B, 게스트 OS C, 호스트 OS
 
C는 별도의 IP 할당 없이 외부와 통신 가능, 동시에 내부와도 통신
A, B, C : 내부 망으로 서로 연결이 되어있어야 함
A, B는 외부에서 접속을 못하며, 동시에 외부로 접속하지 못함

게스트 OS A : 내부 네트워크

게스트 OS B : 내부 네트워크

게스트 OS C : NAT + 내부 네트워크

 

 

2) 내부망 + 호스트 전용

구성 요소 : 게스트 OS A, 게스트 OS B, 호스트 OS
 
A는 데이터 통신을 위해 호스트 OS와 연결이 되어있지만, 외부로의 접속은 할 수 없음
B A에 직접적인 네트워크 공격을 하는 OS, 내부망에서의 접속은 필요하지만 외부망으로의 접속은 불가능하다

게스트 OS A : 호스트 전용 + 내부 네트워크

게스트 OS B : 내부 네트워크

'Study > Network' 카테고리의 다른 글

AWS  (0) 2020.11.26
Google Cloud Platform 인스턴스 생성하기  (0) 2020.11.09
[Network] TCP 프로토콜 개념 정리  (0) 2020.09.20
[Network] ARP spoofing 개념 정리  (0) 2020.09.20
[Network] ARP 프로토콜 개념과 실습  (0) 2020.09.20

댓글