virtualbox, fedora 7, Linux host 에서 네트웍 설정.
guest OS 도 host OS 의 네트웍에 속하기를 원하시는 분에게 필요합니다.
bridge 인터페이스를 사용할 것이고,
필요한 패키지는 bridge-utils, openvpn 입니다.
(openvpn 은 tap 장치를 만들고 지울 때만 사용합니다. 있는 것으로 어떻게든 해보려니 ...)
yum install -y bridge-utils openvpn
GUI 로 수정할 수 없는 부분도 있고, 설명하기도 편해서 몇몇 설정파일의 내용은 cat 과 diff 로 대신합니다.
원본을 백업받는 것이 좋습니다.
cp /etc/sysconfig/network-scripts/ifcfg-eth0 ~/backup/ cp /etc/sysconfig/network-scripts/ifup-eth ~/backup/ cp /etc/sysconfig/network-scripts/ifdown-eth0 ~/backup/
brigde 인터페이스인 br0 에 대한 설정파일을 만듭니다.
/etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0 TYPE=Bridge ONBOOT=yes BOOTPROTO=none BROADCAST=11.22.33.255 IPADDR=11.22.33.44 NETMASK=255.255.255.0 NETWORK=11.22.33.0 GATEWAY=11.22.33.254
11.22.33.44 등의 정보는 자신의 환경에 맞게 수정합니다.
DHCP 사용하시는 분들은
BOOTPROTO=dhcp
처럼 해주시면 됩니다. 요컨데 원래 ifcfg-eth0 에 있던 내용을 그대로 옮기되 DEVICE 항목과 TYPE 항목만 주의하시면 됩니다.
원래 있던 ifcfg-eth0 를 수정합니다.
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 BRIDGE=br0 HWADDR=xx:xx:xx:xx:xx:xx ONBOOT=yes TYPE=Ethernet USERCTL=no IPV6INIT=no PEERDNS=yes IPV6_AUTOCONF=yes
HWADDR 항목은 원래의 것을 변경하지말고 그대로 둬야 합니다.
virtualbox 에서 사용할 가상의 장치에 대한 설정파일을 만들어줍니다.
/etc/sysconfig/network-scripts/ifcfg-tap0
DEVICE=tap0 BRIDGE=br0 TYPE=Tap ONBOOT=yes USERCTL=no IPV6INIT=no PEERDNS=yes IPV6_AUTOCONF=yes BOOTPROTO=none
기존의 스크립트 일부를 수정합니다.
/etc/sysconfig/network-scripts/ifup-eth
--- backup/ifup-eth 2007-11-06 22:42:52.000000000 +0900 +++ ifup-eth 2007-11-06 23:47:47.000000000 +0900 @@ -69,6 +69,14 @@ if [ "${TYPE}" = "Bridge" ]; then [ -n "${STP}" ] && /usr/sbin/brctl stp ${DEVICE} ${STP} fi +if [ "${TYPE}" = "Tap" ]; then + if [ ! -x /usr/sbin/openvpn ]; then + echo $"Tap support not available: /usr/sbin/openvpn not found" + exit 1 + fi + /usr/sbin/openvpn --mktun --dev ${DEVICE} > /dev/null || exit 1 +fi + # now check the real state is_available ${REALDEVICE} || { if [ -n "$alias" ]; then
/etc/sysconfig/network-scripts/ifdown-eth
--- backup/ifdown-eth 2007-11-06 23:49:22.000000000 +0900 +++ ifdown-eth 2007-11-06 23:21:35.000000000 +0900 @@ -29,6 +29,15 @@ if [ -n "${BRIDGE}" -a -x /usr/sbin/brct if LC_ALL=C /usr/sbin/brctl show | LC_ALL=C grep -q "^${BRIDGE} .*can't get port info"; then /usr/sbin/brctl delbr ${BRIDGE} fi + + if [ "${TYPE}" = "Tap" ]; then + if [ ! -x /usr/sbin/openvpn ]; then + echo $"Tap support not available: /usr/sbin/openvpn not found" + exit 0 + fi + /usr/sbin/openvpn --rmtun --dev ${DEVICE} > /dev/null 2>&1 + fi + exit 0 fi . /etc/sysconfig/network
마지막으로 방화벽(iptables) 을 사용하신다면 *filter 에 다음을 추가합니다.
/etc/sysconfig/iptables
-A FORWARD -p ALL -j ACCEPT
REJECT 규칙 전에만 위치하면 됩니다.
root 권한으로 iptables, network 를 restart 합니다.
sudo /sbin/service iptables restart sudo /sbin/service network restart
virtualbox 의 설정중 network 부분은 그림과 같습니다.
첨부 | 파일 크기 |
---|---|
![]() | 48.05 KB |
댓글 달기