<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://workspace.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Service_gentoo_virtualbox_headless_bridge</id>
	<title>Service gentoo virtualbox headless bridge - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://workspace.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Service_gentoo_virtualbox_headless_bridge"/>
	<link rel="alternate" type="text/html" href="https://workspace.onionmixer.net/wiki/index.php?title=Service_gentoo_virtualbox_headless_bridge&amp;action=history"/>
	<updated>2026-04-21T08:13:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://workspace.onionmixer.net/wiki/index.php?title=Service_gentoo_virtualbox_headless_bridge&amp;diff=1513&amp;oldid=prev</id>
		<title>Onionmixer: 오타 수정</title>
		<link rel="alternate" type="text/html" href="https://workspace.onionmixer.net/wiki/index.php?title=Service_gentoo_virtualbox_headless_bridge&amp;diff=1513&amp;oldid=prev"/>
		<updated>2021-06-03T07:41:46Z</updated>

		<summary type="html">&lt;p&gt;오타 수정&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;Gentoo host 운영에 대한 VirtualBox headless 및 bridge 세팅 및 동작&lt;br /&gt;
&lt;br /&gt;
==개요==&lt;br /&gt;
&lt;br /&gt;
이 문서는 Gentoo linux 위에서 VirtualBox 를 headless 로 운영할때 bridge 세팅에 대한 내용을 서술한다. 다음과 같은 상황을 전제조건으로 한다. 비슷한 상황에서도 작동할 것으로 예상되지만 100% 장담을 할 수는 없기때문에, 그런경우는 참고문서 정도로 사용해야 한다.&lt;br /&gt;
&lt;br /&gt;
* Gentoo 2016 host&lt;br /&gt;
* kernel 4.6.2&lt;br /&gt;
* virtualbox 5.0 이상&lt;br /&gt;
* host 가 openrc&lt;br /&gt;
* bridge 의 사용&lt;br /&gt;
* 다른곳에서 미리 세팅한 VirtualBox 가상머신 이미지 세트&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
본 문서는 다른곳에서 이미 VBox 가상머신 이미지를 미리 세팅했다는 전제를 가지고 있다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
본 문서는 심하게 친절하지 않으므로 모르는 용어가 있다면 인터넷에서 검색을 해볼것을 권한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==왜 굳이 귀찮게 Bridge를 사용하는가==&lt;br /&gt;
&lt;br /&gt;
본인은 다음과 같은 경우에 해당되었다.&lt;br /&gt;
&lt;br /&gt;
# 서버가 죽었다. 수명이 11년이 된 서버. 아마도 원인은 파워불량&lt;br /&gt;
# 여분 서버를 할당하기 애매한 상황. 왜냐하면 내부가 10년전 gentoo linux 그대로...&lt;br /&gt;
# 이 상태를 그대로 살려서 사용하고 싶다. network 구성에 따라 nat 로 하나 더 IP 를 할당해서 port forwarding 을 하기 애매할때.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==VirtualBox 의 설치==&lt;br /&gt;
&lt;br /&gt;
커널이 4.x 의 특정버전 이상이라면 VirtualBox 를 5.0 이상을 사용해야 한다. Gentoo Linux 로 운영되고 있는 서버에서 GUI 없이 바로 작동시킬 예정이기 때문에 다음과 같은 USE Flag 를 이용해서 VirtualBox 를 설치하도록 한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
USE=&amp;quot;-opengl -qt4 headless python vnc&amp;quot; emerge virtualbox-5.0.20.ebuild&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==VirtualBox 의 기본환경 세팅==&lt;br /&gt;
&lt;br /&gt;
일반 Desktop 에서 VirtualBox 를 세팅하는 경우라면 모를까.. Headless 로 사용하기 위해 gui 가 없기때문에 이미지등을 생성하는 과정이 어렵다. 기본적인 디렉토리부터 생성하는걸 권장한다. 어차피 root 계정에서 운영할 것이기 때문에 기본파일은 root 계정의 아래쪽으로 생성하는것으로 한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mkdir /root/.VirtualBox&lt;br /&gt;
mkdir /root/.VirtualBox/Machines&lt;br /&gt;
ln -s /root/.VirtoalBox /root/VirtualBox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
기본 디렉토리가 hidden 으로 잡히기 때문에 향후 접근을 편하게 하기 위해서 별도의 심볼릭 링크를 걸도록 한다.&lt;br /&gt;
&lt;br /&gt;
VurtualBox 의 기본 환경 xml 을 세팅하도록 한다. 아래의 파일 이름과 경로로 다음의 XML 을 참고하도록 한다.&lt;br /&gt;
&lt;br /&gt;
:/root/.VirtualBox/VirtualBox.xml&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
** DO NOT EDIT THIS FILE.&lt;br /&gt;
** If you make changes to this file while any VirtualBox related application&lt;br /&gt;
** is running, your changes will be overwritten later, without taking effect.&lt;br /&gt;
** Use VBoxManage or the VirtualBox Manager GUI to make changes.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;VirtualBox xmlns=&amp;quot;http://www.innotek.de/VirtualBox-settings&amp;quot; version=&amp;quot;1.12-linux&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Global&amp;gt;&lt;br /&gt;
    &amp;lt;ExtraData&amp;gt;&lt;br /&gt;
      &amp;lt;ExtraDataItem name=&amp;quot;GUI/DetailsPageBoxes&amp;quot; value=&amp;quot;general,system,preview,display,storage,audio,network,usb,sharedFolders,description&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ExtraDataItem name=&amp;quot;GUI/GroupDefinitions/&amp;quot; value=&amp;quot;m=2f39c30f-8326-4f64-a537-9650c505e48f,m=867647e8-292a-4214-82e9-14e9a0792677,m=061d606a-9499-4454-8c40-4f073d2e013a,m=52e12790-a7e0-42ff-8452-fad80f4c5e84,m=xxxxxxxx-cf4e-4a80-ad75-1c9504b50ab6&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ExtraDataItem name=&amp;quot;GUI/HostScreenSaverDisabled&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ExtraDataItem name=&amp;quot;GUI/Input/AutoCapture&amp;quot; value=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ExtraDataItem name=&amp;quot;GUI/Input/HostKeyCombination&amp;quot; value=&amp;quot;65505,65507&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ExtraDataItem name=&amp;quot;GUI/LastItemSelected&amp;quot; value=&amp;quot;m=VBOXMACHINENAME&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ExtraDataItem name=&amp;quot;GUI/LastVMSelected&amp;quot; value=&amp;quot;5747c3c8-93a0-4d22-9cc9-449791fbc6e0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ExtraDataItem name=&amp;quot;GUI/LastWindowPosition&amp;quot; value=&amp;quot;2593,332,770,550&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ExtraDataItem name=&amp;quot;GUI/RecentFolderCD&amp;quot; value=&amp;quot;/root/Download&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ExtraDataItem name=&amp;quot;GUI/RecentFolderFD&amp;quot; value=&amp;quot;/root/Desktop&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ExtraDataItem name=&amp;quot;GUI/RecentFolderHD&amp;quot; value=&amp;quot;/root/.VirtualBox/Machines/VBOXMACHINENAME&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ExtraDataItem name=&amp;quot;GUI/SplitterSizes&amp;quot; value=&amp;quot;289,475&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ExtraDataItem name=&amp;quot;GUI/SuppressMessages&amp;quot; value=&amp;quot;,remindAboutAutoCapture,remindAboutWrongColorDepth,confirmInputCapture,remindAboutMouseIntegrationOff,remindAboutMouseIntegrationOn,remindAboutInaccessibleMedia,confirmVMReset,showRuntimeError.warning.DvdOrFloppyImageInaccessible,remindAboutMouseIntegration,warnAboutInaccessibleMedia,showRuntimeError.warning.HostAudioNotResponding,confirmResetMachine,confirmPowerOffMachine,confirmGoingSeamless,confirmGoingFullscreen&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ExtraDataItem name=&amp;quot;GUI/TrayIcon/Enabled&amp;quot; value=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ExtraDataItem name=&amp;quot;GUI/UpdateCheckCount&amp;quot; value=&amp;quot;164&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ExtraDataItem name=&amp;quot;GUI/UpdateDate&amp;quot; value=&amp;quot;1 d, 2016-07-08, stable, 5.0.2&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ExtraDataItem name=&amp;quot;HostOnly/vboxnet0/IPAddress&amp;quot; value=&amp;quot;192.168.56.1&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;ExtraDataItem name=&amp;quot;HostOnly/vboxnet0/IPNetMask&amp;quot; value=&amp;quot;255.255.255.0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/ExtraData&amp;gt;&lt;br /&gt;
    &amp;lt;MachineRegistry&amp;gt;&lt;br /&gt;
      &amp;lt;MachineEntry uuid=&amp;quot;{xxxxxxxx-cf4e-4a80-ad75-1c9504b50ab6}&amp;quot; src=&amp;quot;/root/.VirtualBox/Machines/VBOXMACHINENAME/VBOXMACHINENAME.vbox&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/MachineRegistry&amp;gt;&lt;br /&gt;
    &amp;lt;MediaRegistry&amp;gt;&lt;br /&gt;
      &amp;lt;HardDisks/&amp;gt;&lt;br /&gt;
      &amp;lt;DVDImages/&amp;gt;&lt;br /&gt;
      &amp;lt;FloppyImages/&amp;gt;&lt;br /&gt;
    &amp;lt;/MediaRegistry&amp;gt;&lt;br /&gt;
    &amp;lt;NetserviceRegistry&amp;gt;&lt;br /&gt;
      &amp;lt;DHCPServers&amp;gt;&lt;br /&gt;
        &amp;lt;DHCPServer networkName=&amp;quot;HostInterfaceNetworking-vboxnet0&amp;quot; IPAddress=&amp;quot;192.168.56.100&amp;quot; networkMask=&amp;quot;255.255.255.0&amp;quot; lowerIP=&amp;quot;192.168.56.101&amp;quot; upperIP=&amp;quot;192.168.56.254&amp;quot; enabled=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/DHCPServers&amp;gt;&lt;br /&gt;
    &amp;lt;/NetserviceRegistry&amp;gt;&lt;br /&gt;
    &amp;lt;SystemProperties defaultMachineFolder=&amp;quot;/root/.VirtualBox/Machines&amp;quot; defaultHardDiskFormat=&amp;quot;VDI&amp;quot; VRDEAuthLibrary=&amp;quot;VBoxAuth&amp;quot; webServiceAuthLibrary=&amp;quot;VBoxAuth&amp;quot; LogHistoryCount=&amp;quot;3&amp;quot; exclusiveHwVirt=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;USBDeviceFilters/&amp;gt;&lt;br /&gt;
  &amp;lt;/Global&amp;gt;&lt;br /&gt;
