VirtualBox 2.0.2 에서 Host Interface Network 사용하기

Host interface를 사용하는 방법은 여러가지가 있으나, 그중 한가지를 먼저 공유하고자 합니다. (vbox 드라이버 사용)
[color=#BF0000:20ipkz9b]아래에 기술된 것은 완전수동설정 방법입니다[/color:20ipkz9b]. 자동설정은 다음번 팁에 쓸것입니다

[b:20ipkz9b]조건[/b:20ipkz9b]:

  • 공유기를 쓴다.
  • 네트워크 정보는 아래와 같다고 가정합니다. 게이트웨이: [b:20ipkz9b]192.168.123.254/255.255.255.0[/b:20ipkz9b]
  • 무선네트워크카드를 사용하지 않고, [color=#BF0000:20ipkz9b][u:20ipkz9b]유선네트워크 카드를 사용[/u:20ipkz9b] [/color:20ipkz9b]

[b:20ipkz9b]01)[/b:20ipkz9b] /etc/network/interface

[code:20ipkz9b]
auto lo
iface lo inet loopback

auto eth0
[/code:20ipkz9b]

[b:20ipkz9b]02)[/b:20ipkz9b] 초기화 (에러나도 무시하세요; br0 및 vbox0 )

[code:20ipkz9b]

ifconfig eth0 down

ifconfig br0 down

brctl delbr br0

VBoxDeleteIF vbox0

route del default

[/code:20ipkz9b]

[b:20ipkz9b]03)[/b:20ipkz9b] 셋업

[code:20ipkz9b]

brctl addbr br0

ifconfig eth0 0.0.0.0 promisc

brctl addif br0 eth0

ifconfig br0 192.168.123.1 netmask 255.255.255.0

VBoxAddIF vbox0 버박사용자ID br0 (버박사용자ID는, 각자의 ID 입니다)

route add default gw 192.168.123.254

[/code:20ipkz9b]

[b:20ipkz9b]04)[/b:20ipkz9b] [color=#BF0000:20ipkz9b]적용할 VirtualBox의 VM 네트워크를 Host Interface로 변경하고, 인터페이스 이름을 [b:20ipkz9b]vbox0 [/b:20ipkz9b]로 기입합니다[/color:20ipkz9b]
[attachment=0:20ipkz9b]screenshot1.png[/attachment:20ipkz9b]

[b:20ipkz9b]05)[/b:20ipkz9b] 부팅후, VM의 네트워크 설정을 아래와 같이 합니다.

[code:20ipkz9b]
IP: 192.168.123.2
MASK: 255.255.255.0
GATEWAY: 192.168.123.254
DNS Server: 알아서,
[/code:20ipkz9b]

[b:20ipkz9b]06)[/b:20ipkz9b] 테스트

  • VM안에서 [url:20ipkz9b]http://www.rejetto.com/hfs/[/url:20ipkz9b] 에서 HTTP File Server를 다운받습니다.
  • 실행
  • HOST측에서 브라우저 열고, http://192.168.123.2/ 입력해봅니다.
  • OK

[b:20ipkz9b]주의사항[/b:20ipkz9b]:

  1. HOST (192.168.123.1)에서 VM(192.168.123.2)으로 ping 안들어갑니다. 문제 아닙니다.

한개이상의 VM을 브릿지네트웍 환경으로 쓰기위해선, [b:or61x7u3]03) 과정[/b:or61x7u3]에서 추가적인 vbox 드라이버를 만듭니다. 이때 주의할 것은, [u:or61x7u3]기존의 브릿지 드라이버(br0)외에 다른 브릿지를 만들지 않는다[/u:or61x7u3]는 것입니다.
예:

[code:or61x7u3]

VBoxAddIF vbox1 버박사용자ID br0

VBoxAddIF vbox2 버박사용자ID br0

VBoxAddIF vbox3 버박사용자ID br0

[/code:or61x7u3]

주의1) eth0 와 vbox0…vboxN 드라이버의 네트웍은 같은 네트웍 상태입니다

