'분류 전체보기'에 해당되는 글 150건

  1. 2010.07.16 바탕화면 정리 및 폴더 묶음 fences
  2. 2010.07.14 리눅스 VNCSERVER 설정 방법 3
  3. 2010.06.23 솔라리스 10 NIC 의 speed / duplex 변경 방법
  4. 2010.05.31 텍스트 파일을 잘라보자. split
  5. 2010.05.25 파일비교 스크립트 5 2
  6. 2010.04.22 파일들의 확장자만 변경
  7. 2010.04.21 공유기 기능 - 고급기능4 ( WOL )
  8. 2010.04.19 리눅스 시스템의 부팅시 파일무결성 체크 강제로 하기
  9. 2010.04.06 공유기기능 - 고급기능3 TwinIP
  10. 2010.03.30 리눅스 dmesg 를 통한 eth 포트의 down / up 구분
  11. 2010.03.29 리눅스 32bit 와 64bit 구분
  12. 2010.03.17 공유기 기능 - 고급기능2 ( DMZ )
  13. 2010.03.03 공유기 기능 - 고급기능1 ( 포트포워딩 )
  14. 2010.02.25 공유기 - 기본지식편
  15. 2009.12.23 28. CentOS 에서 yum 수행시 repo 사이트 추가
  16. 2009.12.22 15. 텍스트 파일 포맷 변경 2
  17. 2009.12.18 14. 지난 파일 압축하고 삭제하기 2
  18. 2009.12.18 브리지와 스위치의 차이점 1
  19. 2009.12.18 OSI 7 layer 설명 2
  20. 2009.12.17 비스타에서 폴더 보기 옵션이 저장 안되는 증상 해결 방법
2010. 7. 16. 14:12

바탕화면 정리 및 폴더 묶음 fences

윈도우 바탕화면에 많은 자료를 두는 내 스타일에 맞는 프로그램인 것 같다.

일단 소개 동영상을 한번 보면 쉽게 이해가 갈 것이다.

http://www.stardock.com/products/fences/screenshots.asp

데스크탑에 설치해 봐야지.ㅋ

다운로드는 아래의 링크 사용

http://www.stardock.com/products/fences/downloads.asp
2010. 7. 14. 15:27

리눅스 VNCSERVER 설정 방법

VNCSERVER 는 외부에서 원격으로  GUI 환경으로 접속이 가능하도록 만들어주는 프로그램으로
리눅스에서는 서버가 운영되고 외부의 PC 에서는 vncviewer 라는 클라이언트를 통해서
접속이 가능하게 된다.

1. CentOS 에서는 rpm 으로 설치가 가능하다.

yum -y install vncserver


2. 최초 시작시에는 다음과 같이 터미널에 입력해준다.

이때에 사용자의 VNC 로 접속할 때 사용될 패스워드를 넣어주어야 하고
나중에 vncpasswd 라는 명령어로 패스워드 변경할 수 있다.
아래는 root 에서 수행했으니 root 의 vncpasswd 가 생성되는 것이다.
만약 다른 계정으로 했다면 그 계정의 vncpasswd 가 실행되게 된다.

[root@localhost ~]# vncserver :1

You will require a password to access your desktops.

Password:
Verify:
xauth:  creating new authority file /home/bjh/.Xauthority

New 'localhost:3 (bjh)' desktop is localhost:1

Creating default startup script /home/bjh/.vnc/xstartup
Starting applications specified in /home/bjh/.vnc/xstartup
Log file is /home/bjh/.vnc/localhost:1.log


3.  각 계정 사용자의 홈디렉토리에 숨김 디렉토리가 생성된다.  ( .vnc )
그 안의 xstartup 이라는 파일을 vi 로 열어서 수정해야 한다.

[root@localhost .vnc]# cat xstartup
#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

