서론
가상화 (Virtualization) 의 장점은 명확하기 때문에 피할 수 없는 선택이다. VMware Server 등과 같은 서버 가상화 소프트웨어 제품들은 일반적으로 자체적으로 NAT (Network Address Translation) 솔루션을 포함하고 있는 것에 반하여 VMware vSphere Hypervisor (ESXi) 등과 같이 OS 레벨에서 가상화를 제공하는 Hypervisor 제품군들은 NAT 를 제공하지 않는다. 그 대신에 Network 까지도 가상화하는 것이 가능하여 가상의 Switch 를 만들고 Network group 을 생성하는 것이 가능하여 본격적인 가상 Network 를 구축할 수 있다. 이를 위해서는 Router 역할을 하는 Virtual Machine 이 존재하여야 한다. Vyatta 는 Network Operating System 으로 바로 이 Router 의 역할을 수행할 수 있는 Open Source Operating System 이다.


본론
Vyatta Core (VC) 6.2 기준 - http://www.vyatta.org
Quick Start Guide (v5.0.3) - http://www.vyatta.com/downloads/documentation/VC5.0.2/Vyatta_QuickStart_VC5_v03.pdf
NAT in VMware vSphere ESX - http://www.javatuning.com/nat-in-vmware-vsphereesx-in-a-nut-shell/
Vyatta Firewall and NAT - http://www.carbonwind.net/VyattaOFR/Firewall/Firewall.htm


1. 다운로드
http://www.vyatta.org/downloads 에서 VMware ESX 4 Template 의 URL 을 복사하거나 OVF 를 다운로드하여 VMware vSphere Client 의 File > Deploy OVF Template 에 입력하면 Template 로 부터 VM 을 생성할 수 있으나, 이미지 업로드에 계속 오류가 나서 실패함.

다른 방법으로 Live CD iso 이미지를 다운로드하여 WMware 에 직접 설치할 수 있다.
다음의 절차는 Vyatta Core (VC) 6.2 - Live CD iso를 이용하였다.


2. 설치
참고: http://www.vyatta.org/getting-started/how-to-install
- 메모리는 512MB, HDD는 1GB 정도로 설정, NIC를 두개
- VMware ESXi 4.1 사용
- CD 마운트 후 부팅
- 로그인 (초기 Username: vyatta, Password: vyatta)
- 프롬프트가 뜨면 HDD 에 시스템을 설치할 수 있음

명령 프롬프트에서
$ install-system

이후, 절차를 따라가면 설치 완료
설치 완료 후 부팅시 로그인 어카운트는 vyatta, 암호는 설치시 설정한 것


3. Network Interface 설정
참고: http://www.javatuning.com/nat-in-vmware-vsphereesx-in-a-nut-shell/
eth0  를 WAN (10.0.0.100), eth1 (192.168.1.1) 을 LAN 으로 가정

$ configure
# set interfaces ethernet eth0 address 10.0.0.100/24
[edit]
# set interfaces gateway-address 10.0.0.1
[edit]
# set system name-server 8.8.8.8
[edit]
# set interfaces ethernet eth1 address 192.168.1.1/24
[edit]
# commit
[edit]
# save
[edit]
# show interfaces
[edit]
# exit
$


4. Vyatta Web GUI
참고: http://www.vyatta.org/documentation/tips-tricks/enable-gui

$ configure
# set service https
[edit]
# commit
[edit]
# save
[edit]
# exit
$

이후 interface 에 설정한 ip 로 Vyatta Web GUI 에 접속할 수 있다.


5. DHCP

$ configure
# set service dhcp-server shared-network-name ETH1_POOL subnet 192.168.1.0/24 start 192.168.0.2 stop 192.168.0.100
[edit]
# set service dhcp-server shared-network-name ETH1_POOL subnet 192.168.1.0/24 default-router 192.168.1.1
[edit]
# set service dhcp-server shared-network-name ETH1_POOL subnet 192.168.1.0/24 dns-server 8.8.8.8
[edit]
# commit
[edit]
# save
[edit]
# show service dhcp-server
[edit]
# exit
$


5-1. DHCP Reservation
Static mapping 의 이름을 STATIC-MAP1 으로 저장한다고 가정

$ configure
# set service dhcp-server shared-network-name ETH1-POOL subnet 192.168.1.0/24 static-mapping STATIC-MAP1 ip-address 192.168.1.3
[edit]
# set service dhcp-server shared-network-name ETH1-POOL subnet 192.168.1.0/24 static-mapping STATIC-MAP1 mac-address 00:0c:29:13:cd:a0
[edit]
# commit
[edit]
# save
[edit]


6. NAT

$ configure
# set service nat rule 1 source address 192.168.1.0/24
[edit]
# set service nat rule 1 outbound-interface eth0
[edit]
# set service nat rule 1 type masquerade
[edit]
# commit
[edit]
# save
[edit]
# show service nat
[edit]
# exit
$