[color=#FF8040:2ooh2t80][b:2ooh2t80]아래에 기술된 것은 자동설정 방법입니다.[/b:2ooh2t80][/color:2ooh2t80]

조건:

  • 공유기를 쓴다: [b:2ooh2t80]192.168.123.254/255.255.255.0[/b:2ooh2t80]
  • 호스트PC의 IP: [b:2ooh2t80]192.168.123.1[/b:2ooh2t80]
  • [b:2ooh2t80]VirtualBox의 VM 네트웍: 192.168.123.0/255.255.255.0, GATEAY: 192.168.123.254[/b:2ooh2t80]
  • 무선네트워크카드를 사용하지 않고, [b:2ooh2t80][u:2ooh2t80]유선네트워크 카드를 사용[/u:2ooh2t80][/b:2ooh2t80]

[b:2ooh2t80]01)[/b:2ooh2t80] 가상드라이버 생성. vbox 드라이버는 3개로 가정하며, [color=#BF0080:2ooh2t80][u:2ooh2t80]이 과정은 한번만 진행합니다[/u:2ooh2t80][/color:2ooh2t80]. br0 나 vbox 드라이버가 존재한다면 다시 생성하지 않아도 좋습니다.

[code:2ooh2t80]

/etc/init.d/networking stop

brctl addbr br0

VBoxAddIF vbox0 사용자ID

VBoxAddIF vbox1 사용자ID

VBoxAddIF vbox2 사용자ID

[/code:2ooh2t80]

[b:2ooh2t80]02)[/b:2ooh2t80] /etc/network/interfaces 파일 수정

[code:2ooh2t80]
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
up ifconfig eth0 0.0.0.0 up
up ip link set eth0 promisc on

auto vbox0
iface vbox0 inet manual

auto vbox1
iface vbox1 inet manual

auto vbox2
iface vbox2 inet manual

auto br0
iface br0 inet static
address 192.168.123.1
netmask 255.255.255.0
gateway 192.168.123.254
bridge_ports eth0 vbox0 vbox1 vbox2
bridge_maxwait 0
[/code:2ooh2t80]

[b:2ooh2t80]03)[/b:2ooh2t80] 네트워크 재시작

[code:2ooh2t80]

/etc/init.d/networking start[/code:2ooh2t80]

[b:2ooh2t80]04)[/b:2ooh2t80] VirtualBox의 VM 네트워크 설정을 Host Interface로 변경하고, 인터페이스 이름을 각각 vbox0, vbox1, vobx2, 등으로 준다.

  • VirutalBox 각각의 VM 네트웍 설정은 수동설정이다.

OK. good luck.

[color=#FF8040:2qiv4716][b:2qiv4716]아래에 기술된 것은 무선랜상태에서의 DHCP 하에서의 수동연결 방법입니다.[/b:2qiv4716][/color:2qiv4716]

조건:

  • 공유기를 쓴다: [b:2qiv4716]192.168.123.254/255.255.255.0[/b:2qiv4716]
  • 호스트PC의 IP: DHCP
  • [b:2qiv4716]VirtualBox의 VM 네트웍: 192.168.123.0/255.255.255.0, GATEAY: 192.168.123.254[/b:2qiv4716]
  • 무선네트워크카드를 사용 (드라이버 명은 wlan0 라고 가정)

[b:2qiv4716]01)[/b:2qiv4716] 가상드라이버 생성. vbox 드라이버는 3개로 가정하며, [color=#BF0080:2qiv4716][u:2qiv4716]이 과정은 한번만 진행합니다[/u:2qiv4716][/color:2qiv4716]. vbox 드라이버가 존재한다면 다시 생성하지 않아도 좋습니다. (이 방법에서는 br0를 만들지 않습니다)

[code:2qiv4716]

/etc/init.d/networking stop

apt-get install parprouted

VBoxAddIF vbox0 사용자ID

VBoxAddIF vbox1 사용자ID

VBoxAddIF vbox2 사용자ID

[/code:2qiv4716]

[b:2qiv4716]02)[/b:2qiv4716] /etc/network/interfaces 파일 수정 (로밍모드 사용이라 가정)

[code:2qiv4716]
auto lo
iface lo inet loopback
[/code:2qiv4716]

[b:2qiv4716]03)[/b:2qiv4716] 네트워크 재시작후, 무선랜을 연결하여 IP를 할당받았다고 가정한다.