&amp;lt;/VirtualBox&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
위의 내용중에서 &amp;quot;VBOXMACHINENAME&amp;quot; 이라고 되어있는 부분을 주의하면 된다. 이 부분이 바로 당신의 가상머신에 대한 데이터를 VirtualBox 에 세팅하는 부부이 된다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==VirtualBox 에 이미지 세팅==&lt;br /&gt;
&lt;br /&gt;
당신의 VirtualBox 이미지를 &amp;quot;/root/.VirtualBox/Machines&amp;quot; 디렉토리에 압축을 풀어준다. 물론 본인의 세팅에 맞는 값을 넣는것은 필수.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
cd /root/.VirtualBox/Machines&lt;br /&gt;
tar xf 압축파일의경로및파일명&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
압축을 풀고나면 당신의 VBOXIMAGE 디렉토리에는 다음과 같은 xml 파일이 하나 있을것이다.&lt;br /&gt;
&lt;br /&gt;
:VBOXMACHINENAME.vbox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이 파일을 편집해서 다음의 내용을 확인하는것이 좋다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Adapter slot=&amp;quot;0&amp;quot; enabled=&amp;quot;true&amp;quot; MACAddress=&amp;quot;08002716E576&amp;quot; cable=&amp;quot;true&amp;quot; speed=&amp;quot;0&amp;quot; type=&amp;quot;82540EM&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;DisabledModes&amp;gt;&lt;br /&gt;
            &amp;lt;NAT&amp;gt;&lt;br /&gt;
              &amp;lt;DNS pass-domain=&amp;quot;true&amp;quot; use-proxy=&amp;quot;false&amp;quot; use-host-resolver=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
              &amp;lt;Alias logging=&amp;quot;false&amp;quot; proxy-only=&amp;quot;false&amp;quot; use-same-ports=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/NAT&amp;gt;&lt;br /&gt;
            &amp;lt;InternalNetwork name=&amp;quot;intnet&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;NATNetwork name=&amp;quot;NatNetwork&amp;quot;/&amp;gt;&lt;br /&gt;
          &amp;lt;/DisabledModes&amp;gt;&lt;br /&gt;
          &amp;lt;BridgedInterface name=&amp;quot;br0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/Adapter&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
