[VirtualBox] 네트워크 설정

xeomina·2022년 5월 17일
0

Linux

목록 보기
4/16

가상 머신의 네트워크 섹션에서는 VirtualBox가 가상 네트워크 카드를 VM에 제공하는 방법과 작동 방식을 구성할 수 있다. 각 네트워킹 어댑터는 다음 모드 중 하나로 작동하도록 별도로 구성할 수 있다.

방법VM→호스트VM←호스트VM1↔VM2VM→Net/LANVM←넷/LAN
호스트 전용+++
내부+
브리지+++++
NAT+포트 포워드+포트 포워드
NAT 서비스+포트 포워드++포트 포워드

출처 : https://www.virtualbox.org/manual/ch06.html

1. 네트워크 주소 변환(NAT)

NAT(Network Address Translation)는 가상 머신에서 외부 네트워크에 액세스하는 가장 간단한 방법으로, 이때 NAT 방식으로 연결된 가상머신은 모두 같은 IP가 할당된다.

NAT 모드에서 라우터는 각 가상 머신과 호스트 사이에 배치된다. 따라서 내부의 가상 머신들은 서로 통신할 수 없고, 외부의 호스트에서도 접근이 불가능하다.

포트 포워딩(Port Forwarding)

하나의 IP 주소와 포트 번호 결합의 통신 요청을 다른 곳으로 넘겨주는 NAT의 응용이다.

NAT는 송신 전용 게이트로 라우터가 없기 때문에 외부에서 내부(인바운드)로 수신이 불가하다. 따라서 수신을 위해서는 포트포워딩 설정을 통해, 호스트의 특정 포트를 통해 들어오는 패킷을 내부의 게스트에게 다시 전달해야 한다.

  • CentOS > 설정 > 네트워크 > 포트 포워딩 > 새 포트 포워딩 규칙 추가

  • SSH 프로토콜 도구 이용해서 VM에 접근
    • ssh를 이용할 때는 22번 port 이용 (TCP)
    • 호스트 ip (window10 ip), 호스트 port (22)
    • 게스트 ip (10.0.2.15), 게스트 port (22)

  • ssh root@<host IP>
C:\Users\user>ssh root@192.168.0.4
The authenticity of host '192.168.0.4 (192.168.0.4)' can't be established.
ECDSA key fingerprint is SHA256:UtZ1c/AE5Ix2E3+tnW4ITpYcsGGMDBimAW24NS8vMSI.
Are you sure you want to continue connecting (yes/no)? 
  • yes : known host로 등록
C:\Users\user>ssh root@192.168.0.4
root@192.168.0.4's password:
Last login:
[root@localhost ~]# adduser <USER>
[root@localhost ~]# passwd <USER>
Changing password for user <USER>.
New password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]#

2. NatNetwork

  • 원본과 복제본 ip 주소가 같음
    • 같으면 통신 불가
    • NAT로 세팅했기 때문
    • vm들이 다 똑같은 ip 부여 받음
  • NatNetwork가 더 바람직
  • VM만 NAT 두종류!
  • 전역설정
    • 파일 > 환경설정 > 네트워크 > NAT 네트워크 추가

  • 개별 설정(두개 다)
    • 설정 > 네트워크 > NAT 네트워크 선택

  • DHCP (Dynamic Host Configuration Protocol)

    • 동적 호스트 구성 프로토콜
    • 컴퓨터와 사용자에게 IP 주소를 자동으로 할당
  • VM 안에도 DHCP 기능 존재 - 자동으로 NAT ip 부여

    • 다 같은 ip - MAC 주소(pysical주소) - 가 같기 때문에!
    • MAC 주소 변경 가능
  • 개별 설정

    • 네트워크 > 고급 > MAC 주소 새로고침
    • 각 VM 다른 IP 주소 갖게 됨
      • CentOS7Minimal : 10.0.2.5
      • CentOS7Minimal - 복제 : 10.0.2.4

  • 두개의 호스트 - 10.0.2. : 같은 네트워크 / 5. or .4 : 호스트

    • A : 10.0.2.5
    • B : 10.0.2.4
  • 하나의 ip로 두개의 vm에 접근 가능해야 함 - 도커 컨테이너 !

  • 전역설정
    • 파일 > 환경설정 > 네트워크 > NatNetwork 더블클릭 > 포트 포워딩 > 추가

  • VM1 접속

    • inet 10.0.2.4
    C:\Users\user>ssh root@192.168.0.4
    root@192.168.0.4's password:
    Last login: Tue Apr  5 12:17:01 2022 from 10.0.2.5
    [root@localhost ~]#
  • VM2 접속

    • inet 10.0.2.5
  • -p : port 번호

    C:\Users\user>ssh -p 2222 root@192.168.0.4
    root@192.168.0.4's password:
    Last login: Tue Apr  5 12:14:31 2022
    [root@localhost ~]#
  • NatNetwork를 사용하는 것이 바람직!

    • 도커 네트워크와 유사