[code:2qiv4716]

/etc/init.d/networking start[/code:2qiv4716]

[b:2qiv4716]04)[/b:2qiv4716] 무선랜드라이버는 L2 브릿지를 지원하지 않으므로, parprouted 유틸리티를 사용하여 브릿징한다

[code:2qiv4716]

parprouted wlan0 vbox1 vbox2 (연결하고자 하는만큼.. )

ifconfig vbox1 inet 192.168.123.60 netmask 255.255.255.0

route add -net 192.168.123.0 netmask 255.255.255.0 vbox0

(# ... 기타, 다른 vbox 의 요구사항/설정에 따라 다른 처리..)
[/code:2qiv4716]

[b:2qiv4716]05)[/b:2qiv4716] VirtualBox의 VM 네트워크 설정을 Host Interface로 변경하고, 인터페이스 이름을 각각 vbox0, vbox1, vobx2, 등으로 준다.

  • VirutalBox 각각의 VM 네트웍 설정은 수동설정이다.
  • (예를들어) vbox0 를 사용하는 VM안에서의 네트워크 IP는 192.168.123.61로 한다. (즉, vbox0 의 호스트IP 보다 하나더 큰 값)
  • ping 이 안되지만, 다른 연결은 문제없다.

뭔가, 보기좋지 않아서 그다지 썩 맘에 드는 설정은 아닙니다. 그러나, 이것을 토대로 각자 입맛에 맛게 해볼순 있겠지요…

[quote="andrwj":3ngfwh2r][color=#FF8040:3ngfwh2r][b:3ngfwh2r]아래에 기술된 것은 자동설정 방법입니다.[/b:3ngfwh2r][/color:3ngfwh2r]

조건:

  • 공유기를 쓴다: [b:3ngfwh2r]192.168.123.254/255.255.255.0[/b:3ngfwh2r]
  • 호스트PC의 IP: [b:3ngfwh2r]192.168.123.1[/b:3ngfwh2r]
  • [b:3ngfwh2r]VirtualBox의 VM 네트웍: 192.168.123.0/255.255.255.0, GATEAY: 192.168.123.254[/b:3ngfwh2r]
  • 무선네트워크카드를 사용하지 않고, [b:3ngfwh2r][u:3ngfwh2r]유선네트워크 카드를 사용[/u:3ngfwh2r][/b:3ngfwh2r]

[b:3ngfwh2r]01)[/b:3ngfwh2r] 가상드라이버 생성. vbox 드라이버는 3개로 가정하며, [color=#BF0080:3ngfwh2r][u:3ngfwh2r]이 과정은 한번만 진행합니다[/u:3ngfwh2r][/color:3ngfwh2r]. br0 나 vbox 드라이버가 존재한다면 다시 생성하지 않아도 좋습니다.

[code:3ngfwh2r]

/etc/init.d/networking stop

brctl addbr br0

VBoxAddIF vbox0 사용자ID

VBoxAddIF vbox1 사용자ID

VBoxAddIF vbox2 사용자ID

[/code:3ngfwh2r]

[b:3ngfwh2r]02)[/b:3ngfwh2r] /etc/network/interfaces 파일 수정

[code:3ngfwh2r]
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
up ifconfig eth0 0.0.0.0 up
up ip link set eth0 promisc on

auto vbox0
iface vbox0 inet manual

auto vbox1
iface vbox1 inet manual

auto vbox2
iface vbox2 inet manual

auto br0
iface br0 inet static
address 192.168.123.1
netmask 255.255.255.0
gateway 192.168.123.254
bridge_ports eth0 vbox0 vbox1 vbox2
bridge_maxwait 0
[/code:3ngfwh2r]

[b:3ngfwh2r]03)[/b:3ngfwh2r] 네트워크 재시작

[code:3ngfwh2r]

/etc/init.d/networking start[/code:3ngfwh2r]

[b:3ngfwh2r]04)[/b:3ngfwh2r] VirtualBox의 VM 네트워크 설정을 Host Interface로 변경하고, 인터페이스 이름을 각각 vbox0, vbox1, vobx2, 등으로 준다.

  • VirutalBox 각각의 VM 네트웍 설정은 수동설정이다.