해당되는 가상머신에 대한 network 세팅이며 이중에서 가장 첫번째 network adaptor 에 대한 설정이다. 현재 브릿지모드로 세팅되어 있다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;BridgedInterface name=&amp;quot;br0&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이 부분이 중요한 부분임을 기억해두기 바란다. 이후 Gentoo linux Host 에서 세팅하게될 Bridge 세팅에 대한 host network device name 을 설정해야 한다. 본인의 경우는 br0 으로 세팅하기로 했다. 사람에 따라 다를 수 있으니 해당되는 부분은 미리 계획을 잡는것이 필요하다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Host 머신의 Network 설정을 위한 계획==&lt;br /&gt;
&lt;br /&gt;
여기서부터는 다음과 같은 전제를 두고 설명하기로 한다. 브릿지 네트웍을 구성하는 데에는 아래의 내용과 같은 계획을 세우기로 한다.&lt;br /&gt;
&lt;br /&gt;
* host 머신의 랜카드 2장&lt;br /&gt;
* host 머신의 bride device&lt;br /&gt;
** name : br0&lt;br /&gt;
* virtualbox 의 vnet device&lt;br /&gt;
** name : vbox0&lt;br /&gt;
** tap device&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
대부분 근래의 gentoo 머신은 genkernel 을 사용하고 있고 별다른 이상이 없다면 TUN/TAB module 은 설치가 되어있는듯 하다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
또한 최근의 virtualbox 패키지는 별도의 init 을 제공하고 있지 않다. 이때문에 openrc 의 local 를 사용할 예정이니 참고할것.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==VirtualBox 의 TAP 세팅 및 openrc 의 local start 세팅==&lt;br /&gt;
&lt;br /&gt;
매번 시작할때마다 vbox0 을 시작해주는것이 좋기때문에 (문서 작성 시점에서는 별도의 자잘한 테스트는 하지 않았다. Live 상태였기 떄문에) 이 부분을 아예 시스템이 시작할때마다 실행되도록 세팅하도록 하자. 다음의 문서를 참고한다.&lt;br /&gt;
&lt;br /&gt;
:https://wiki.gentoo.org/wiki/OpenRC/Baselayout_1_to_2_migration/ko#local.start_.EA.B3.BC_local.stop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
현재의 openrc 는 더이상 local.start 와 local.stop 이라는 파일을 지원하지 않기때문에 다음의 내용으로 파일을 생성하도록 하자. 파일의 내용은 같지 않아도 상관없다. 확장자만 &amp;quot;.start&amp;quot; 로 지정해주면 된다.&lt;br /&gt;
&lt;br /&gt;
:/etc/local.d/vboxnetadd.start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
VBoxTunctl -b -u root -t vbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이후 &amp;quot;chmod +x&amp;quot; 등의 명령을 이용해서 해당되는 *.start 파일을 실행가능한 상태로 바꿔주도록 하자. 다 끝났다면 해당되는 서비스(?)를 boot process 에 추가해 주도록 하자.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
rc-update add local boot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
대부분의 인터넷 문서에서는 &amp;quot;boot&amp;quot; 가 아니라 &amp;quot;default&amp;quot; 로 추가하는것을 얘기하고 있지만, 본인은 나름대로의 판단으로 이후에 세팅할 network 세팅 이전에 &amp;quot;vbox0&amp;quot; 이라는 virtual network device 가 세팅되어 있어야 가장 오차없는 동작을 확보할 수 있다고 생각하기 때문에 boot level 에 추가하였다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
지금까지 진행한 부분은 서버의 재부팅시 자동으로 시작되는 과정을 세팅한것이고, 이후의 세팅을 위해 바로 &amp;quot;vbox0&amp;quot; 을 생성하도록 하자.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
VBoxTunctl -b -u root -t vbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ifconfig vbox0 up&amp;quot; 이라는 명령어를 사용하고 ifconfig 을 통해 해당되는 device 가 존재한다는걸 확인했으면 virtual network device 는 올바르게 작동할거라고 간주해도 상관없다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==network Bridge 의 세팅(brctl)==&lt;br /&gt;
&lt;br /&gt;
다음의 문서를 우선적으로 참고한다.&lt;br /&gt;
&lt;br /&gt;
:https://wiki.gentoo.org/wiki/Network_bridge&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
위의 문서는 VirtualBox 따위는 고려하지 않은, 순수하게 2개의 물리적 network device 를 Bridge 하는것만 대상으로 하고 있다. 일단 패키지부터 설치하자.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
emerge bridge-utils&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bridge 관련 패키지가 설치되었다면 다음과 같은 명령어를 통해서 당신의 브릿지를 우선 세팅하도록 하자.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
rc-update delete net.당신의랜카드0번 boot&lt;br /&gt;
rc-update delete net.당신의랜카드1번 boot&lt;br /&gt;
rm /etc/init.d/net.당신의랜카드0번&lt;br /&gt;
rm /etc/init.d/net.당신의랜카드1번&lt;br /&gt;
brctl addbr br0&lt;br /&gt;
brctl addif br0 당신의랜카드0번&lt;br /&gt;
brctl addif br0 당신의랜카드1번&lt;br /&gt;
brctl addif br0 vbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
위의 과정을 올바르게 거쳤다면 아마 명령실행을 통해 다음과 같은 결과를 확인할 수 있을것이다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
CORESHADOW ~ # brctl show&lt;br /&gt;
bridge name	bridge id		STP enabled	interfaces&lt;br /&gt;
br0		8000.001517f21c08	no		enp1s0f0&lt;br /&gt;
							enp1s0f1&lt;br /&gt;
							vbox0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