03. host only

  • 호스트 전용 어댑터
  • host only IP는 인터넷 사용 불가, 연결 안됨
    • 127.0.0.1는 localhost IP (loopback IP)
  • 개별설정 > 네트워크 > 호스트 전용 어댑터
    • 원본 MAC주소 : 08002720E316
    • 복제 MAC주소 : 080027189E9A

  • Host-Only Network의 가상 랜카드를 통해 ping, ssh 가능

    • 포트 포워딩 필요 x

    • 192.168.56.~ : 네트워크가 같음

    • ping

      C:\Users\user>ping 192.168.56.101
      
      Ping 192.168.56.101 32바이트 데이터 사용:
      192.168.56.101의 응답: 바이트=32 시간=1ms TTL=64
      192.168.56.101의 응답: 바이트=32 시간<1ms TTL=64
      192.168.56.101의 응답: 바이트=32 시간<1ms TTL=64
      
      192.168.56.101에 대한 Ping 통계:
          패킷: 보냄 = 3, 받음 = 3, 손실 = 0 (0% 손실),
      왕복 시간(밀리초):
          최소 = 0ms, 최대 = 1ms, 평균 = 0ms
      Control-C
      ^C
      C:\Users\user>ping 192.168.56.102
      
      Ping 192.168.56.102 32바이트 데이터 사용:
      192.168.56.102의 응답: 바이트=32 시간<1ms TTL=64
      192.168.56.102의 응답: 바이트=32 시간<1ms TTL=64
      192.168.56.102의 응답: 바이트=32 시간<1ms TTL=64
      
      192.168.56.102에 대한 Ping 통계:
          패킷: 보냄 = 3, 받음 = 3, 손실 = 0 (0% 손실),
      왕복 시간(밀리초):
          최소 = 0ms, 최대 = 0ms, 평균 = 0ms
    • ssh

      C:\Users\user>ping 192.168.56.101
      
      Ping 192.168.56.101 32바이트 데이터 사용:
      192.168.56.101의 응답: 바이트=32 시간=1ms TTL=64
      192.168.56.101의 응답: 바이트=32 시간<1ms TTL=64
      192.168.56.101의 응답: 바이트=32 시간<1ms TTL=64
      
      192.168.56.101에 대한 Ping 통계:
          패킷: 보냄 = 3, 받음 = 3, 손실 = 0 (0% 손실),
      왕복 시간(밀리초):
          최소 = 0ms, 최대 = 1ms, 평균 = 0ms
      Control-C
      ^C
      C:\Users\user>ping 192.168.56.102
      
      Ping 192.168.56.102 32바이트 데이터 사용:
      192.168.56.102의 응답: 바이트=32 시간<1ms TTL=64
      192.168.56.102의 응답: 바이트=32 시간<1ms TTL=64
      192.168.56.102의 응답: 바이트=32 시간<1ms TTL=64
      
      192.168.56.102에 대한 Ping 통계:
          패킷: 보냄 = 3, 받음 = 3, 손실 = 0 (0% 손실),
      왕복 시간(밀리초):
          최소 = 0ms, 최대 = 0ms, 평균 = 0ms
  • 인터넷 연결하기 위해 랜카드 하나 더 생성

    • 설정 > 네트워크 > 어댑터2 > NAT 네트워크

  • enp0s3 / enp0s8 : NIC 인터페이스명

  • 포트포워드 : 호스트 내부에선 필요없지만 외부에서는 필요!
  • 파일 > 환경설정 > 네트워크 > NatNetwork 더블클릭 > 포트 포워딩 > 추가

  • 포트포워딩으로 외부 VM과 연결
C:\Users\user> ssh kosa@192.168.0.21
kosa@192.168.0.21's password:
Last login: Tue Apr  5 11:30:15 2022 from gateway
[kosa@localhost ~]$
  • hostonly : 보안상의 이유로 사내에서 사용

04. bridge

  • 외부IP사용가능

  • 개별설정 > 네트워크 > 어댑터1 > 어댑터에 브리지

C:\Users\user>ssh kosa@192.168.0.96
kosa@192.168.0.96's password:
Last login: Tue Apr  5 14:35:27 2022 from 192.168.0.4
[kosa@localhost ~]$

05. 내부네트워크

  • 나중에...

0개의 댓글