6-1. Publish a Web server on an alternate port
http://www.carbonwind.net/VyattaOFR/Firewall/Firewall.htm#toPpp

set service nat rule 10 type destination
set service nat rule 10 protocol tcp
set service nat rule 10 inside-address port 80
set service nat rule 10 inside-address address 192.168.1.3
set service nat rule 10 inbound-interface eth0
set service nat rule 10 destination address 10.0.0.1
set service nat rule 10 destination port 8083


7. SSH

$ configure
# set service ssh
[edit]
# commit
[edit]
# save
[edit]
# exit
$


8. Firewall
http://www.carbonwind.net/VyattaOFR/Firewall/Firewall.htm#toPpp

set firewall name ETH0_IN rule 10 action accept
set firewall name ETH0_IN rule 10 protocol tcp
set firewall name ETH0_IN rule 10 destination address 192.168.1.3
set firewall name ETH0_IN rule 10 destination port 80
set firewall name ETH0_IN rule 10 state new enable
set firewall name ETH0_IN rule 10 state established enable
set firewall name ETH0_IN rule 10 state related enable

set interfaces ethernet eth0 firewall in name ETH0_IN

Note that the DNAT (Destination NAT) process takes place before the firewall one, so for example we just need one firewall rule on the in firewall instance on the Internet facing interface, allowing TCP port 80 and not TCP port 5000.
Thus, basically, the firewall rules from the above scenario where we published the web server on the standard TCP port 80, will remain untouched.

set firewall name ETH0_LOCAL rule 10 action accept
set firewall name ETH0_LOCAL rule 10 protocol tcp
set firewall name ETH0_LOCAL rule 10 destination address 10.0.0.1
set firewall name ETH0_LOCAL rule 10 destination port 22,443
set firewall name ETH0_LOCAL rule 10 state new enable
set firewall name ETH0_LOCAL rule 10 state established enable
set firewall name ETH0_LOCAL rule 10 state related enable

set interfaces ethernet eth0 firewall local name ETH0_LOCAL

Firewall 이 적용된 interface 는 deny all 룰이 implicit 하게 자동으로 적용 됨.


관리
Vyatta의 설정 파일은 /opt/vyatta/etc/config/config.boot 에 저장된다.  IP address  변경 등은 이 파일을 직접 수정하는 것으로도 가능하다. 


후기
이로써 완벽한 Network Virtualization 완료!
vSwitch1 이 eth0, vSwith2 가 eth1 에 연결되어 있다. Vyatta Core 는 Virtual Switch 2 로 부터 요청되는 네트워크 연결을 Virtual Switch 1 으로 NAT 서비스를 제공한다.


Posted by fermi

댓글을 달아 주세요

SingTel

Cellular Data
APN: e-ideas
Username: 65ideas
Password: 65ideas

MMS
APN: e-ideas
Username: 65ideas
Password: 65ideas
MMSC: http://mms.singtel.com:10021/mmsc
MMS Proxy: 165.21.42.84:8080
MMS Max Message Size: 307200
MMS UA Prof URL:



SK Telecom

http://blog.tworld.co.kr/18
http://blog.tworld.co.kr/75

Cellular Data
APN: web.sktelecom.com

MMS
APN: web.sktelecom.com
MMSC: http://omms.nate.com:9082/oma_mms
MMS Proxy: smart.nate.com:9093
MMS Max Message Size: 1048576


국내/외 통신사 데이터 통신 설정 추가/업데이트 예정

웁스... 해외 통신사 APN 설정 정리 -> http://modmyi.com/wiki/index.php/Carrier_APN_Settings

Posted by fermi

댓글을 달아 주세요

2009년 10월에 출시된 VMware Server 2.0.2 는 Windows 7 이 발표된 이후에 출시된 버전이지만 아직 Windows 7을 host OS로 사용할 때 발생하는 NAT 문제 (ping 을 제외한 인터넷이 guest OS에서 작동하지 않는다) 가 해결되지 않았다.

참고로 VMware Server 와 WMware ESXi 는 무료로 라이센스를 배포한다. 두 제품의 차이는 Host OS위에서 작동하는 것과 OS없이 독립적인 Hypervisor로 작동하는 것.

Windows 7 에서 WMware 2.0의 NAT 가 제대로 작동하지 않는 문제의 증상은 다음과 같다.
- 외부에서 들어오는 네트워크 요청 (inbound) 의 port forwading 은 정상적으로 작동하여 서버 프로그램의 운영은 가능
- 외부로 나가는 ping을 제외한 모든 outbound 프로토콜이 작동하지 않아서 guest OS에서 정상적으로 인터넷을 사용하지 못함