현재의 linux kernel 은 udev 와 더불어 더이상 eth0 또는 ethx 방식의 전통적인 network interface name 을 제공하지 않는다. host 머신의 물리 network inferface name 은 다음과 같은 방법으로 확인할 수 있다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
CORESHADOW ~ # dmesg | grep eth0&lt;br /&gt;
[    7.941879] igb 0000:01:00.0: eth0: (PCIe:2.5Gb/s:Width x4) 00:15:17:f2:1c:08&lt;br /&gt;
[    7.941882] igb 0000:01:00.0: eth0: PBA No: Unknown&lt;br /&gt;
[   10.835850] igb 0000:01:00.0 enp1s0f0: renamed from eth0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NIC 의 회사등에 따라 이름을 바뀔 수 있으니, 절대로 이 문서의 이름을 그대로 사용하면 안된다. 자신의 머신에 맞는 내용을 찾아서 적용할 수 있도록 한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==network Bridge 의 세팅(Gentoo linux 의 설정)==&lt;br /&gt;
&lt;br /&gt;
:https://wiki.gentoo.org/wiki/Network_bridge&lt;br /&gt;
:http://gentoo-en.vfose.ru/wiki/VirtualBox#VirtualBox_Version_.3E.3D_2.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
위의 사이트에도 많은 내용이 적혀있지만 지금의 상황에 100% 들어맞는 내용은 아니다. 문서가 오래되었기 때문이다. 다음의 파일 내용을 세팅하도록 한다.&lt;br /&gt;
&lt;br /&gt;
:/etc/conf.d/net&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
tuntap_vbox0=&amp;quot;tap&amp;quot;&lt;br /&gt;
tunctl_vbox0=&amp;quot;-b -u root&amp;quot;&lt;br /&gt;
config_vbox=&amp;quot;null&amp;quot;&lt;br /&gt;
&lt;br /&gt;
config_enp1s0f0=&amp;quot;null&amp;quot;&lt;br /&gt;
config_enp1s0f1=&amp;quot;null&amp;quot;&lt;br /&gt;
&lt;br /&gt;
bridge_br0=&amp;quot;enp1s0f0 enp1s0f1 vbox0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#config_br0=&amp;quot;HOST머신의IP/HOST머신의SUBNET&amp;quot;&lt;br /&gt;
#routes_br0=&amp;quot;default via HOST머신의GATEWAYIP&amp;quot;&lt;br /&gt;
config_br0=&amp;quot;192.168.0.31/24&amp;quot;&lt;br /&gt;
routes_br0=&amp;quot;default via 192.168.0.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
brctl_br0=&amp;quot;setfd 0&amp;quot;&lt;br /&gt;
brctl_br0=&amp;quot;sethello 10&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이 파일은 다음과 같은 내용을 담고 있다.&lt;br /&gt;
&lt;br /&gt;
* enp1s0f0 라는 NIC 에는 IP 를 할당하지 않는다&lt;br /&gt;
* enp1s0f1 라는 NIC 에는 IP 를 할당하지 않는다&lt;br /&gt;
* virtual network device 인 vbox0 에는 IP 를 할당하지 않는다&lt;br /&gt;
* vbox0 의 생성은 root 권한으로 한다&lt;br /&gt;
* Bridge device 인 br0 에는 &amp;quot;enp1s0f0 enp1s0f1 vbox0&amp;quot; 3 개의 network device 를 묶어놓도록 한다.&lt;br /&gt;
&lt;br /&gt;
맨 아래의 2줄은 매주 중요하다. bridge device 에 있어서 dhcp 에 대한 대기시간을 단축시켜준다고 한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gentoo Host 시스템의 네트워크 설정파일이 마무리되었다면 다음의 명령을 실행해서 system 에서 항상 br0 가 실행될 수 있도록 한다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ln -s /etc/init.d/net.lo /etc/init.d/net.br0&lt;br /&gt;
ln -s /etc/init.d/net.lo /etc/init.d/net.vbox0&lt;br /&gt;
rc-update add net.br0 default&lt;br /&gt;
rc-udpate add sshd default&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이로서 시스템이 자동으로 시작되었을때 자동으로 br0 가 실행되게까지 만들었다.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/etc/init.d/net.br0 restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
위의 명령을 이용해서 브릿지를 시작하고 ping 을 통해 설정한 Bridge 환경이 제대로 동작하는지를 확인한다. ping 이 제대로 동작하고 외부에서 ssh 를 통한 접근을 host 머신으로 할 수 있다면 성공.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==VirtualBox 의 Headless 사용==&lt;br /&gt;
&lt;br /&gt;
자 모든 준비는 끝났다. 일단 VirtualBox 의 환경에 가상머신이 제대로 등록되었는지부터 확인해보자.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
CORESHADOW ~ # VBoxManage list vms&lt;br /&gt;
&amp;quot;VBOXMACHINENAME&amp;quot; {xxxxxxxx-cf4e-4a80-ad75-1c9504b50ab6}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
내 가상머신은 일단 제대로 등록된듯 하다. 이제 가상머신을 headless 실행을 통해 background 로 실행해보자.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
VBoxManage startvm VBOXMACHINENAME --type headless&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
물론 가상머신은 가능하면 내부적으로 static IP 로 세팅되어 있어야 한다.(앞단의 dhcp 에서 mac address 를 통한 IP 할당 세팅을 미리 해놓을 생각이 없다면)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
이렇다는 전제하에 일정 시간이 지난후 가상머신으로 접속할 수 있는 수단(ssh 또는 rdp)을 통해서 해당되는 가상머신의 동작을 다시 확인하도록 한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==참고:Headless 세팅==&lt;br /&gt;
&lt;br /&gt;
아래의 내용을 참고하면.. 100% 맞는것은 아니겠지만.. VBoxManage 로 어느정도의 컨트롤은 가능할것으로 보인다. 다만 사운드카드 및 USB 와 기타 잡다한 설정들이 있어서.. 본인은 다른 머신에서 GUI 로 가상머신 이미지를 미리 세팅하는쪽을 권장한다. (cloud 운영하는 분이라면 경우가 틀리겠지만)&lt;br /&gt;
&lt;br /&gt;
:https://forums.virtualbox.org/viewtopic.php?f=7&amp;amp;t=45911&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
VBoxManage createvm --name &amp;quot;WinXP1&amp;quot; --ostype WindowsXP --register --basefolder /mnt/VM/winxp/&lt;br /&gt;
VBoxManage modifyvm &amp;quot;WinXP1&amp;quot; --memory 256 --acpi on --boot1 dvd --nic1 nat&lt;br /&gt;
VBoxManage createhd --filename &amp;quot;/mnt/VM/winxp/WinXP1.vdi&amp;quot; --size 15000&lt;br /&gt;
VBoxManage storagectl &amp;quot;WinXP1&amp;quot; --name &amp;quot;IDE Controller&amp;quot; --add ide --controller PIIX4&lt;br /&gt;
VBoxManage storageattach &amp;quot;WinXP1&amp;quot; --storagectl &amp;quot;IDE Controller&amp;quot; --port 0 --device 0 --type hdd --medium &amp;quot;/mnt/VM/winxp/WinXP1.vdi&amp;quot;&lt;br /&gt;
VBoxManage storageattach &amp;quot;WinXP1&amp;quot; --storagectl &amp;quot;IDE Controller&amp;quot; --port 0 --device 1 --type dvddrive --medium /media/sdd1/software/de_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-73985.iso&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VBoxManage modifyvm &amp;quot;CentOS6.3&amp;quot; --memory 1024 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VBoxHeadless --startvm &amp;quot;WinXP1&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==참고문서==&lt;br /&gt;
&lt;br /&gt;
* https://www.virtualbox.org/manual/ch07.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==미해결점==&lt;br /&gt;
&lt;br /&gt;
* openrc 의 local start 를 사용하지 않고 network device 를 생성하는법&lt;br /&gt;
** 아마도.... net.vbox0 을 rc-update 로 올려주면 될거같기는 하지만.. IDC 에 있는 서버로 지금 장난치고 싶지는 않다.&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>