OK. good luck.[/quote:3ngfwh2r]

나의 네트워크 환경…
호스트PC : DHCP
게스트PC : DHCP
네트워크 연결 방식 : 유선연결…

위 방법으로 하였는데 안되내요…
1번은 이상없이 되구요…
2번 글에서 에러가 발생합니다.
제 interface환경입니다.
auto lo
iface lo inet loopback

iface eth0 inet dhcp

auto eth0

iface eth0 inet manual
up ifconfig eth0 0.0.0.0 up
up ip link set eth0 promisc on

auto vbox0
iface vbox0 inet manual

auto br0

iface br0 inet dhcp
#iface br0 inet static
#address 192.168.123.1
#netmask 255.255.255.0
#gateway 192.168.123.254

bridge_ports eth0 vbox0
bridge_maxwait 0

이렇게 설정하고 networking restart하면

  • Reconfiguring network interfaces… /etc/network/interfaces:10: duplicate interface
    ifdown: couldn’t read interfaces file "/etc/network/interfaces"
    /etc/network/interfaces:10: duplicate interface
    ifup: couldn’t read interfaces file "/etc/network/interfaces"
    [fail]
    이렇게 에러가 발생합니다…

[b:4kwcgn08]기존:

[quote="asakkum":4kwcgn08]
auto lo
iface lo inet loopback

iface eth0 inet dhcp <– 오류

auto eth0

iface eth0 inet manual
up ifconfig eth0 0.0.0.0 up
up ip link set eth0 promisc on

auto vbox0
iface vbox0 inet manual

auto br0

iface br0 inet dhcp
#iface br0 inet static
#address 192.168.123.1
#netmask 255.255.255.0
#gateway 192.168.123.254

bridge_ports eth0 vbox0
bridge_maxwait 0
[/quote:4kwcgn08]

[b]수정후[/b:4kwcgn08]:

[code:4kwcgn08]
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
up ifconfig eth0 0.0.0.0 up
up ip link set eth0 promisc on

auto vbox0
iface vbox0 inet manual

auto br0
iface br0 inet dhcp
#iface br0 inet static
#address 192.168.123.1
#netmask 255.255.255.0
#gateway 192.168.123.254

bridge_ports eth0 vbox0
bridge_maxwait 0
[/code:4kwcgn08]