파일을 열어서 위의 빨간색 두 라인을 주석해제 ( 맨 앞에 # 을 삭제 ) 해서
적용이 되도록 만들어준다.

unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc

만약 이 과정을 빼먹으면 나중에 vnc viewer 로 접속햇을 때 원하지 않는 이상한 화면(아무것도 없는 화면)을 볼 지도 모른다.

4. 원격접속시 사용될 해상도와  어느 유저로 접속할 것인지를 결정해야 한다.
root 로 로그인한 상태에서 /etc/sysconfig/vncservers 라는 파일을 열어서 편집해야 한다.

[root@localhost sysconfig]# cat  vncservers
# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the lines below to start a VNC server on display :2
# as my 'myusername' (adjust this to your own).  You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that. 
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted!  For a secure way of using VNC, see
# <URL:http://www.uk.research.att.com/archive/vnc/sshvnc.html>.

# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.

# Use "-nohttpd" to prevent web-based VNC clients connecting.

# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel.  See the "-via" option in the
# `man vncviewer' manual page.

# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"

여기서 맨 마지막 두 라인이 바로 예제이다.
이것을 그대로 복사해서 라인을 추가하고
VNCSERVERS 라는 라인에서는 사용하고자하는 포트와 유저를 지정하게 된다.
또한 두번째 라인의 VNCSERVERARGS 라인은 vncviewer 를 통해서 접속했을 때 사용하고자 하는 해상도를 지정하게 된다.
물론 새로 추가하는 라인들은 앞의 # 을 제거해서 주석해제 처리 해주어야 한다.

위에서는 root 에서 만들었지만 이것을 다른 특정 유저에서 사용하게 할려면
특정 사용자 아이디로 로그인하고 나서 위의 과정을 반복해준 다음에
예를 들어 test 라는 계정이 이미 있고 그 계정으로 VNCSERVER 를 운영할려면 아래와 같이 수정해서 넣어준다.

VNCSERVERS="1:test"
VNCSERVERARGS[2]="-geometry 1024x768 -nolisten tcp -nohttpd -localhost"

5. 복수의 사용자별로 VNC 서버를 설정하는 법
만약 여러 계정에서 사용하고자 한다면 VNCSERVERS 라인에 추가를 해주어야 한다.
VNCSERVERS="1:test  2:test2  3:root"
VNCSERVERARGS[2]="-geometry 1024x768 -nolisten tcp -nohttpd -localhost"

설정이 완료되었다면 VNCSERVER 를 재시작해야 한다.

이렇게 되면 test 라는 계정과 test2 라는 계정 그리고 root 라는 계정으로 각각 따로 VNC 서버가 구동하게 되어서 각각 다른 화면으로 접속하여 다른 작업이 가능하게 된다.

즉 윈도우PC 에서 리눅스로 접속할 때에는 다음과 같은 화면처럼 3가지 접속이 가능하다.
즉 3개의 사용자별로 따로 VNC 서버가 구동되게 되는 것이다. 

아이피 뒤의 숫자는 포트번호인데  위의 /etc/sysconfig/vncservers 파일에서 계정적어준 앞의 숫자를 바꾸고 VNC 재기동을 하면 설정한 포트번호로 접속이 가능하다.






6. VNCSERVER 재시작
리눅스에서는 두가지 방법을 통해서 서비스 재시작이 가능하다.
service vncserver restart

/etc/init.d/vncserver restart

두가지 모두 결과는 같다.

만약  VNCSERVER 를 전체적으로 중단하고 싶다면 맨 뒤쪽의 restart 대신에 stop 을 넣고
시작을 원하면 start 를 넣으면 된다.

만약 특정 유저들 중에서 하나만 중지하고자 할 때에는
그 유저로 로그인 한뒤에 display 번호까지 지정해서 KILL 하면 된다.
vncserver -kill :3


6. 원격PC(윈도우) 에서 vncviewer 를 설치해서 접속
VNCVIEWER 프로그램은 프리웨어로 윈도우PC 에 설치해서 접속이 가능하다.

REALVNC 를 사용하든지 TightVNC 를 사용하든지 마찬가지 이다.
어느것을 선택해도 좋다.

아래와 같이 입력해서 접속한다.
이때 아이피의 뒤에 적어주는 것은 위의 4번 과정에서 설정했던 포트번호이다.
다른 포트번호도 설정했다면 해당 포트번호를 적어주면 설정한 유저로 접속되는 것을 확인할 수 있을 것이다.

XXX.XXX.XXX.XXX:1


참고로 display 번호가 바로 내가 말한 포트번호이다.
VNC서버는 TCP포트를  5900 부터 시작하는데 display 번호가 1 이면 5901 포트를 사용해서 리눅스는 LISTEN 상태로 대기하고 있게 된다.

이것은 CentOS 터미널 상에서 netstat -na | grep 590* 을 쳐보면 LISTEN 상태인 것을 직접 확인할 수 있다.

** 추가 : VNC 서버 접속시 해상도 조절이 되지 않을 때.

추가적으로 VNC 의 해상도 조절이 잘 안되는 경우에는 /etc/init.d/vncserver 라는 스크립트를 직접 수정해서
VNC서버 실행되는 조건을 직접 수정해 버리는 방법도 있다.

centos 기준으로 원래는 "${VNCSERVERARGS[${DISP}]}" 의 변수가 들어가 있는 부분을
아래처럼 -geometry 1280x800 로 바꿔버리니 VNC서버가 시작될 때 해상도를 아래 해상도로 지정해서 띄우게 됨.ㅋ
runuser -l ${USER} -c "cd ~${USER} && [ -f .vnc/passwd ] && vncserver :${DISP} -geometry 1280x800"


2010. 6. 23. 21:52

솔라리스 10 NIC 의 speed / duplex 변경 방법

솔라리스 10에서는 nddconfig 를 수행해야 한다.

이 파일의 위치는 다음과 같다.

[root@localhost :/etc/rc2.d ] ls -l *ndd*
lrwxrwxrwx   1 root     root          21 Apr  7  2008 S31nddconfig -> /etc/init.d/nddconfig*

안의 내용을 보면 각각의 네트워크 인터페이스마다 speed 와 duplex 를 설정할 수 있게 되어 있다.

이것을 변경하고자 하도록 메모장에 복사해서 한 라인식 터미널에 붙여넣어 주고 실행시켜 주고나서

서버를 OS 리부팅해야 한다.

물론 그 전에 스위치 쪽의 speed / duplex 가 우선적으로 변경되어야 할 것은 당연지사.

Solaris 버전마다 틀릴 수 있으므로 확인이 필요할 것이다.

[root@localhost :/etc/rc2.d ] more S31nddconfig
#!/bin/sh

echo "All CE NIC, Full-Duplex Fixed"

/usr/sbin/ndd -set /dev/ce instance 0
/usr/sbin/ndd -set /dev/ce adv_1000fdx_cap 0
/usr/sbin/ndd -set /dev/ce adv_1000hdx_cap 0
/usr/sbin/ndd -set /dev/ce adv_100fdx_cap 1
/usr/sbin/ndd -set /dev/ce adv_100hdx_cap 0
/usr/sbin/ndd -set /dev/ce adv_10fdx_cap 0
/usr/sbin/ndd -set /dev/ce adv_10hdx_cap 0
/usr/sbin/ndd -set /dev/ce adv_autoneg_cap 0

....



'솔라리스10' 카테고리의 다른 글

솔라리스 PKG 추가 / 제거  (0) 2011.06.18
솔라리스 계정 aging 관련 ( expire 현상 )  (0) 2011.03.17
2010. 5. 31. 11:07

텍스트 파일을 잘라보자. split

리눅스 명령어 중의 split 는 큰 용량의 텍스트 파일을 여러개로 분리하는 명령어이다.

[si@localhost test]$ split --help
사용법: split [<옵션>] [<입력> [<접두어>]]
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
size is 1000 lines, and default PREFIX is `x'.  With no INPUT, or when INPUT
is -, read standard input.

긴 옵션에서 꼭 필요한 인수는 짧은 옵션에도 꼭 필요합니다.
  -a, --suffix-length=N   use suffixes of length N (default 2)
  -b, --bytes=SIZE        put SIZE bytes per output file
  -C, --line-bytes=SIZE   put at most SIZE bytes of lines per output file
  -d, --numeric-suffixes  use numeric suffixes instead of alphabetic
  -l, --lines=NUMBER      put NUMBER lines per output file
      --verbose           진단 내용을 각 출력 파일을 열기 직전에 표준 오류로
                            출력합니다
      --help     이 도움말을 표시하고 끝냅니다
      --version  버전 정보를 출력하고 끝냅니다

<크기>에 접미어로 그 단위를 나타낼 수 있습니다; b는 512, k는 1킬로, m은 1메가입니다.

<bug-coreutils@gnu.org>(으)로 버그를 알려 주십시오.

기억해야 되는 옵션은 -l  옵션이다. 이것은 텍스트 파일을 라인 단위로 자르는 것이다.

 split -l test.txt 라고 넣으면 기본 1000 라인씩 잘라서 파일을 생성하는데 
생성되는 파일의 이름은 순차적으로 xaa, xab ~ 이런식으로 생성된다.

[si@localhost test]$ split -l 10 test.txt
[si@localhost test]$ ls -l
합계 12
-rw-rw-r-- 1 si si 28  5월 31 10:34 test.txt
-rw-rw-r-- 1 si si 21  5월 31 10:35 xaa
-rw-rw-r-- 1 si si  7  5월 31 10:35 xab
[si@localhost test]$ cat xaa
1
2
3
4
5
6
7
8
9
10
[si@localhost test]$ cat xab
11
12

만약 용량단위로 자르고 싶다면 -b 옵션을 이용하자

split -b 10K test.txt 라고 넣으면 10K ( 10240 ) 만큼씩 잘라지게 된다.

2010. 5. 25. 00:31

파일비교 스크립트 5

a.txt 에는 원본 파일로 대용량 파일
b.txt 에는 부분 파일

a.txt 에 있는 내용중에 b.txt 파일에 있는 내용이 포함되어 있는 라인만 뽑아내는 스크립트

#!/bin/bash
dir=$PWD

for mdn in `cat $dir/b.txt | awk -F, '{print $1}'`
do
      grep  $mdn $dir/a.txt >> $dir/tmp.txt
done

결과는 tmp.txt 라는 파일에 저장된다.


최종 파일 비교 스크립트 -> http://darkrang.tistory.com/219



2010. 4. 22. 14:20

파일들의 확장자만 변경

현재 디렉토리의 TXT 라는 확장자를 가진 파일들이 있고,
이것들을 모두 JPEG 라는 확장자로 변경하고 싶다면

간단한 쉘스크립트로 변경이 가능하다.

우선 test.sh 라는 스크립트를 아래의 내용으로 만든다.

#!/bin/sh
for f in *.${1}; do mv "$f" "${f%${1}}${2}"; done


실행할 때에는 test.sh txt jpeg 라고 수행을 해야 한다.
우선 chmod +x 명령어로 test.sh 에 실행권한을 주고
아래와 같이 수행한다.
chmod +x test.sh
./test.sh txt jpeg

아래는 수행되는 모든 과정을 보여준다.
[si@localhost 100422]$ ls -l
합계 4
-rw-rw-r-- 1 si si  0  4월 22 14:05 1.txt
-rw-rw-r-- 1 si si  0  4월 22 14:05 2.txt
-rw-rw-r-- 1 si si  0  4월 22 14:05 3.txt
-rwxrwxr-x 1 si si 61  4월 22 14:14 test.sh
[si@localhost 100422]$
[si@localhost 100422]$ ./test.sh txt jpeg
[si@localhost 100422]$ ls -l
합계 4
-rw-rw-r-- 1 si si  0  4월 22 14:05 1.jpeg
-rw-rw-r-- 1 si si  0  4월 22 14:05 2.jpeg
-rw-rw-r-- 1 si si  0  4월 22 14:05 3.jpeg
-rwxrwxr-x 1 si si 61  4월 22 14:14 test.sh

2010. 4. 21. 00:22

공유기 기능 - 고급기능4 ( WOL )

공유기의 고급기능 중에 WOL ( Wake On Lan ) 기능이 있다.

사실 처음에 공유기를 공부하게 된 계기도 이 기능이었다.
WOL 이란 LAN 을 통해서 컴퓨터를 부팅시키는 기능으로 원격에서 공유기 설정화면으로 들어와서
공유기 아래 사설PC 를 부팅시키는 기능이다.

즉 원격에서 컴퓨터를 키고 원격접속 TOOL 을 통해 원격으로 PC 에 접속할 수 있는 기능이다.

이 기능을 사용하기 위해서는 몇가지 체크를 해야 한다.
메인보드에서 WOL 기능을 지원하는지? 랜카드가 WOL 을 지원하는지?

요즘의 메인보드에서는 거의 다 지원한다고 보면 될 것이다.
또한 랜카드도 마찬가지이고

1. 공유기에서의 WOL 설정

공유기에서는 WOL 설정에 들어가서
WOL 을 사용할 PC 의 Mac address 를 적어준다.
윈도우PC 라면 command 창에서 ifconfig/all 로 현재 사용중인 랜포트의 Mac address 를 확인할 수 있다.

2. PC 에서의 WOL 설정
바이오스에서 WOL 기능을 활성화시켜준다.
메인보드의 매뉴얼을 참고해서 Wake On Lan 기능을 켜주어야 한다.

이렇게 해서 컴퓨터를 종료시켰을 때 공유기와 연결된 포트가 계속 LED 가 들어오는지 확인한다.
만약 종료햇는데 공유기 사설포트쪽의 LED 가 꺼지면 WOL 기능이 동작하지 않는다.

추가적으로 윈도우즈의 랜카드 설정에서 확인을 해야 한다.

3.  PC의 랜카드 설정 확인
아래  그림처럼 "이 장치로 컴퓨터를 대기 상태에서 빠져 나오게 함" 을 클릭해야 한다.


물론 공유기에서 외부에서 원격접속으로 공유기 웹화면으로 접속할 수 있도록 미리 설정이 되어 있어야
원격에서 공유기설정화면으로 접속해서 ( 공인아이피를 알고 있어야 함 )
WOL 기능으로 사설PC 를 부팅시킬 수 있다.
그리고 원격접속하는 방법은 여러가지가 잇다. 원도우 자체에서 제공하는 "원격데스크톱 연결" 을 사용하거나
아니면 VNC 같은 프로그램을 이용해도 된다.
( 단, 공유기에 미리 해당 프로그램이 사용하는 포트가 포트포워딩으로 지정이 되어 있어야 한다
전에 쓴 [네트워크 기초] - 공유기 기능 - 고급기능1 ( 포트포워딩 ) 을 참고하기 바란다 )


원리는 간단하다. 컴퓨터를 종료시켰지만 랜카드는 계속 전원을 유지시키고 대기상태로 있다가
매직패킷 이라는 패킷이 들어오게 되면
컴퓨터를 부팅시키는 원리이다.

자 다들 한번 해보시길

예전에 처음 WOL 을 구성할때에는 랜카드가 지원하지 않아서 3핀짜리 케이블로
PCI 랜카드와 메인보드를 연결해줘서 사용했었다.
물론 3핀이 있는 랜카드를 새로 장만한 것이구요.
하지만 요즘은 아예 메인보드에 랜카드가 달렸으니 그럴 필요는 이제 없겠지요 ㅎㅎ

4. 사용이후 PC 의 전원끄기

다 사용한 PC 의 전원을 원격데스크탑으로 접속해서 끌려고 하면 "시스템종료" 버튼이 보이지 않는다.
이럴 때에는 "시작" --> "실행" 창에 cmd 를 입력하고 엔터를 하면
까만 DOS 창이 나오고 여기에다가

shutdown -s -t 10

라고 치면 10초 뒤에 컴퓨터가 종료된다.


2010. 4. 19. 15:27

리눅스 시스템의 부팅시 파일무결성 체크 강제로 하기

리눅스 서버를 강제로 전원버튼을 눌러서 셧다운 시킨후
다시 부팅시키거나 할 때에는

리눅스 부팅시 파일 무결성 체크를 할 것인지 물어보게 되어 있습니다.

위의 경우처럼 강제로 서버를 리부팅했을때에는 root 디렉토리 밑에
(1) 숨김파일로 .autofsck 라는 파일 생성되고 이것은 다음 부팅시에 아래의 메시를 보이면서 5초안에 Y 를 누르면 파일 무결성 체크를 진행하게 됩니다.
-rw-r--r--    1 root root          0 Apr  1 17:33 .autofsck

Press Y within 3 seconds to force file system integrity check
(2) 또는 강제로 root 디렉토리 밑에 forcefsck 라는 파일을 만들어두면 다음 부팅시에 자동으로 파일무결성 체크를 진행하게 됩니다.
[root@localhost /]# cd /
[root@localhost /]# ls -l f*
-rw-r--r-- 1 root root 0  4월 19 15:17 forcefsck

reboot 명령어를 했을 때 다음 부팅시 강제체크한다는 메시지를 볼 수 있을 겁니다.


여기서 팁은 강제로 파일 무결성을 체크하도록 하는 것입니다.
실제로 리눅스가 부팅되는 과정에서 /etc/rc.d 밑의 rc.sysinit 파일이 수행되게 되는데
이 스크립트 안에 관련된 내용이 있습니다.
이것을 수정해야 하고 /forcefsck 파일을 touch /forcefsck 명령어로 파일만 생성시켜 주면됩니다.

[root@localhost rc.d]# cd /etc/rc.d
[root@localhost rc.d]# ls -l rc.sy*
-rwxr-xr-x 1 root root 27420  3월  6  2009 rc.sysinit

서버가 리부팅되고 나서는 rc.sysinit 스크립트안에 /.autofsck 와 /forcefsck 파일 두개를 지우는 내용이 포함되어 있으므로, 서버가 리부팅될때마다 무조건 체크하기 위해서는 /forcefsck 파일을 지우는 부분을 rc.sysinit 스크립트안에서 지워줘야 합니다.

/etc/rc.sysinit 파일 내용중

# Clean out /.
rm -f /fastboot /fsckoptions /forcefsck /.autofsck /forcequotacheck /halt \
        /poweroff &> /dev/null

위 부분을 아래와 같이 수정

# Clean out /.
rm -f /fastboot /fsckoptions /.autofsck /forcequotacheck /halt \
        /poweroff &> /dev/null

이렇게 되면 다음 리눅스 서버가 부팅 될 때마다 무조건 파일무결성 체크를 진행하게 됩니다. ^^

※ 참고적으로 fsck 라는 명령어는 파일시스템을 unmount 한 상태에서 진행해야 됩니다. !!
만약 마운트 되어 있는 상태의 파티션에다가 fsck (파일시스템체크) 명령어를 내리게 되면
그 파티션은 날라갑니다 !! 정말 주의 해야 합니다.





2010. 4. 6. 22:44

공유기기능 - 고급기능3 TwinIP

TwinIP 라는 것은 IPTIME 이라는 회사에서 만든 공유기 제품에 있는 기능입니다.

이것은 앞에 설명한 글의  [네트워크 기초] - 공유기 기능 - 고급기능2 ( DMZ )
에서 설명한 기능과 비슷한 기능이지만 약간 다릅니다.

DMZ 는 오래 전 공유기도 가지고 있는 기능인데 반해 TwinIP 는 비교적 근래에 추가된 기능이라고 할 수 있겠지요.

DMZ 는 사설PC 쪽에서는 여전히 사설IP 를 가지고 있는데 반해서
TwinIP는 사설PC라고 해도 실제로 공인IP 를 가지고 동작하게 되며, 동시에 다른 사설PC 는 사설IP 를 가지고
동시에 인터넷이 가능하게 됩니다.

즉 하나의 특정한PC 에만 공유기가 외부로부터 받은 공인IP 를 할당하면서  다른 사설PC 들에는 192.168.x.x 라는 사설IP 를 주어서 동시에 인터넷을 가능하도록 하는 것이지요

설정하는 방법은
(1) 공인IP를 받아서 사용하도록 할 PC 의 MAC address 를 공유기 설정에 넣어주고
(2) 그 사설PC 의 인터넷 설정은 DHCP 로만 잡아주면 끝입니다.

그러면 실제로 모든 포트가 IN / OUT 에서 그 PC 로 열리게 됩니다.

공유기 안의 다른 사설PC 에서 그 PC 로 접속할려고 해도 공인IP 를 쳐야 하지요

이것은 실제로 하나의 공인IP를 전혀 쓰지 못하는 기존의 공유기들과는 다르게
공인IP를 가지는 PC 를 가지게 하고 동시에 다른 PC 들의 인터넷도 되는 편리한 기능이라고 할 수 있지요

IPTIME 제품들을 가지고 계시다면 한번 쯤 사용해보는 것도 좋을 거 같네요 ^^


만약 다른 사설PC 에서도 TwinIP 를 설정한 PC 로 접속하려면 공인IP 로 접속을 해야 됩니다.


TwinIP 를 설정하거나 또는 DMZ 를 설정하는 이유는 공유기 외부의 네트워크 ( 공인IP ) 에서
공유기 아래의 사설PC 로 접속을 하기 위한 것인데요.

DMZ 를 선택하든 아니면 TwinIP 를 설정하든
아니면 포트포워딩으로 특정 포트만 열리도록 설정하든지
그건 자유입니다.

단지 포트포워딩을 사용하려면  프로세스가 사용하는 포트를 정확히 알고 열어줘야 겠지요
잘 모르고 복잡하다 그러면 TwinIP 를 설정하는 것이 가장 간편하지만
외부의 모든 포트에 대해서 열리게 되므로 사설PC 의 보안에 신경을 써야 겟지요 ^^



2010. 3. 30. 14:33

리눅스 dmesg 를 통한 eth 포트의 down / up 구분

리눅스 dmesg 를 통해서
서버에 연결된 랜포트들을 구분할 수 있다.

서버쪽의 랜포트를 뽑고 나면 eth 포트의 링크가 down 된게 되고
이것은 리눅스 서버에서 dmesg | grep eth 명령으로
맨 아래쪽에 업데이트가 된다.

즉 랜포트를 뽑고 서버에서 dmesg | grep eth 명령으로 확인하면
아래쪽에 링크 UP 과 DOWN 을 확인할 수 있다.

[root@mbuIVR1:~ ] dmesg | grep eth
divert: not allocating divert_blk for non-ethernet device lo
divert: allocating divert_blk for eth0
e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
divert: allocating divert_blk for eth1
e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
divert: allocating divert_blk for eth2
e1000: eth2: e1000_probe: Intel(R) PRO/1000 Network Connection
divert: allocating divert_blk for eth3
e1000: eth3: e1000_probe: Intel(R) PRO/1000 Network Connection
e1000: eth0: e1000_watchdog_task: NIC Link is Up 1000 Mbps Full Duplex
e1000: eth0: e1000_watchdog_task: NIC Link is Down
e1000: eth0: e1000_watchdog_task: NIC Link is Up 1000 Mbps Full Duplex
e1000: eth1: e1000_watchdog_task: NIC Link is Up 1000 Mbps Full Duplex
e1000: eth1: e1000_watchdog_task: NIC Link is Down
e1000: eth1: e1000_watchdog_task: NIC Link is Up 1000 Mbps Full Duplex
e1000: eth2: e1000_watchdog_task: NIC Link is Up 100 Mbps Half Duplex
e1000: eth2: e1000_watchdog_task: NIC Link is Down
e1000: eth2: e1000_watchdog_task: NIC Link is Up 100 Mbps Full Duplex
e1000: eth3: e1000_watchdog_task: NIC Link is Up 100 Mbps Half Duplex
e1000: eth3: e1000_watchdog_task: NIC Link is Down
e1000: eth3: e1000_watchdog_task: NIC Link is Up 100 Mbps Full Duplex
divert: not allocating divert_blk for non-ethernet device sit0
eth2: no IPv6 routers present
eth3: no IPv6 routers present
eth1: no IPv6 routers present
eth0: no IPv6 routers present
e1000: eth2: e1000_watchdog_task: NIC Link is Down
eth2: no IPv6 routers present
e1000: eth2: e1000_watchdog_task: NIC Link is Up 100 Mbps Full Duplex
e1000: eth2: e1000_watchdog_task: NIC Link is Down
eth2: no IPv6 routers present
e1000: eth2: e1000_watchdog_task: NIC Link is Up 100 Mbps Full Duplex
e1000: eth2: e1000_watchdog_task: NIC Link is Down
e1000: eth0: e1000_watchdog_task: NIC Link is Down
e1000: eth2: e1000_watchdog_task: NIC Link is Up 100 Mbps Full Duplex
eth2: no IPv6 routers present
eth0: no IPv6 routers present
e1000: eth1: e1000_watchdog_task: NIC Link is Down
e1000: eth0: e1000_watchdog_task: NIC Link is Up 1000 Mbps Full Duplex
eth1: no IPv6 routers present
e1000: eth1: e1000_watchdog_task: NIC Link is Up 1000 Mbps Full Duplex
e1000: eth3: e1000_watchdog_task: NIC Link is Down
eth3: no IPv6 routers present
e1000: eth3: e1000_watchdog_task: NIC Link is Up 100 Mbps Full Duplex
[root@mbuIVR1:~ ]

2010. 3. 29. 18:24

리눅스 32bit 와 64bit 구분

1. 시스템이 32bit 인 경우 아래와 같이 32 라고 나옴
[root@localhost ~]# getconf LONG_BIT
32


2. 시스템이 64bit 인 경우 아래와 같이 b4 라고 나옴
[root@localhost ~]# getconf LONG_BIT
b4


※ 참고 : 시스템에 대한 정보
cat /etc/issue
uname -a
cat /etc/redhat-release
[root@localhost ~]# cat /etc/issue
CentOS release 5.3 (Final)
Kernel \r on an \m

[root@localhost ~]# cat /etc/redhat-release
CentOS release 5.3 (Final)
[root@localhost ~]#
[root@localhost ~]# uname -a
Linux localhost 2.6.18-128.el5 #1 SMP Wed Jan 21 10:44:23 EST 2009 i686 i686 i386 GNU/Linux


솔라리스에서의 32bit 및 64bit 동작 구분

isainfo -kv
64-bit sparcv9 kernel modules 


 

'리눅스 퍼옴' 카테고리의 다른 글

rpm 명령어 자세한 옵션  (2) 2008.11.11
mplayer 설치하기  (0) 2008.09.09
시스템관리툴킷 : 로그파일 이해하기  (0) 2008.06.04
[펌글] 리눅스 하드 관리하기  (0) 2007.11.22
[펌글] DHCP 란?  (0) 2007.11.22
[펌글] VNC 서버  (1) 2007.11.22
2010. 3. 17. 14:27

공유기 기능 - 고급기능2 ( DMZ )

공유기의 고급기능중에 DMZ 기능을 설명하고자 합니다.

DMZ 란 공인아이피로부터 오는 모든 포트를 공유기 아래의 특정한 사설아이피를 가지는 PC 로 모두 넘겨주도록 설정하는 기능입니다.

공유기에서 설정할 때에는 특정 MAC address 로 설정을 하게 됩니다.

실제로 PC 가 아이피를 받아오는 것은 랜카드의 MAC address 를 통해서 이뤄지기 때문입니다.
MAC address 는 공인아이피 처럼 unique 한 값을 가져야 합니다.

수많은 랜 카드의 MAC address 중에서 중복되는 값을 가지는 것들은 없는 것이죠

이것은 뒤에 설명할 TwinIP 라는 것과는 약간 다릅니다.

또한 이전에 설명한 포트포워드가 이미 설정된 것들에 대해서는 예외적으로 동작하게 됩니다.
PC 에서는 사설아이피를 가지고 외부의 포트가 열리게 됩니다.

공유기 아래에서 보통의 다른 사설아이피를 가지는 PC 에서는 외부 공인아이피쪽의 포트로 요청이 들어오더라도
막혀있게 됩니다. 그것을 특정한 MAC 을 가지는 사설PC 에서 열도록 해주는 것이 바로 DMZ 설정입니다.


2010. 3. 3. 22:47

공유기 기능 - 고급기능1 ( 포트포워딩 )

공유기의 기본기능은 전의 글[네트워크 기초] - 공유기 - 기본지식편
에서 설명을 해두었다.

일반적으로 공유기를 사용하는데는 앞 글의 설명처럼 기본적인 선 연결만 잘 해주면 사용하는데 아무런 지장이 없다.

하지만 요즘에는 좀 더 많은 기능을 활용할 수 있도록 공유기가 나오고 있다.

이런 기능들에 대해서 살펴보자
우선 앞의 글을 읽고 이해를 해야 한다.

1. 포트포워딩

Portforwarding 이란 공인 아이피 쪽의 특정 포트로 패킷이 들어오면 그것을 사설아이피 쪽으로 포트를 변경해서
패킷을 전달해주는 기능이다.

예를 들어 외부에서 21번 FTP 요청이 들어왔을 때 사설아이피쪽의 PC 에 FTP 서버가 8000 으로 서비스를 돌려놓고 있다면,
외부의 네트워크에 있는 사용자는 공유기 아래의 사설PC 쪽으로 FTP 접속이 불가능하다.

하지만 포트포워딩 기능을 이용함으로써 외부에서 21번으로 접속하더라도
내부 FTP 서버의 8000 번 포트로 FTP 패킷이 전달되도록 할 수 있다.

거꾸로 외부에서 8000 번 포트로 FTP 패킷이 들어오면 공유기 아래의 PC 의 21번 포트로 FTP 패킷을 전달해줄 수 있다.

이것은 TCP 규격에 정의된 서비스들을 이용하거나 또는 개인이 사용하는 특정 프로그램의 포트를 포트포워드해서
내부에서 이용이 가능하도록 하게 해주는 것이다.

대표적인 서비스들은 윈도우원격데스크톱 기능 이라든가  HTTP, HTTPS, FTP, POP3, SMTP, TELNET, PPTP,
등이며 요즘 공유기는 인터넷 전화까지 지원이 가능하다.

하지만 중요한 것은 사설PC 쪽의 아이피를 지정해서 포트포워딩을 하는 것이기 때문에
공유기 아래의 내부PC가 특정한 사설아이피를 가지도록 ( 예를 들어 192.168.0.10 과 같이 고정되도록 )
설정을 해야 한다.
(  즉 PC 의 아이피를 위와 같이 192.168.0.10 으로 고정을 하거나 또는 공유기에서 특정 MAC address 를 가지는 PC의 랜카드가 특정한 사설아이피를 가지도록 설정하는 두가지 방법이 있다 )


2010. 2. 25. 20:17

공유기 - 기본지식편

히들 인터넷공유기라고 하는 것인데
외국에서는 home router 라고 표현을 한다.

가정집에서 사용하는 인터넷회선은 1 PC 만 인터넷을 사용할 수 있는데
요즘에는 집마다 데스크탑도 있고 노트북도 있는 상황이 얼마든지 있을 수 있기 때문에 많이들 공유기를 사용한다.

(1) NAT 기능 ( Network Address Translation )
공유기는 외부( 즉 공유기의 위쪽 WAN ) 의 공인IP 를 받아서
내부 ( 즉 공유기의 아래쪽 LAN ) 의 PC 들에게 사설IP 를 부여해준다.
공유기가 하는 역할은 동시에 여러 PC 에서 인터넷을 할 수 있도록 해주는 것이다.

사실 굳이 개념을 몰라도 꼽는 포트만 알면 사용하는데 아무런 문제도 없지만 조금 더 알고 사용한다면 공유기의 여러가지 편리한 기능을 사용할 수 있게 된다.

외부WAN ( 공인아이피 ) --> 공유기 WAN 포트(한개) --> 공유기 --> 공유기 LAN포트 (여러개) --> 여러 PC

이렇게 물리적인 라인을 볼 수 있다.

공인아이피와 사설아이피의 개념을 쉽게 설명하자면
공인아이피는 ISP ( Internet Service Provider 인터넷서비스제공업체 KT 나 하나로 파워콤이 되겠죠? ) 로부터
가입자인 개인의 가정에까지 선을 연결해서 인터넷을 연결해주고 서비스가 가능하게 하기 위한 세계에 유일한 아이피라고 보면 된다. 즉 인터넷에 연결된 PC 들 중에 현재 내 PC 의 아이피를 가진 PC 는 오직 나밖에 없는 유일한 아이피이다.

사설아이피는 말에서처럼 특정 네트워크 안에서 ( 여기서는 집이겠죠 ) 사용하는 아이피로
공인아이피와는 많이 다릅니다.
몇가지 자주 사용하는 사설아이피가 있습니다.
192.168.X.X 대역이나 예전 공유기 같은 경우에는 10.0.0.X 대역을 사용합니다.

또한 C 클래스를 보통 사용하지요 C 클래스라면 보통 192.168.0.2 ~ 192.168.0.254 까지 PC 들을 사용할 수 있습니다. 이것은 서브넷에 대해서 따로 공부하시면 알 수 있습니다.

즉 하나의 공유기 밑에 250 여대의 PC 가 아이피를 받아서 사용할 수 있는 것이죠
그렇게 하기 위해서 NAT ( Network Address Translation ) 이란 것을 사용합니다.
말 그대로 사설아이피를 받아서 공인아이피로 바꿔주고 반대로도 동작하는 것이죠.

(2) DHCP 기능 ( Dynamic Host Configuration Protocol )
ISP 로부터 1개의 공인아이피를 받아서 여러개의 PC 에 사설아이피를 분배해주고 ( DHCP )  인터넷이 가능하도록 만들어 주는 것입니다.
여러개의 PC 에 사설아이피를 나눠주는 것은 바로 DHCP 를 사용합니다.
DHCP ( Dynamic Host Configuratioon Protocol ) 은 사용하고자 하는 PC 가 여유의 아이피를 알려달라고 DHCP 서버 쪽으로 요청하고 요청받은 DHCP 서버는 클라이언트에게 (PC) 사용하지 않는 IP 를 할당하고 알려줘서 클라이언트가 IP 를 사용할 수 있게 분배해주게 됩니다.
만약 클라이언트PC가 꺼지면 다시 사용하던 IP 를 회수해서 다른 PC 가 사용할수 있도록 하게 해주죠.

여담이지만 DHCP 가 나왔던 이유는 적은 수의 아이피를 가진 곳에서 가진 아이피의 개수보다 많은 PC를
사용하기 위해서이지 않았을까요? 지금은 랜선만 꼽으면 바로 아이피를 받기위해서 더 많이 사용하겠지만요. ^^

외부 ISP 업체에서 볼때에는 공유기 아래 2개의 PC 에서 각각 하나씩만 IE (인터넷익스플로러) 를 띄울때
2개의 IE 가 떠서 사용하는 것처럼 보이겠지요 ? ㅋ


위에서 설명한 것은 기본적인 공유기의 기능입니다.
요즘 나오는 공유기에는 여러가지 기능이 있지요.
예전에는 단지 유선만 되었다가 무선 (WiFi) 의 기능이 추가되었구요
다음 글에서 추가적인 기능을 알아보도록 하지요 ^^




2009. 12. 23. 22:37

28. CentOS 에서 yum 수행시 repo 사이트 추가

CentOS 에서는 yum 이라는 명령어로 rpm 을 관리해준다.

연관성이 있는 rpm 들을 체크해서 같이 설치를 해주기 때문에
rpm 이 설치되고 나서 실행이 안되는 경우를 방지해준다.

수행 방법은 rpm 의 이름으로 yum 명령어를 치면 된다.

예를 들어 ethereal 을 설치할려고 한다면

리눅스 터미널상에서 다음과 같이 입력한다 .

yum -y install ethereal*

그러면 ethereal 로 시작하는 rpm 들을 연관성 체크해서 같이 설치를 진행하게 된다.

여기서 문제는 잘 사용하지 않거나 rpmforge 에 있는 rpm 들도 같이 yum 을 통해서 설치 가능하도록 하려면

repo  파일을 수정하거나 추가로 설치해야 한다.
아래는 기본적인 repo 의 정보가 들어있는 파일들이다.
[root@localhost yum.repos.d]# ls -l
total 20
-rw-r--r-- 1 root root 2389 Dec 23 22:29 CentOS-Base.repo
-rw-r--r-- 1 root root  626 Mar 17  2009 CentOS-Media.repo

CentOS wiki 사이트에서 자세한 방법을 설명하고 있으니 다음 링크 클릭해서 그대로 따라 하면 되겠다.

http://wiki.centos.org/AdditionalResources/Repositories/RPMForge

쉽게 CentOS 설치하고 나서 터미널에서 다음과 같이 치면 된다.
(1) yum install yum-priorities


(2) vi /etc/yum/pluginconf.d/priorities.conf
여기서

[main]
enabled=1
라고 되어 있는지 확인

(3) cd
/etc/yum.repos.d/

두개 파일에서 CentOS-Base.repo 과 CentOS-Media.repo 을 열어서 마지막 라인에

다음과 같이 추가

priority=1

(4) wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm

(5) rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

(6) rpm -K rpmforge-release-0.5.1-1.el5.rf.*.rpm

(7) yum check-update

하고 나서 테스트로 mplayer 를 한번 설치 전 단계까지 해본다.

yum install mplayer

그럼 중간에 설치할 것인지 말 것인지 [y/n] 를 물어보고 n 를 입력하면 설치 취소가 된다.


2009. 12. 22. 14:08

15. 텍스트 파일 포맷 변경


파일포맷을 확인하는 방법
[root@localhost ~]# file test
test: ASCII text

file 명령어는 ASCII 파일인지 UTF-8 인지 UNICODE 인지 확인하는 명령어



텍스트의 포맷이 일정하지 않아서 스크립트로 처리시에 오류가 생길 경우는

recode 명령어를 통해서 포맷을 일정하게 해주는 것이 좋다.

yum -y install recode 를 통해서 리눅스 CentOS 에 설치하고

recode -l 으로 포맷형식들을 확인

recode -f UTF-8 <파일명> 이라고 명령을 내리면 해당 파일이 UTF-8 로 포맷형식이 바뀌게 된다.


dos2unix 명령어는 VI 편집기로 열었을 때 라인끝에 ^M 이라는 문자가 보이는 경우가 있다
이것을 지워주는 역할을 한다.

그리고  Col 필터는 "\n\r" 문자를 "\n" 문자로 바꾸어 주는 필터이다.     또한 공백문자
를 탭문자로 바꾸고, 백스페이스 문자를 없애는 기능을한다
( 참고 : http://darkrang.tistory.com/117 )

따라서 vi 편집기로 열었을 때에 전체적으로 이상한 기호가 보이거나 한다면
위의 recode 명령어를 사용해서 텍스트 파일의 포맷을 변경해야 한다.

또한 recode 는 * 를 지원하므로

recode -f utf-8 *.txt 라고 적어도 모든 txt 파일에 대해서 적용된다.



recode -v <소스인코딩>...<출력인코딩> <파일명>

recode -v EUC-KR...UTF-8 *.txt

다음은 현재 디렉토리 안의 파일들의 txt 파일만 찾아서 파일포맷을 변경하는 스크립트이다


#!/bin/bash
DIR=$PWD
count=0
ls -l *.txt | awk '{print $9}' > filelist

for file in `cat $DIR/filelist`
do
recode -f UTF-8 $file
cat $file | col -b > imsy.txt
sort -u imsy.txt > $file
count=`expr $count + 1`
done
2009. 12. 18. 21:16

14. 지난 파일 압축하고 삭제하기

자 드뎌 완성 버전? 인가? ㅋ

ㅋㅋ

#!/bin/bash
## Day and DIR configuration
DATE=`date +%y%m%d`
echo "date is $DATE"
DIR=`echo $PWD`
echo $DIR

## Decide period "A" is the range of the keeping days

A=3

## Tar and gzip compress 

find $DIR -mtime +$A > $DIR/imsy.txt
tar -cvf $DATE.tar `find $PWD -mtime +$A`
gzip $DATE.tar

## remove old files 
        cat $PWD/imsy.txt | sed -n '/txt/p' > $PWD/imsy2.txt
        cat $PWD/imsy2.txt > $PWD/imsy.txt
        for B in `cat $PWD/imsy.txt`
        do
                echo $B
        #       rm -rf $PWD/$B
        done

우선 이 스크립트의 기능은 특정 디렉토리안에 쌓이는 파일들이 계속 있을 경우

특정날짜만큼만 디렉토리에 그대로 두고

예를 들어 3 일이 지난 파일들은 모두 tar.gz 로 압축을 하고 나서
압축된 파일들은 지워버림.ㅋㅋ



find ${DIR} -type f -mtime +7 | xargs rm -f  이건??


2009. 12. 18. 12:23

브리지와 스위치의 차이점

우선 네트워크가 이뤄지는 OSI 7 Layer 를 보면 다음과 같다.  ( 자세한 설명은 이전 글 http://darkrang.tistory.com/155 참조 )
1. 물리계층 ( Physical layer )
2. 데이터 링크 계층 ( Data link layer )
3. 네트워크 계층 ( Network layer )
4. 전송 계층 ( Transport layer )
5. 세션 계층 ( Session layer )
6. 표현 계층 ( Presentation layer )
7. 응용 계층 ( Application layer )


여기서 브리지가 속하는 것은 2단계 데이터링크계층에 속하는 장비이다. 즉 레이어2 에 속하는 장비이며
스위치는 3단계 네트워크 계층에 속하는 장비임 즉 레이어3 .

차이점을 간략히 설명하면 다음과 같다.

  브리지 ( Bridge )
스위치  ( Switch )
 처리방식 소프트웨어
하드웨어
 Port 별 속도
같음
다른 속도도 지원
 Port 수
2~3개
10~몇백개
 처리방식 및 속도
 Cut-though 또는 Store-and-forwarding
스위치에 비해 느림
Store-and-forwarding
브리지에 비해 빠름



브리지는 콜리전 도메인(collision domain)을 나눠주기 위해서 만들어졌음
( 참고로 콜리전 도메인은 한마디로 PC 들의 묶음이라고 생각하면 될듯 , 여러 개의 네트워크 장비나 호스트가
동일한 미디어에 연결되어 있어 두 대의 호스트가 동시에 데이터를 보낼 때 충돌이 일어나는 범위
즉 허브로 연결된 수십대의 컴퓨터의 네트워크 범위를 뜻함
만약 콜리전 도메인을 이루는 PC 가 많아지면 많아질 수록 서로의 통신에 영향을 주게 되어
통신 속도가 저하됨 )


브리지가 하는 역할은 다음과 같음
(1) Learning : 포트에 연결된 출발지의 Mac address 를 브리지안의 맥테이블에 저장하는 기능

(2) Flooding : 만약 목적지 주소가 송신지와는 다른 네트워크에 존재하며 mac table에 목적지 주소가 이미 존재하고 있다면 테이블에 있는 정보를 이용하여 적절한 경로를 결정한 다음, 해당하는, 전송로로 패킷을 전송한다.
만약 table에 목적지 주소가 등록되어 있지 않으면 목적지에 해당하는 장치가 어느 네트워크에 속해 있는지 알길이 없으므로 Frame이 수신되어온 회선을 제외한 모든 전송 회선으로 Flooding(ff:ff:ff:ff:ff:ff) Frame을 보낸다.

(3) Forwarding : 목적지 주소가 출발지 주소와 다른 세그먼트에 위치하는 경우 bridge가 자신의 테이블을 살펴서 어떤 포트로 길을 열어줘야 하는가를 확인 한 다음 그 포트로 프레임을 전달하는 역할은 한다.
( ※ Flooding 은 들어온 포트 이외의 모든 포트로 뿌리는 것이고, Forwarding 은 들어온 포트말고 해당 목적지 포트로만 내보내는 것 )

(4) Filtering : 목적지 주소와 출발지 주소가 같은 세그먼트 상에 존재한다면, 즉 bridge를 건너가지 않고도 통신이 일어날 수 있다면, 나머지 모든 포트로 이 프렘이 건너가는 걸 막는 역할을 한다.
출발지의 MAC address와 목적지의 MAC address가 같은 port에 연결된 경우
(같은 콜리젼 도메인, 같은 segment, 같은 LAN... 모두 같은말입니다.) 브리지를 넘어가지 못하도록 막아줍니다.
( ※ 이 기능이 바로 위에서 설명한 콜리전 도메인을 나눈다는 말 )

(5) Aging : table에 MAC address를 언제까지나 저장해 놓을 수 없기 때문에 일정 시간이 지나면 table에서 지웁니다.(기본 300초)
*aging에 설정된 시간동안 해당 MAC address의 통신이 없으면 table에서 삭제
( ※ 이렇게 지워져도 새로운 MAC address  가 들어오면 (1) 번의 Learning 에서 다시 MAC address 를 저장한다 )

브리지의 처리방식
※ Store-and-forwarding
- 스위치나 브리지가 일단 들어오는 프레임을 전부 받아 들인 후, 처리를 시작하는 방식. 프레임을 모두 받아 들이고 나서,   제대로 들어왔는지, 에러가 없는지, 출발지 주소, 목적지 주소가 어디인지 파악해서 처리 해주는 방식. 이때 에러가 발견 되면 브리지나 스위치는 프레임을 버리고 재 전송을 요구하기 때문에 에러 복구능력이 뛰어나다는 장점이 있다.

--> 모든 프레임을 다 받고 나서야 분석하고 그 다음에 처리가 되기 때문에 당연히 처리 속도가 느릴 것

※ Cut-though
- 스위치가 들어오는 프레임의 목적지 주소만을 본 다음 바로 전송 처리를 시작하는 방식. Store-and-forwarding 보다 처리속도가 빠르다는 장점이 있지만, 프레임에 발생 했을지 모르는 에러를 찾아내기 어렵다는 단점이 있다.

--> 프레임 헤더만 보고 처리하기 때문에 처리속도는 빠르지만 FCS 를 이용한 CRC (Cyclic Redundancy Check) 를 하지 않기 때문에 중간에 데이터가 잘못 들어오는 경우에는 확인할 방법이 없다.

이렇게 되고 스위치(Switch) 는 브리지의 모든 기능을 가지고 있다.

요즘에는 스위치가 더 활발하게 사용되므로 머 브리지를 쓰는 곳은 별로 없을 듯.
웹에서 찾아보니 오히려 백본망에서 잘 사용된다고 하던데.

스위치도 여러가지로 나눠져서 L2 ( Layer 2 ) 스위치 와 L3 스위치, L4 스위치 등등
네트워크장비들도 단순히 어느 Layer 에 어느 장비가 속한다라고 말할 수 없게 되었다.




2009. 12. 18. 11:43

OSI 7 layer 설명

1. 물리계층 ( Physical layer )
물리 계층은 OSI 참조 모델 중 최하위 계층으로서 전송매체(무선, 유선, 광케이블 등)를 이용하여 시스템과 시스템간의 물리적인 접속을 제어하기 위한 기능을 제공하는 것을 목적으로 한다.

물 리계층은 DTE(Data Terminal Equipment : 데이터 단말장치)와 DCE(Data Circuit terminating Equipment : 데이터 회선종단장치) 간의 실제적인 연결을 설정하고, 유지 및 해지를 위한 기능적, 전기적, 절차적, 기계적 특성을 제공한다.

물리계층의 주요 기능으로는 다음과 같다.
(1) 기능적(functional) 특성 각 핀에서 사용되는 신호의 기능을 정의하며, 일반적으로 데이터 신호, 제어신호, 타이밍 신호, 접지신호 등으로 규정하고 있다.
(2) 전기적(electrical) 특성 신호의 전위 규격과 전위 변화의 타이밍(timing)에 관한 것으로서, 이러한 특성은 데이터 전송속도와 전송거리를 결정한다.
(3) 절차적 (procedural) 특성 기능적 특성에 의하여 데이터를 교환하기 위한 절차(동작의 순서)를 규정한다.
(4) 기계적(mechanical) 특성 상호접속을 위한 커넥터의 물리적 규격을 정의한다. 즉, 커넥터의 형태, 핀 수에 대한 규정으로는 EIA, ISO 표준 등이 있다.


2. 데이터 링크 계층 ( Data link layer )
데이터링크 계층은 물리계층으로부터 제공되는 서비스를 이용하여 두 장치간의 정보전송을 원활하게 수행하고, 에러검출과 에러정정 기능을 제공하는 역할을 한다.

데이터링크 계층의 주요 기능으로는 다음과 같다.
프레임 동기 : 데이터는 프레임이라는 블록 단위로 전송되며, 각 프레임의 시작과 끝을 구분하게 되어있다.
회선형태의 다양성 : 기기는 점대점, 다중연결 방식 등으로 접속 할 수 있다. 흐름제어 기능 : 블록방식으로 전송하고, 수신 확인하는 블록전송방식이다.
오류제어기능 : 전소잇스템에 의해서 유발되는 오류를 검출하여 정정한다.
링크관리기능 : 주소 및 제어정보가 전송되므로 회선의 감시관리와 통계적인 처리뿐만 아니라 회선의 설정, 단락 제어 등이 가능하다.

※ 데이터 링크계층에서 사용되는 프로토콜 방식은 문자동기(byte oriented) 방식과 비트동기(bit oriented) 방식이 있다.
① 문자동기방식 : 통신로상에서 전송되는 모든 프레임을 문자단위로 구성하는 방식이며, 대표적인 예로는 IBM에서 제안한 BASIC 방식이 있다.
② 비트동기방식 : 통신로상에서 전송되는 모든 프레임을 비트 단위로 구성하는 방식이며, 대표적인 예로는 HDLC 프로토콜이 있다.

3. 네트워크 계층 ( Network layer )
OSI 참조모델의 제 3계층인 네트워크 계층은 원격의 두 시스템 간에 존재하는 통신 서브넷을 경유하여 통신기능을 제공한다. 데이터 링크 계층은 컴퓨터 및 단말장치 등의 시스템이 하나 또는 여러 개의 통신망을 경유하여 목적지 시스템까지 데이터를 전달하기 위하여 각 통신망 내 혹은 통신망간의 경로선택 기능과 중계 기능을 제공한다.

※ 네트워크 서비스의 종류에는 연결형 네트워크와 비연결형 네트워크로 나뉜다.
연결형 네트워크의 대표적인 예로는 전화망구성에 사용되는 회선교환망으로써, 데이터를 전송할 때 양자간에 통신하기 위한 준비과정을 필요로 한다.
비 연결형 네트워크 서비스는 전보형태의 서비스로, 기본적으로 하나 하나의 데이터는 상호 관련없이 독립되어 있으며, 연결의 설정과 해지 과정이 사용되지 않는다. 비연결형 서비스의 대표적인 사용에는 패킷 교환망으로써, 서비스 기본요소로는 데이터 전송 서비스, 관리 기능 서비스가 있다.

4. 전송 계층 ( Transport layer )
전송 계층은 OSI 참조모델의 제 4계층으로서 하위계층을 이루고 있는 각종 통신망의 종류 및 서비스의 차이나 속성에 관계없이 균일한 데이터전송서비스를 세션 계층에 제공한다. 전송 계층에서는 상위 계층에 대하여 회선 품질이나 통신 서브 시스템의 물리적인 구성과 관계없이 종단 간의 신뢰성과 정확성을 가진 통신 선로를 제공하기 위하여 전송에러의 검출 및 재전송기능, 다중화 기능 등을 제공한다.

※ 전송 계층은 다음과 같은 기능을 가지고 있다.
다중화와 역다중화, 분류와 합류, 분할과 조립, 연결과 분리, 에러 검출, 회복 기능, 흐름 제어, 우선 데이터 전송 기능등을 가지고 있다.

5. 세션 계층 ( Session layer )
세션 계층은 OSI 참조모델의 제 5계층으로서 다양한 응용기능의 욕구를 충족시키기 위한 세션 제어기능을 상위계층에 제공한다. 세션 계층의 주요기능은 상위 응용실체간의 대화를 위한 동기를 맞추고, 순차적인 데이터 교환방법을 제공한다. 세션 계층의 목적은 데이터 송신권의 제어기능, 데이터 전송의 동기점을 부가하는 기능, 재전송기능 등을 제공함으로서, 데이터의 교환을 원활하게 하는 것이다.

※ 세션계층의 주요기능은 다음과 같다.
① 세션연결 및 해제 : 상위 표현계층의 실체들간의 통신을 위하여 세션을 연결하고, 데이터 전송서비스를 한 후, 세션을 해제하는 기능을 제공한다.
② 데이터 전송 서비스 : 데이터 전송 서비스로서, 토큰으로 제어되는 반이중 방식과 토큰으로 제어되지 않는 전이중 방식의 전송서비스를 제공한다.
③ 동기점 서비스 : 세션기간 동안에 대동기, 소동기, 재동기 서비스를 제공한다.
④ 예외보고 서비스 : 예외보고 서비스는 세션기간 동안에 예외적인 상황이 발생하면 이를 보고해주는 서비스를 제공하는 기능단위이다.
=> 토큰은 어떤 서비스의 실행을 기동하는 권리이다

6. 표현 계층 ( Presentation layer )
표현 계층은 OSI 참조모델의 제 6계층으로서, 상위계층인 응용계층이 교환하는 정보에 대하여 범용적인 부호화에 관한 서비스를 제공한다. 표현계층의 서비스는 두 가지의 메시지 형식으로 사용된다.
① 전송 구문 : 부호화된 메시지를 의미한다.
② 추상 구문 : 응용계층에서 부호화를 의식하지 않고 교환하는 정보의 표현형식을 의미한다.

※ 표현 계층의 주요 역할은 다음과 같다.
정보의 압축/복원, 채널 상에서 발생되는 오류를 제어하기 위한 부호화/복호화 정보보호를 위한 암호화/복호화 및 인증 방식에 관한 사항

7. 응용 계층 ( Application layer )
응용계층은 OSI 참조모델의 최상위 계층인 제 7계층으로서, 사용자와 직접 연결되는 부분이다. 따라서 사용자는 응용 계층 이하의 하위 계층의 서비스를 사용하지만, 이들 서비스와 기능에 대해서는 투명하게 사용할 수 있어야 한다.
응용 계층의 실체에는 응용 프로그램의 사용자와의 접속을 위한 사용자 실체(UE : User Entity)와 응용계층의 응용서비스와의 접속을 위한 응용 실체(AE : Application Entity)가 존재한다.

2009. 12. 17. 14:36

비스타에서 폴더 보기 옵션이 저장 안되는 증상 해결 방법

Windows Registry Editor Version 5.00

 

[-HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU]


[-HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags]

 

[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell]
"BagMRU Size"=dword:00050000

 

[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell]
"FolderType"="NotSpecified"

 

-------------------------------------------------------------------------------

 

위에 내용을 메모장을 켜서 써준 다음에

저장 할때 파일명을 쓰고 싶은 파일명 적고 확장자를 txt 말고 reg로 바꿔주고 저장해주세요

(예를 들면 "test.reg")

그리고 그 파일을 더블클릭 해주면 레지스트리에 적용이 되요

재부팅해야 적용이 되니깐 재부팅 꼭 해주세요