검색 결과 Windows 7 을 host OS로 사용할 경우 발생하는 VMware Server 2.0 의 NAT 문제에 대한 포스팅이 다수 발견되었으나 단 한 개의 포스팅 만이 해결 방법을 제시하고 있다. (아래 박스 참조)

Windows 7 - VMWare Server NAT problem
from Windows Seven Forum
http://www.sevenforums.com/virtualization/3850-vmware-server-nat-problem.html

Windows 7 - both X-64 and X-86 NAT Broken
from VMware Communities
http://communities.vmware.com//message/1234305#1234305

Windows 7 Internet Connection Sharing problem with VMware Server 2
from techarena
http://forums.techarena.in/networking-security/1324174.htm

fixing VMWare NAT problems on Windows 7
from florianlr's blog
http://florianlr.wordpress.com/2009/07/09/5/

보고되 해결 방법은 Windows 7의 네트워크 공유 기능을 사용하고 Windows 7에 내장된 ICS의 NAT를 사용하는 것이나, 작동하는 경우도 있고 문제가 생기는 경우도 있다. (위 florianlr's blog의 posting을 참조) 이 방법은 완벽한 해결 방법이 아니며, 실제 테스트 결과 물리적 NIC가 여러 개 일때 심각한 문제 (간혹 작동하기도 하지만, 전체 시스템의 네트워크가 먹통이 되는 문제) 가 발생하여 무시하는 편이 시간 절약에 도움이 되리라...

고심 끝에 생각해 낸 방법은 다음과 같다. 요약하자면 inbound 와 outbound 를 다른 네트워크를 사용하는 것이다. 실험 결과 만족할 만한 신뢰도 및 안정성을 보여주고 있다.

추천하는 해결 방법 - Best Solution


- VM 하드웨어에 2개의 NIC 설정 (1: Bridged, 2: NAT)
- Guest OS에서 NIC 우선순위 (interface metric) 설정 (1: Bridge, 2: NAT)

 또 다른 해결방법으로 (보다 확실한 방법) VMware의 하드웨어 설정에서 NIC를 하나 더 잡고 하나는 NAT 나머지 하나는 Bridged로 설정하여 NAT는 inbound, Bridged는 outbound 용도로 사용하면 inbound는 VMware의 NAT 설정을 따르고, 문제가 되던 outbound는 Bridged 네트워크를 통해서 정상 작동할 수 있다. 다만 이 경우는 Bridged network에 할당할 여분의 IP 리소스가 필요하다. 또한 guest OS에서 NAT와 Bridged network의 순서를 지정해야 한다. Ubuntu에서는 Bridged network을 첫 번째 NIC로 먼저 잡아 주고, NAT를 두번째로 잡아주면 우선 순위가 Bridged에 먼저 할당되어 outbound가 정상적으로 작동하였다. Windows 계열의 Guest OS에서는 Advanced TCP/IP Setting 에서 Interface metric을 수동으로 설정할 수 있다. (ex: Bridged에 1, NAT에 2를 설정)

Windowx 7의 Interface metric 설정

<Windowx 7의 Interface metric 설정>


이와 같이 interface metric을 설정하게 되면, outbound의 네트워크 연결은 우선순위에 따라 bridged network (interface metric: 1) 을 통하여 연결되어 WMware Server 의 NAT를 우회하므로 문제가 발생하지 않게 된다. 반면 inbound의 네트워크 연결은 host OS의 IP주소를 통하여 요청되므로 WMware server의 NAT를 통하여 guest OS의 NAT network (interface metric: 2) 으로 넘겨지게 되어, WMware server의 NAT 설정을 그대로 사용할 수 있는 장점이 있다.

<추가> Ubuntu 64bit 을 guest OS로 사용하는 환경에서 NAT 가 정상적으로 작동하지 않는 문제점을 발견.

<VMware 2.0.2>

Posted by fermi

댓글을 달아 주세요

Windows XP 방화벽에서는 기본적으로 네트워크 파일 공유를 예외 허용으로 설정하고 있으나 그 설정을 변경하지 않으면 불편할 때가 있다.

방화벽의 네트워크 파일 공유 (TCP139, TCP445, UDP137, UDP138) 기본 설정은 서브넷 내에서만 허용하는 것이다.

사용자의 IP 대역이 틀리거나 하는 문제로 동일한 도메인 내에서도 서브넷이 틀려서 윈도우즈의 네트워크 파일 공유에 장애가 있는 경우가 있다.

XP에서 아무리 컴퓨터 찾기를 해도 컴퓨터가 나타나지 않는 경우는 바로 이런 문제이다.

이를 사용자가 원하는 범위로 변경하기 위해서는 다음과 같은 절차로 Windows 방화벽에서 허용 범위를 변경해 주어야 한다.

이 경우는 파일 및 프린터 공유중 TCP 139 포트만 변경하였으며, 변경 후 원활하게 작동하였다.


more..

Posted by fermi

댓글을 달아 주세요