이제 그럼 설치를 시작 해보자.
설치 환경
운영체제: CentOS 6.0 x86_64
커널: 3.0
1. CentOS 6.0의 설치
이 문서에서는 독자들이 기본적으로 Linux 배포판을 다운로드 및 설치 할 수 있다는 가정하에 설명을 진행하고자 한다. 즉 설치 과정을 자세히 다루지 않고 꼭 설정하고 넘어가야 하는 부분만 언급 하고자 한다.
데이터 파티션 나누기.
파티션을 다양한 방법으로 나눌 수 있지만 최소 아래 파티션들은 나누고 시작 하자.
Hard Drivers
sda1 /boot ext4
sda2 vg00 physical volume (LVM)
LVM Volume Groups
lvroot / ext4
lvswap swap
Free
여기서 눈여겨 볼 것은 LVM PV(물리 볼륨) 및 VG(가상 볼륨)을 하나씩 만들고 VG에는 루트 파티션, 스왑 파티션 및 가상 머신들에서 사용 할 Free 파티션을 만든다.
설치 할 서비 타입은 "Basic Server"이고, 설치할 패키지들은 다음과 같다.
"Development tools"
"Additional Development"
"Debugging Tools"
"System administration tools"
"Compatibility libraries"
"Console internet tools"
"Desktop Platform Development"
2. CentOS 6.0 설치 후 설정
/etc/sysconfig/network-scripts/ifcfg-ethx 파일을 수정한다. 만약 이더넷 인터페이스 카드가 하나이면 ifcfg-eth0파일을 수정 하면 되겠다.
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="00:11:22:33:44:55"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO="dhcp"
여기서 NM_CONTROLLER = "no" 및 ONBOOT = "yes" 으로 설정이 되어있음을 눈여겨 보아야 한다. 네트워크 활성화는 ifup eth0로 해준다.
hosts 파일을 열고 hostname이 hosts파일에 포함 되어 있는지 확인 한다.
SElinux를 비활성화 시킨다. /etc/selinux/config 파일을 열고 SELINUX=disable로 설정한다.
3. Xen RPMS 컴파일을 위한 필수 패키지 설치
Xen RPM을 컴파일 하기 위하여 아래와 같은 필수 패키지 및 자주 사용할 패키지들을 설치한다.
# yum install screen vim wget tcpdump ntp ntpdate man smartmontools links lynx ethtool xorg-x11-xauth
# yum install transfig wget texi2html libaio-devel dev86 glibc-devel e2fsprogs-devel gitk mkinitrd iasl xz-devel bzip2-devel pciutils-libs pciutils-devel SDL-devel libX11-devel gtk2-devel bridge-utils PyXML qemu-common qemu-img mercurial texinfo libuuid-devel
# yum glibc-devel.i686
4. Xen src RPM 설치 및 재빌드
Xen 설치를 위하여 먼저 RPM 소스를 빌드한다.
# mkdir /root/src && cd /root/src
# wget http://ftp.funet.fi/pub/mirrors/fedora.redhat.com/pub/fedora/linux/releases/14/Everything/source/SRPMS/xen-4.0.1-6.fc14.src.rpm
# rpm -i xen-4.0.1-6.fc14.src.rpm
# cd /root/rpmbuild/SPECS
# rpmbuild -bb xen.spec
/usr/include/gnu/stubs-32.h is needed by xen
빌드 도중 이런 오류메시지가 뜨면 xen.spec을 vi로 열고
# so that x86_64 builds pick up glibc32 correctly
부분을 찾은 후 코멘트 밑 stubs-32.h를 stubs-64.h 로 바꿔주고 다시 rpmbuild -bb xen.spec 해준다.
빌드가 끝나면 이제 빌드된 RPM들을 설치한다. 그런데 CentOS 6.0에는 qemu-common RPM이 존재하지 않는다. RepoForge에서 배포중인 RHEL6용 RPM을 다운로드하여 설치하거나 qemu src.rpm 를 Fedora버젼용으로 받아서 CentOS 6용으로 빌드한다. 아래는qemu rpm src를 빌드하여 하는 방법을 아래에 소개 할가 한다.
# cd /root/src
# wget http://ftp.funet.fi/pub/mirrors/fedora.redhat.com/pub/fedora/linux/updates/13/SRPMS/qemu-0.13.0-1.fc13.src.rpm
# rpm -i qemu-0.13.0-1.fc13.src.rpm
# cd /root/rpmbuild/SPECS
# rpmbuild -bb qemu.spec
# cd /root/rpmbuild/RPMS/x86_64
# rpm -Uvh qemu-common-0.12.5-1.el6.x86_64.rpm
Preparing... ########################################### [100%]
1:qemu-common ###########################################[100%]이제 xen을 설치할 준비가 되었다. 전에 빌드한 xen rpm 디렉토리로 이동하여 rpm을 설치하자.
# cd /root/rpmbuild/RPMS/x86_64/
# rpm -Uvh xen*4.0.1-6*.rpm
Preparing... ########################################### [100%]
1:xen-licenses ########################################### [ 13%]
2:xen-libs ########################################### [ 25%]
3:xen-hypervisor ########################################### [ 38%]
4:xen-runtime ########################################### [ 50%]
5:xen ########################################### [ 63%]
6:xen-devel ########################################### [ 75%]
7:xen-doc ########################################### [ 88%]
8:xen-debuginfo ########################################### [100%]
이것으로 Xen 하이퍼바이저 사용을 위한 도구 및 라이브러리 설치를 끝냈다.
5. Xen dom0 및 domU를 지원하기 위한 커널 설치
7월 22일에 릴리즈된 리눅스 Kernel 3.0부터 Xen의 dom0및 domU를 지원한다. 2.6.x를 사용했던 시기에 별도 커널 패치를 해주어야 만 dom0및 domU등을 지원했었지만, 이제부터 3.0설치로만 모든 패치 작업은 줄일 수 있다. 그러면 먼저 최신 커널을 커널배포 공식 사이트인 kernel.org에 접속하여 다운로드 받자. 이 문서에서는 kernel 3.0을 설치하는 것을 예제로 들고 있다.
# cd /usr/local/src
# wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.tar.bz2
# tar xvfj linux-3.0.tar.bz2 -C /usr/src
# cd /usr/src
# ln -s ./linux-3.0 linux
커널을 받은 후 설치하기 위하여 커널 소스 컴파일 과정을 거쳐야 한다. dom0머신은 가상화를 위한 최소 기능만 탑재하면 성능상 향상을 가져 올 수 있으므로 컴파일시 필요한 정보를 저장하는 샘플 config파일을 받아오고 그것을 기반으로 수정해 나가자. 커널 설정에 필요한 자세한 정보는 아래 사이트에서 확인 할 수 있다. http://wiki.xensource.com/xenwiki/XenParavirtOps
샘플 config파일은 아래 사이트에서 참조하도록 하자.
http://pastebin.com/NAV1iUG3
dom0를 사용하기 위한 예제 옵션들을 보이면 다음과 같다.
CONFIG_ACPI_PROCFS=y
CONFIG_XEN=y
CONFIG_XEN_MAX_DOMAIN_MEMORY=32
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_XEN_DOM0=y
CONFIG_XEN_PRIVILEGED_GUEST=y
CONFIG_XEN_PCI=y
CONFIG_PCI_XEN=y
CONFIG_XEN_BLKDEV_FRONTEND=m
CONFIG_XEN_NETDEV_FRONTEND=m
CONFIG_XEN_KBDDEV_FRONTEND=m
CONFIG_HVC_XEN=y
CONFIG_XEN_FBDEV_FRONTEND=m
CONFIG_XEN_BALLOON=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_DEV_EVTCHN=y
CONFIG_XEN_GNTDEV=y
CONFIG_XEN_BACKEND=y
CONFIG_XEN_BLKDEV_BACKEND=y
CONFIG_XEN_NETDEV_BACKEND=y
CONFIG_XENFS=y
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_XENBUS_FRONTEND=y
CONFIG_XEN_PCIDEV_FRONTEND=m
만약 CentOS 5를 dom0로 사용하려면 아래와 같은 두 옵션을 꼭 확인 하자. 아니면 부팅이 실패한다.
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
config설정이 정확히 이루어 졌다고 판단되면 커널 빌드 및 설치를 해보자. 주의할 것은 3.0과 같은 새로운 커널을 해당 커널 보다 버젼이 낮은 config파일을 사용하여 빌드하려면 make oldconfig를 사용하여 config파일을 새로 작성 하는 것을 잊지 말자.
# make oldconfig
# make -j4 bzImage
# make -j4 modules
# make modules_install
커널 설치는 수동으로 진행하고 새로운 커널을 위한 initrd (initramfs) 이미지 파일을 생성한다.
# depmod -a 3.0.0
# cp -a arch/x86/boot/bzImage /boot/vmlinuz-3.0.0
# cp -a System.map /boot/System.map-3.0.0
# cp -a .config /boot/config-3.0.0
# cd /boot
# dracut initramfs-3.0.0.img 3.0.0
눈여겨 볼것은 CentOS 6부터 mkinitrd 명령어가 사라지고 대신 dracut 명령어가 생겼다. initramfs는 이제 dracut 툴로 생성해야만 한다.
/boot/grub/grub.conf 파일을 수정하여 Xen을 위한 커널 부팅 항목을 추가한다.
필자의 경우는 커널 3.0.0을 설치하고 root파티션이 /dev/mapper/vg_mcloud-LogVol00에로 LVM 논리 볼륨이 vg_mcloud/LogVol00 에로 매핑되어 있어 아래와 같이 부팅 항목을 추가하였다.
title Xen 4.0 with Linux 3.0.0 dom0
root (hd0,0)
kernel /xen.gz dom0_mem=1024M loglvl=all guest_loglvl=all
module /vmlinuz-3.0.0 ro root=/dev/mapper/vg_mcloud-LogVol00 rd_LVM_LV=vg_mcloud/LogVol00 nomodeset
module /initramfs-3.0.0.img
ntsysv 유틸리티를 실행하여 ksm 및 ksmtuned 서비스들을 끈다.
머신을 재부팅한다. 정상적으로 커널로 부팅 되기를 기도하자~
6. Xen 설치 유효성 검사
정상적으로 부팅 되었으면 Xen이 정상적으로 설치 되었는지 확인해보자.
# uname -a
Linux mcloud 3.0.0 #1 SMP Mon Aug 1 21:09:53 KST 2011 x86_64 x86_64 x86_64 GNU/Linux
커널 3.0.0에로 정상적으로 부팅되었음을 확인 할 수 있다.
# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 1024 4 r----- 22.0
# xm info
host : mcloud
release : 3.0.0
version : #1 SMP Mon Aug 1 21:09:53 KST 2011
machine : x86_64
nr_cpus : 4
nr_nodes : 1
cores_per_socket : 4
threads_per_core : 1
cpu_mhz : 2394
hw_caps : bfebfbff:28100800:00000000:00001b40:0098e3fd:00000000:00000001:00000000
virt_caps : hvm hvm_directio
total_memory : 16374
free_memory : 15134
node_to_cpu : node0:0-3
node_to_memory : node0:15134
node_to_dma32_mem : node0:2995
max_node_id : 0
xen_major : 4
xen_minor : 0
xen_extra : .1
xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler : credit
xen_pagesize : 4096
platform_params : virt_start=0xffff800000000000
xen_changeset : unavailable
xen_commandline : dom0_mem=1024M loglvl=all guest_loglvl=all
cc_compiler : gcc version 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC)
cc_compile_by : root
cc_compile_domain :
cc_compile_date : Mon Aug 1 20:47:52 KST 2011
xend_config_format : 4
위와 같은 메시지가 뜬다면 xen이 정상적으로 설치 된 것이다.
7. libvirt 및 virt-manager를 이용한 Xen관리
CentOS 6.0에 기본으로 설치된 libvirt는 Xen을 지원하지 않으므로 RPM 소스를 받아 빌드 한다. 그전에 최대한 머신에 설치된 libvirt와 버젼을 마추어야 하므로 머신에 설치된 libvirt의 버젼을 우선 확인해보자.
# rpm -qa | grep libvirt
# yum list | grep libvirt
fence-virtd-libvirt.x86_64 0.2.1-5.el6 base
fence-virtd-libvirt-qpid.x86_64 0.2.1-5.el6 base
libvirt.x86_64 0.8.1-27.el6_0.6 updates
libvirt-cim.i686 0.5.8-3.el6 base
libvirt-cim.x86_64 0.5.8-3.el6 base
libvirt-client.i686 0.8.1-27.el6_0.6 updates
libvirt-client.x86_64 0.8.1-27.el6_0.6 updates
libvirt-devel.i686 0.8.1-27.el6_0.6 updates
libvirt-devel.x86_64 0.8.1-27.el6_0.6 updates
libvirt-java.noarch 0.4.5-2.el6 base
libvirt-java-devel.noarch 0.4.5-2.el6 base
libvirt-java-javadoc.noarch 0.4.5-2.el6 base
libvirt-python.x86_64 0.8.1-27.el6_0.6 updates
libvirt-qpid.x86_64 0.2.22-3.el6 base
ocaml-libvirt.x86_64 0.6.1.0-6.2.el6 base
ocaml-libvirt-devel.i686 0.6.1.0-6.2.el6 base
ocaml-libvirt-devel.x86_64 0.6.1.0-6.2.el6 base
보다싶이 0.8.1버젼이 설치되었거나 기본 레포지터리에 등록이 되어있다. RPM 소스를 받아 빌드 해보자. 먼저 RPM소스를 받고 spec파일에 xen 지원 패치를 해준다. libvirt와 의존적인 라이브러리도 미리 설치해주는 것을 잊지 말자.
# wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/libvirt-0.8.1-27.el6.src.rpm
# rpm -i libvirt-0.8.1-27.el6.src.rpm
# wget http://pasik.reaktio.net/xen/patches/libvirt-spec-rhel6-enable-xen.patch
# cd /root/rpmbuild/SPECS
# cp -a libvirt.spec libvirt.spec.orig
# patch -p0 < /usr/local/src/libvirt-spec-rhel6-enable-xen.patch
patching file libvirt.spec
# yum install libnl-devel xhtml1-dtds libudev-devel libpciaccess-devel yajl-devel libpcap-devel avahi-devel parted-devel device-mapper-devel numactl-devel netcf-devel iscsi-initiator-utils
급급히 libvirt를 빌드하려고 들지 말자. 현재 Xen용 커널로 부팅된 상태에서 절대로 libvirt 빌드가 잘 되지 않을 것이다. 아래와 같은 오류가 뜨면서 test에서 fail한다.
PASS: nodedevxml2xmltest
TEST: interfacexml2xmltest
................... 19 OK
PASS: interfacexml2xmltest
====================
1 of 46 tests failed
====================
make[2]: *** [check-TESTS] Error 1
make[2]: Leaving directory `/root/rpmbuild/BUILD/libvirt-0.8.1/tests'
make[1]: *** [check-am] Error 2
make[1]: Leaving directory `/root/rpmbuild/BUILD/libvirt-0.8.1/tests'
make: *** [check-recursive] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.GVVB5G (%check)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.GVVB5G (%check)
절대 당황하지 말자. grub.conf를 수정하여 Xen커널이 아닌 원래 커널로 복귀한다.
재부팅 후 다시 libvirt 빌드를 시도해보자.
/root/rpmbuild/RPMS 폴더에 libvirt RPM파일들이 정상적으로 생성됨을 확인한다.
# yum install ebtables lzop nc
# cd /root/rpmbuild/RPMS/x86_64/
# rpm -Uvh --force libvirt-*
# rpm -Uvh --force libvirt-*
Preparing... ########################################### [100%]
1:libvirt-client ########################################### [ 20%]
2:libvirt ########################################### [ 40%]
3:libvirt-python ########################################### [ 60%]
4:libvirt-devel ########################################### [ 80%]
5:libvirt-debuginfo ########################################### [100%]# chkconfig --list libvirtd
libvirtd 0:off 1:off 2:off 3:on 4:on 5:on 6:off마지막으로 chkconfig --list libvirtd 하여 libvirtd가 시스템 부팅시 자동으로 시동되는 레벨을 살펴본다. 345레벨로 정해져 있으면 정확한 것이다. 이제 Xen용 커널로 부팅하자.
# virsh list
Id Name State
----------------------------------
0 Domain-0 running
위에서와 같이 virsh list하였을 때 Domain-0 인스턴스가 보이면 libvirt와 xen이 정상적으로 연동되어 설치되었음을 확인 할 수 있다.
8. virt-manager를 사용하여 Xen을 관리하기
libvirt가 설치되었으니 이제 virt-manager를 설치 및 이를 이용하여 가상 머신을 생성해 보자.
virt-manager는 간단히 yum 으로 설치 가능하다.
# yum install virt-manager
아래는 virt-manager가 실행되고 있는 모습이다.
현재는 Dom0 VM만 활성화 되어 있음을 볼 수 있다.
이제 Create New VM 메뉴를 이용하여 새로운 VM 인스턴스를 만들어 보자.
이 문서에서는 두 인스턴스를 만들고 각 인스턴스 마다 CentOS 6 및 Ubuntu 11.04를 설치하는 것을 예제로 보여주고자 한다. 실제 Guest OS 설치는 일반 baremetal 머신에 리눅스 설치와 같다. 단지 인스턴스 생성시 여러가지 설정 사항들이 많아 헛갈릴 수 있는데 아래에 그 과정을 스크린 샷으로 자세히 설명하고자 한다.
새로운 인스턴스를 만들고 리눅스 이미지는 로컬 디스크에서부터 가져와 설치한다.
설치시 사용할 ISO의 위치를 지정하고 OS 타입 및 버젼을 명시한다.
VM 인스턴스의 메모리 사이즈 및 CPU 코어 개수를 지정한다.
가상 디스크를 LVM 매니저를 통하여 미리 만들어 놓는다. 여기서 필자는 CentOS6라는 LVM을 만들었다.
위에서 만든 LVM위치를 새 VM 인스턴스의 기본 디스크 공간으로 지정한다.
아래와 같이 가상화 방식은 paravirt를 선택하고 NAT방식으로 네트워크를 구성한다.
부팅하면 미리 지정해준 미디어로 시작하고 CentOS 6 설치화면이 뜬다.
필요한 소프트웨어 패키지들을 선택하고 설치를 시도한다.
CentOS 6 (Dom0)에서 CentOS 6(DomU)를 접근하고 있는 모습이다.
이번엔 Ubuntu 11.04 용 인스턴스 생성 및 OS 설치 과정을 스크린샷으로 보여 주고자 한다.
아래 이미지는 Xen 4.1에 Android X86을 설치한 모습이다.
작성 중...
참고문헌:
http://wiki.xensource.com/xenwiki/RHEL6Xen4Tutorial
http://wiki.xensource.com/xenwiki/XenParavirtOps
'Linux Material' 카테고리의 다른 글
| CentOS 6.0에 Xen 4.0 설치하기 (1) | 2011/08/01 |
|---|---|
| CentOS에서 PPTP 및 L2TP/IPSec 프로로콜을 이용한 VPN 서버 구축하기 (0) | 2011/07/18 |
| Ubuntu 10.10에 NS-2 설치기 (0) | 2010/12/10 |
| Mod_proxy를 이용한 Tomcat과 Apache의 연동 (0) | 2010/12/08 |
| CentOS에 AFS Client 설치하기 (0) | 2010/02/21 |
| CentOS에 Proftpd 설치하기 (0) | 2010/02/19 |
-
^^ 2012/01/04 12:42
설치다하고 커널까지 virt-manager 실행하려고
# virt-manager 입력했는데
file "/usr/share/virt-manager/virt-manager.py", line 383 , in<module> main()
file ""/usr/share/virt-manager/virt-manager.py", line 286, in main raise gtk-error
runtimeError: could not open display
라고 되네요 검색을해도 잘 모르겠습니다.
virt-manager 실행하려면 어떻게하죠? x-window 를 설치해야되는 문제인가요?
Point to Point Tunneling Protocol과 Layer 2 Tunneling Protocol은 VPN 프로토콜을 가장 전형적인 프로토콜이며 각기 PPTP 및 L2TP라는 짧은 약자를 가지고 있다. 이하 설명은 모두 약자를 사용하여 진행한다.
PPTP는 LAN 환경이 구축되기 이전의 모뎀 사용시에 많이 사용 되었던 Point to Point Protocol을 사용하여 구성 되었다. PPTP는 마이크로 소프트에 의하여 VPN을 구축하기 위하여 창안되었으며 현재 가장 널리 사용되는 VPN 프로토콜이기도 하다.
L2TP 역시 많이 사용하는 VPN 프로토콜이지만 IPSec와 연동하여 많이 사용되며 IPSec을 위한 키를 만들기에 여러가지 번거로움이 있다.
PPTP는 PPP의 여러 인증 방식을 사용하는데 여기서 PAP와 MS-CHAP2가 가장 전형적이다.
A. PAP
Password Authentication Protocol (PAP)은 인증 프로토콜로 인증 파일의 암호부분을 지정하지 않으면 시스템 계정의 비밀번호를 이용하여 인증하므로 sniffing에 취약하다.
B. MS-CHAP v2
이 역시 암호화된 인증 프로토콜로 VPN 사용자 인증시 사용 된다.
PAP는 보안에 많이 취약하며 현재 많이 사용되지 않는다. 이 문서에서는 MS-CHAP v2 인증 방식을 이용하여 VPN 서비스를 구축하는것을 예를 들어 설명하고자 한다.
위에서 설명한 두가지 암호화의 의미는 인증단계에서의 비밀번호 암호화만 의미하며 PPTP는 패킷에 특정 헤더를 추가하여 패킷을 캡슐화하는 것이 아니기 때문에 이런 상태에서 전송되는 모든 데이터는 암호화 되어 있지 않다. 모든 전송 패킷을 암호화 하기 위하여 MPPE라는 암호화 프로토콜을 사용한다. MPPE는 전송 되는 모든 데이터를 암호화 시시켜주는 역할을 한다. MPPE는 PAP환경에서 사용 할 수 없다.
이제 그럼 설치를 시작 해보자.
설치 환경
운영체제: CentOS 6.0 x86_64
커널: 3.0
1. pptpd의 설치
2011년 7월 현재 CentOS 공식 및 EPEL 레포지터리에는 아직 PPTPD 패키지가 등록되어 있지 않았다. 소스 컴파일로 PPTPD를 설치하기 귀찮으므로 RPM패키지를 모아 놓은 레포지터리를 찾아서 추가한다. poptop 오픈 소스 개발 팀에서 이미 PPTPD 패키지를 레포지터리에 올려 레포지터리 추가만으로 쉽게 PPTPD를 설치 할 수 있다.
# rpm -Uvh http://pptpclient.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
# yum install ppp pptpd
yum을 이용한 설치가 끝났다... 필자는 인터넷 상에 존재하는 수많은 문서들을 참고하면서 시도를 했는데 대부분 문서들에서 kernel_ppp_mppe를 설치하는 부분까지 있었다. 하지만 CentOS 5.0이상부터 커널에 기본 kernel_ppp_mppe 모듈이 포함이 되어 있으므로 이 부분은 건너뛸 수 있다. kernel_ppp_mppe 모듈 설치 여부를 알아 보는 방법은 다음과 같다.
# modprobe ppp-compress-18 && echo ok
만약 OK를 반환하면 kernel_ppp_mppe 모듈이 설치되어있음을 의미한다.
2. pptpd의 설정
# vi /etc/pptpd.conf
맨 마지막 부분
를 주석문 속에서 빼낸다.
위에서 처럼 설정하면 서버는 192.168.0.1 IP를 할당 받고 VPN 클라이언트는 자동으로 이 IP 게이트웨이로 할당 받아 모든 패킷은 이 IP로 전송 된다.
또한 remoteip가 234 - 245이므로 총 11개의 IP를 VPN 클라이언트가 할당 받게 되고, 다 시 말해서 최대 11개의 클라이언트의 동시 접속을 지원 할 수 있다. 만약 서버의 네트워크 throughput이 크고 사양도 좋다면 클라이언트에 할당 가능한 IP의 개수를 적절히 늘일 수 있다.
# vi /etc/ppp/options.pptpd
mppe-128를 주석문속에 넣는다. 이유는 이 설정을 주석처리 하지 않으면 특정 사이트에 접속이 되지 않는다. 주석처리하고 pptp 클라이언트 상에서도 해당 옵션을 사용치 않도록 한다.
ms-dns를 주속문속에서 빼고 DNS를 설정 해준다.
나머지는 기본 설정대로 사용 하면 된다.
# vi /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
위에서 처럼 사용자명, 사용할 프로토콜, 비밀번호 및 접속허용할 아이피대역을 설정한다.
여기서 만약 비밀번호를 ""로 지정하면 (즉 공백) PAM을 이용하여 VPN 사용자를 인증할 수 있는데 이때 /etc/passwd에 사용자 인증정보를 사용한다.
이제 iptables 설정을 해보자. iptables 설정을 하지 않으면 VPN 서버에 연결되었다 할 지라도 패킷 포워딩을 하지 않아 인터넷에 연결되지 않는다.
다음 클라이언트에서 ipv4 패킷을 받으면 포워딩 하도록 설정 해준다.
# vi /etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward를 0에서 1로 바꾼다.
변경사항을 저장하고 빠져나와서
# sysctl -p
명령어를 날려 포워딩 설정을 곧바로 적용한다.
# service iptables save
지금 까지 설정한 iptables 설정들을 저장한다.
# vi /etc/sysconfig/iptables
# Generated by iptables-save v x.x.x on xxx
위에서 처럼 설정이 저장되었는지 확인한다. 볼드체로 표시된 부분을 눈 여겨 보자.
iptables 변경 사항들을 적용한다.
# service iptables restart
pptpd 서버를 시작 하거나 재시동 한다.
# service pptpd restart-kill
# service pptpd start
3. L2TPD 설치
L2TPD VPN 오픈 소스는 많으며 이 문서에서는 그중 많이 사용되는 xl2tp 설치 과정을 예제로 보여준다.
L2TPD 설치에 앞서 IPSec 설치 및 설정을 해야 한다.
# yum install openswan
OpenSwan IPSec 서비스의 한 오픈소스이다.
openswan이 설치 되었으면 이제 설정을 할 차례이다.
# vi /etc/ipsec.conf
version 2.0
IPSec에 쓰일 Shared Key를 설정하자.
# vi /etc/ipsec.secrets
서버아이피주소 %any: PSK "암호화키"
패킷 리다이렉션 설정을 한다.
IPSec 서비스를 재시동 한다.
# service ipsec restart
IPSec 서비스의 유효성 여부를 체크한다.
# ipsec verify
이제 L2TP를 구현한 오픈 소스 xl2tp를 설치한다.
# yum install libpcap-devel xl2tp ppp
4. L2TPD 설정
# vi /etc/xl2tpd/xl2tpd.conf
[global]
# vi /etc/ppp/options.xl2tpd
require-mschap-v2
기타 설정은 PPTP 설정시 했으므로 여기서 skip한다.
마지막으로 xl2tp 데몬을 구동해보자
# service xl2tpd start
5. Windows 7 클라이언트 설정
바탕 화면에서 네트워크 아이콘에 오른쪽 마우스를 클릭하여 속성에 들어가거나 제어판에서 네트워크 및 공유 센터에 들어간다.
새 연결 또는 네트워크 설정을 클릭한다.
연결할 VPN 주소 및 그에 대한 설명을 기입한다.
네트워킹 탭에서 IPV4가 하이라이트 된걸 확인한 후 속성을 클릭한다.
연결 대화창이 뜨면 연결을 누른다. 이미 아이디와 비밀번호는 기본으로 입력이 되어있으므로 무시한다.
'Linux Material' 카테고리의 다른 글
| CentOS 6.0에 Xen 4.0 설치하기 (1) | 2011/08/01 |
|---|---|
| CentOS에서 PPTP 및 L2TP/IPSec 프로로콜을 이용한 VPN 서버 구축하기 (0) | 2011/07/18 |
| Ubuntu 10.10에 NS-2 설치기 (0) | 2010/12/10 |
| Mod_proxy를 이용한 Tomcat과 Apache의 연동 (0) | 2010/12/08 |
| CentOS에 AFS Client 설치하기 (0) | 2010/02/21 |
| CentOS에 Proftpd 설치하기 (0) | 2010/02/19 |
1. NS2 2.34 다운로드와 설치하기
NS2를 성공적으로 설치 하기 위하여서는 NS2가 의존하고 있는 여러 패키지가 우분투상에 설치가 되어 있어야 한다. 로그인한 사용자 아이디가 abc라고 가정하고 NS2를 해당 사용자 홈 디렉토리에서 부터 설치한다고 하자.
$ wget http://nchc.dl.sourceforge.net/sourceforge/nsnam/ns-allinone-2.34.tar.gz
$ tar xvfz ns-allinone-2.34.tar.gz -C ./
$ cd ns-allinone-2.34
$ sudo apt-get install build-essential autoconf automake libxmu-dev gcc-4.3
$ export CC=gcc-4.3
$ sudo sh ./install
2. 환경변수 설정하기
$ gedit ~/.bashrc
아래 환경변수 설정관련 내용을 복사하여 .bashrc에 붙혀 넣는다.
# NS2 Version & Path
NS2_VER=2.34
OTCL_VER=1.13
TCL_VER=8.4.18
TK_VER=$TCL_VER
NAM_VER=1.14
NS2_PATH=$HOME/ns-allinone-$NS2_VER
# LIBRARY
OTCL_LIB=$NS2_PATH/otcl-$OTCL_VER
NS2_LIB=$NS2_PATH/lib
X11_LIB=/usr/X11R6/lib
USR_LOCAL_LIB=/usr/local/lib
export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_LOCAL_LIB
TCL_LIB=$NS2_PATH/tcl$TCL_VER/library
USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIB:$USR_LIB
# PATH
XGRAPH=$NS2_PATH/bin:$NS2_PATH/tcl$TCL_VER/unix:$NS2_PATH/tk$TK_VER/unix
NS=$NS2_PATH/ns-$NS2_VER/
NAM=$NS2_PATH/nam-$NAM_VER/
PATH=$PATH:$XGRAPH:$NS:$NAM
설정에 보면 X11라이브러리가 /usr/X11R6를 참조 하고 있는데 정작 그 경로로 가보면 X116은 없다. 심볼릭 링크를 만들어 문제를 해결 할 수 있다.
ln -s /usr/X11R6/lib/X11 /usr/lib/X11
ln -s /usr/X11R6/include/X11 /usr/include/X11
설치가 끝나면 콘솔창에 nam이나 ns를 입력 해본다.
nam을 애니메이터로 기존에 만들어진 tcl파일을 읽어 구성한 토폴로지들에서 각 노드들의 인터렉션들을 보여 준다.
nam-버젼 폴더 밑에 tcl폴더에 보면 샘플 tcl파일들이 있는데 이 파일들을 읽어 정상적으로 애니메이션들이 플레이어 된다면 설치가 성공한 것이다.
'Linux Material' 카테고리의 다른 글
| CentOS 6.0에 Xen 4.0 설치하기 (1) | 2011/08/01 |
|---|---|
| CentOS에서 PPTP 및 L2TP/IPSec 프로로콜을 이용한 VPN 서버 구축하기 (0) | 2011/07/18 |
| Ubuntu 10.10에 NS-2 설치기 (0) | 2010/12/10 |
| Mod_proxy를 이용한 Tomcat과 Apache의 연동 (0) | 2010/12/08 |
| CentOS에 AFS Client 설치하기 (0) | 2010/02/21 |
| CentOS에 Proftpd 설치하기 (0) | 2010/02/19 |
'Linux Material' 카테고리의 다른 글
| CentOS에서 PPTP 및 L2TP/IPSec 프로로콜을 이용한 VPN 서버 구축하기 (0) | 2011/07/18 |
|---|---|
| Ubuntu 10.10에 NS-2 설치기 (0) | 2010/12/10 |
| Mod_proxy를 이용한 Tomcat과 Apache의 연동 (0) | 2010/12/08 |
| CentOS에 AFS Client 설치하기 (0) | 2010/02/21 |
| CentOS에 Proftpd 설치하기 (0) | 2010/02/19 |
| GRUB의 fallback 기능 활용하기 (0) | 2010/01/29 |
kmod-openafs-1.4.11-1.1.1.i386.rpm
cp -R /usr/src/openafs-kernel-1.4.11/src/src/libafs/MODLOAD-커널버젼-MP/* /lib/modules/커널버젼/extra/openafs/
'Linux Material' 카테고리의 다른 글
| Ubuntu 10.10에 NS-2 설치기 (0) | 2010/12/10 |
|---|---|
| Mod_proxy를 이용한 Tomcat과 Apache의 연동 (0) | 2010/12/08 |
| CentOS에 AFS Client 설치하기 (0) | 2010/02/21 |
| CentOS에 Proftpd 설치하기 (0) | 2010/02/19 |
| GRUB의 fallback 기능 활용하기 (0) | 2010/01/29 |
| Linux 각 서비스들에 대한 소개 (0) | 2010/01/25 |
PREV