게으른 개발자

VirtualBox에 생성한 가상머신(Guest 운영체제)과 Host 운영체제와의 통신 설정 본문

Linux/CentOS7

VirtualBox에 생성한 가상머신(Guest 운영체제)과 Host 운영체제와의 통신 설정

Tomato_Coffee 2024. 2. 14. 22:23

Host = window / 가상머신 = centOS7

  • NAT = Network Address Translation
    • Source NAT( S-NAT)
      • 출발지 IP 주소가 공인 IP 주소로 변환
    • Destination NAT(D-NAT)
      • 공인 IP 주소가 도착지 IP 주소로 변환

 

virtual box에서 외부로 나갈때 공인 IP로 변환해준다.

이더넷 카드가 1개 일때, 장착이 된면서 할당 되는 IP는 = 10.0.2.15 이다. ==> A class 사설 IP

 

사설 IP는 외부망으로 못나간다. 그래서 외부로 나갈때는 virtual box 에서 "공인 IP"로 변환해서 나갈수 있게  해주는데 이것을 NAT 라고 한다.

 

[root@www ~]# ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::5723:f0f:2d76:c8a5  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:3b:8b:7b  txqueuelen 1000  (Ethernet)
        RX packets 36  bytes 13567 (13.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 68  bytes 8457 (8.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 48  bytes 4080 (3.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 48  bytes 4080 (3.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:c0:e1:13  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@www ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:3b:8b:7b brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic enp0s3
       valid_lft 85023sec preferred_lft 85023sec
    inet6 fe80::5723:f0f:2d76:c8a5/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:c0:e1:13 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:c0:e1:13 brd ff:ff:ff:ff:ff:ff
[root@www ~]#
  • NAT 로 설정하게 되면 가상머신에 설치한 운영체제에서 외부 인터넷으로 잘 통신이 된다.
    • 그러나 window(host), 내부(가상머신)간의 통신은 불가하다.
    • 그러면 통신하는 법은?
      • 이더넷 카드를 '하나 더' 장착한다.

어댑터2에서  [호스트 전용 어댑터]를 선택한다.

[호스트 전용 어댑터] : Host OS와 내부 가상머신끼리도 통신이 가능해진다.

 

네트워크 항목을 보면 어댑터가 2개가 있는것을 확인할 수있다.

 

가상머신을 시작해서 터미널로 ifconfig  를 입력해서 확인해 보자

[root@www ~]# ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::5723:f0f:2d76:c8a5  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:3b:8b:7b  txqueuelen 1000  (Ethernet)
        RX packets 36  bytes 13566 (13.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 65  bytes 8316 (8.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.101  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::65d1:2650:3f0e:ebe3  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:6a:a4:f0  txqueuelen 1000  (Ethernet)
        RX packets 3  bytes 1240 (1.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 33  bytes 5063 (4.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 60  bytes 5100 (4.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 60  bytes 5100 (4.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:c0:e1:13  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@www ~]#

 

enp0s3, enp0s8 이 뜨는걸 확인할 수 있다.

virtual box에서 host only adaptor 대역들은 192.168.56.xxx 가 쓰인다.

 

윈도우에서 제어판을 열어서

[제어판 -> 모든 제어판 항목 -> 네트워크 및 공유 센터 -> 어답터 설정 변경 클릭] 

VirtualBox Host - Only Network을 우클릭해서 속성을 연다.
인터넷 프로토콜 버전 4 클릭 192.168.56.1 로 host와 가상머신이 통신가능하다.

주의) test전에 윈도우 방화벽을 꺼야  centOS에서 ping 이 보내진다.

 

'Linux > CentOS7' 카테고리의 다른 글

VirtualBox의 가상머신복제  (0) 2024.02.14
VirtualBox 가상 머신 파일 VDI 백업 & 불러오기  (0) 2024.02.14
설치확인용 명령어  (0) 2024.02.14