다시 말씀드리지만, [color=#BF0000:4kwcgn08][b:4kwcgn08]eth0가 br0와 브릿징되면 IP는 br0에 할당되는 것[/b:4kwcgn08][/color:4kwcgn08]이지 eth0가 아닙니다.
HOST측에서 DHCP를 받을수는 있으나, VM안에서는 DHCP가 안될수있습니다. 그경우, 직접할당해보세요

왜 안될까요?
저의 interface 환경입니다.
[방식1]
auto lo
iface lo inet loopback

auto eth0

iface eth0 inet manual
up ifconfig eth0 0.0.0.0 up
up ip link set eth0 promisc on

auto vbox0
iface vbox0 inet static
address 192.168.0.30 <— 사설ip
netmask 255.255.255.0
gateway 192.168.0.1

auto br0
iface br0 inet static
address 160.??.??.?? <– public ip
netmask 255.255.255.0
gateway 160.??.??.??

bridge_ports eth0 vbox0
bridge_maxwait 0

[방식2]
auto lo
iface lo inet loopback

auto eth0

iface eth0 inet static
up ifconfig eth0 0.0.0.0 up
up ip link set eth0 promisc on
address 160.??.??.??
netmask 255.255.255.0
gateway 160.??.??.??

auto vbox0
iface vbox0 inet manual

auto br0
iface br0 inet dhcp

bridge_ports eth0 vbox0
bridge_maxwait 0

버박의 네트워크의 호스트명은 vbox0 입력(호스트 인터페이스 선택)

방식2의 경우 호스트 OS의 네트워크도 안됨
방식1의 경우 호스트 OS의 네트워크는 되지만 게스트 OS는 네트워크가 안됨
방식1의 경우 게스트 OS의 비스타의 네트워크 환경을 보면 식별되지 않은 네트워크로 나옵니다.

간단히 설명 드리면
여기서 브릿지 br0과 호스트 인터페이스 vbox0은 동일한 lan에 속해야 됩니다.
(이 브릿지 모드가 tcp/ip가 아니라 그 하위의 이더넷 계층에서 이루어지는데… 설명도 복잡고, 저도 지식이 짧아 그냥 동일 lan에 속해야 된다고 보면 됨)
그러기 위해서는 br0과 vbox0은 같은 게이트웨이, 서브넷 마스크에 ip주소에서 호스트 주소 부분만 달라야 합니다.

현재 공유기를 사용한다는 가정하에서 말씀드리면
님의 공유기(=게이트웨이)의 주소가 192.168.0.1이고 서브넷 마스크가 255.255.255.0이라면
호스트 주소로 192.168.0.2~254 까지 할당할 수 있습니다.
이 주소 중에서 공유기에 물린 다른 장치(컴퓨터)와 중복되지 않게 브릿지 br0과 vbox0(그리고 vbox1, vbox2…)에 할당해 주시면 될겁니다.

조금 더 설명드리자면,
여기서 192.168.0.x을 하나의 네트워크로 보고(실제로 192.168.0.0은 현재 속한 네트워크 전체를 나타내는 주소입니다).
192.168.0.1 ~ 192.168.0.254 까지가 192.168.0.0이라는 네트워크에 속하는 호스트(같은 네트워크에 속하는 컴퓨터들, 정확히는 네트워크 장치들)의 주소입니다.
공유기(= 게이트웨이)가 192.168.0.1의 주소가 지정되었으니 192.168.0.2~254까지 호스트 주소로 할당해 줄 수 있습니다.
여기에서 브릿지 모드로 통신이 이뤄질려면 br0과 vbox0(그리고 vbox1, vbox2…)들은 모두 동일한 네트워크의 호스트 주소를 가져야 합니다. 즉 192.168.0.2~254까지 주소 중 중복되지 않게 할당해서 사용하면 됩니다.
(보통은 공유기가 dhcp로 자동으로 할당해서 사용하죠.)

그래서 공인 ip를 현재 컴퓨터에 할당받아 사용하신다면, 공인 ip가 속하는 네트워크의 또다른 공인 ip를 더 할당 받아서 호스트 인터페이스에(vbox0, vbox1…) 지정해줘야 합니다.
보통 하나의 공인 ip만 할당받을 수 있는 환경이라면, 공유기를 사용하지 않는다면, 브릿지 모드는 사용할 수 없다고 생각하시면 됩니다.

그럼 브릿지란 동일 네트우크 영역에서의 물리적 네트워크 카드 하나로 IP두개를 사용하는 방식이라는 말씀이시군요.
음.그럼 제가 잘못 알고 있었군요…전 물리적 네트워클 카드하나에 가상 네트워크 인터페이스를 추가하여
그 물리적 네트워크와 가산 네트워크의 IP를 서로 브릿지해주는 걸로 알고 있었습니다.(표현이 맞는지 모르겠습니다.)
아쉽군요…public IP와 사설 IP를 서로 연결해주는 방식이 있으면 더 좋을 텐데요…
브릿지와 NAT의 중간이랄까???

시간이 되신다면 http://www.ubuntu.or.kr/viewtopic.php?f=11&t=1737 질문에도 댓글 부탁드립니다.

감사합니다…xbit, andrwj님…많은 도움이 되었습니다…

저도 사실 크게 아는 것 없습니다.
컴터 좋아해서 이리저리 지식을 얻어다 대충 끼워맞춰서 사용중인 사용자 일뿐입니다.

VirtualBox의 설명서 6.4장을 보시면 포트 포워딩 방법이 있습니다.
6.4장 아랫부분에 포트포워딩관련 제한사항이 있는데, 방화벽쪽 문제가 아니고,
님의 프로그램이 ftp서버 역할이라면 아마 관련 있을듯…

브릿지와 NAT 중간이라… 정확히 어떤 것을 원하는지 모르겠지만
호스트에 공인 ip, 게스트 운영체제에 사설 ip라면… 그냥 NAT아닌가요…
굳이 NAT를 직접 구현하고자 한다면…
IP 마스커레이딩에 대해서 한번 알아보시죠.