2009년 10월 20일 화요일

윈도우 미디어 브로드캐스트 설정방법

윈도우 미디어 서버에서 브로드캐스트를 설정하는 방법


(window 2003 server media broadcast setting)


1 . 미디어서버의 설정


가) 미디어 서버의 설정에서 브로드캐스트를 하기 위한 제어 프로토콜을 사용가능하게 한다.brodecate1.gif


위 그림에서 wms http 서버 제어 프로토콜이 그것이다.


이것의 속성은 아래 그림과 같다.


brodecate2.gif


제어 속성에 보이는 것처럼 관리 포트라는 부분이 있는데 기본적으로 80포트를 설정한다 하지만 본인이 만일 이 서버에 웹서버를 동반해서 싣고 있다면 당연히 충돌할 것이기에 다른포트로 바꾸어서 충돌하지 않도록해주면 된다.


 


나) 다음은 권한의 설정입니다.


이것은 만일 권한을 설정하여 접근을 통제하기 위해서 입니다. 또한 게시지점을 자유롭게 생성도 가능하게 됩니다.


아래처럼 두가지만 사용을 한후 이용할 사용자를 설정하여야합니다.


brodecate2_gif


간단히 설명한다면



  • wms ntfs acl인증 : 주문형 게시지점(멀티캐스트,유니캐스트)에서 접근의 권한을 파일파티션의 접근권한과 동일하게 적용하기 위해서 사용. 때문에 지금설명하는 블로드캐스트연관성이 적습니다. 물론 파일을 브로드캐스트하거나 디렉토리리스트를 브로드캐스트하는경우는 관계가 있겠지만 그렇지 않다면 디폴트로 두고 갑니다.

  • wms ip 주소 인증 : 특정 주소의 컨텐츠에대해 접속을 허용 또는 거부할 수 있도록 하며 서버 및 게시지점 인증 플러그인은 함께 작동. 이것또한 지금 작업하려고 하는것과 연관성이 적습니다. 그래서 패스. 사용안함 디폴트로 둡니다.

  • wms 게시지점 acl인증 : 서버의 모든 게시지점이나 특정 게시 지점의 콘텐츠에 대한 사용자. 서버 또는 그룹의 접속을 허용하거나 거부 하도록 합니다. 때문에 만일 이 서버의 모든 접속에 대해 인증을 요청하려한다면 이것을 선택하시고 나중에 속성을 선택하여 이용할 이용자아이디를 설정 해줍니다. 이것을 상요하지 않음으로 한다면 아마도 모든 사용자가 자유롭게 게시지점을 만들어서 서비스가 가능한 상태가 되어 버립니다.

    좀더 자세히 살펴 보면 아래 그림을 보면서 설명한다면. 원래 디폴트로 Everyone과 Administrators는 반드시 있는거겠지요. 그런데 만일 Everyone에 쓰기와 만드기를 권한을 주면 누구나 서비스 게시지점을 만들게 될겁니다. 하지만 쓰기까지만 해둔다면 만들어진 게시지점에만 올릴수 있게 됩니다. 같은 원리로 사용자 아이디를 추가해서 설정하면 되겠습니다.


brodecates6.gif


 


다) 인증 방법에 관한겁니다.


그다음은 협상인증부분이 남는데 만일 위의 설정으로 하단에 모두 인증을 적용이 끝난다면 협상인증을 체크해서 인증을 필하도록 합니다. 그렇지 않다면 익명사용자 인증처리됩니다. 만일 익명사용자 인증도 하지 않는다면 디렉토리에서 다시 인증되도록 해야합니다. 어찌 됐든지 인증이 필요한 부분이 있다면 해당 부분에서 또는 상위에서라도 협상인증이 있어서 처리되어야 합니다. 가능하면 제일 마지막 부분에서 하는것이 좋을거 같다는 생각이 듭니다.


만일에 여기서 접속과 관련한 모든것이 끝나는 설정이라면 협상인증부분을 처리해야하지만 그렇지 않고 추후 게시점에서 다시 설정을 더 필요로 한다면 굳이 이것을 활성화 할 필요가 없습니다. 게시지점에서 해도 무방합니다. 그리고 일반 이용자누구나 접근하여 플레이 되도록 하려면 익명 상용자 인증을 꼭해두어야 누구나 인증없이 플레이 될수 있습니다. 위에서 언급한 Everyone이 모두 여기에 해당 됩니다.


brodecates4.gif


2. 게시지점의 추가관리


가) 게시지점을 추가 합니다.


게시지점이란 미디어 서버의 디렉토리와 같은 개념이란것은 알것이고 그것을 추가하는 것입니다.


여기서는 브로드캐스트만을 설명하기 때문에 다른부분은 생략하고 넘어갑니다. 게시지점추가(고급)을 선택합니다.brodecate3.gif


그러면 하단이미지에서 보이는 것 처럼 게시지점 형식과 이름 위치를 묻습니다.


여기서 중요한것은 콘텐트 위치입니다. 인코더(풀)와 인코더(푸시)그리고 원격게시지점을 배달하는 것등이 주로 이용될겁니다. 때에 따라서는 파일도 해당 되겠지만 파일의 경우는 그냥 유니캐스트나 멀티캐스트 하기 때문에 브로드캐스트에서는 잘 이용안하겠지요.



  • 인코더(풀) :

    인코딩하고 있는 주소를 가져다가 브로드캐스트하기 때문에 인코딩 컴의 아이피가 통상적으로 미디어서버에서 바로 접근이 가능한 아이피이어야합니다. 만일 ADSL이나 기타 동적할당을 사용하는 인코딩컴에서는 사용하기 힘들겁니다. 그렇다고 불가능하지는 않습니다. 다이나믹DNS등을 이용해서 하는 방법도 있으니까요. 하지만 역시 또한 방화벽이 문제가 될수 있습니다. 보통 집에 라우팅장비를 이용해서 하나의 아이피를 여러대의 컴이 분할 해서 이용하게 된다면 역시 라우팅장비에서 잘 설정해주면 가능하겠지요. 좀 복잡하지만 가능하고 안정적일지는 모르지만 저는 배제합니다. 콘텐트 위치에 브로드캐스트하는 주소를 입력하면 됩니다. 보통 인코딩할때 설정합니다. 그 설정하는 아이피와 포트가 되겠습니다.

  • 인코더(푸시) :

    인코딩하는 주소라기 보다는 그냥 인코딩하는 컴에서 푸싱을 해서 브로드캐스트하도록하는 겁니다.


brodecate4.gif


 


나) 권한 부여가 있습니다.


위에서 설명한 대로입니다. 현재 게시지점에 국한된 인증 방법을 이야기 합니다.


brodecates1.gif


여기서 구체적으로 아이피를 인증하는 방법은 있는 그대로 읽어주면 될거 같아 특별히 설명할것이 거의 없습니다. 좀 설명을 더한다면 거부가 된 주소의 경우는 읽는거까지를 포함함에 주의하면 됩니다. 즉 다시말하면 읽고 쓰기가 아니라 읽는 것 까지 포함해서 제어 됩니다.


brodecates2.gif


 


다) 인증 방법에 대해서는 앞에서 설명을 했으니 더 할 필요가 없는거 같구요. 단지 여기서는 해당 게시지점에 국한시키는 작업입니다. 만일 상위에서 협상인증없이 여기까지 왔다면 이곳에서라도 협상인증을 해서 인증 사용자만을 위한 서비스가 가능하도록 해주라는 겁니다.


brodecate5.gif


 


3. 다음은 엔코더입니다.


가) 푸시서버설정(Push to sercver)

중요한것은 Output이고 그중에서 프시서버입니다. 만일 설정에서 푸시를 선택해서 작업을 계획했다면 필수적이겠습니다.

서버이름(Server name)에 아이피나 도메인네임을 넣고 포드 번호를 주어야합니다.만일 80포트의 경우는 주지않아도 되지만 그이외의 포트는 반드시 입력해주어야합니다. 포트 입력방식은 도메인네임:포트(abc.com:8080 또는 1192.168.0.2:8080)형식이 됩니다.

서비스제공위치점(Publishing point)라는 것은 서버에서의 게시지점입니다.


 


나) 풀엔코딩설정(Pull from encoder)

이것은 서버에서 풀설정이 있었을 겁니다. 그것을 위한것이기도 하고 브로드캐스트 포트이기도합니다. 따라서 이것이 공유된 인터넷주소에 있는 컴에서 엔코딩을 하고 있다면 이주소가 바로 브로드캐스트주소이기도 하다는 겁니다. 하지만 ADSL이용하는 이용자가 이것을 브로드캐스트주소라고 알려주거나 하면 한두사람은 괞찮다지만 셋만 모여도 트래픽이 장난아니게 증가할수 있음으로 이를 브로드캐스트주소로 이용하기는 문제가 있겠지요.


 


다)보관파일설정(Archive to file)

엔코딩하면서 파일을 보관하고자 한다면 설정하는 것으로 파일의 크기제한이라든가 시간별 제한을 걸어서 시간대별로 순서파일을 만들어 보관하도록 설정한다.


brodecate6.gif


다)  인증 : 만일 서버에서 인증을 통해서 데이터를 올리도록 설정하면 실행(Apply)를 선택하면 인증받을 아이디와 패스워드를 묻는다.

만일 맞는 아이디와 패스워드를 입력해주면 준비를 완료하고 시작을 누르면 본격적으로 브로드캐스트에 신호를처리한다.brodecates5.gif


 


이 글은 스프링노트에서 작성되었습니다.

2009년 10월 6일 화요일

윈도우 인스톨 부트용 서비스팩 및 드라이브 핫픽스 적용 시디 만들기


  1. 첫번째 단계에서 먼저 유용한 툴을 가져온다.

    http://www.nliteos.com/에 가서 nLite프로그램을 다운받는다 가장 최근이 것이 이글을 쓸때가 1.4.8이당

  2. 다운받은 프로그램을 설치한다.(예는 생략)


  3. 준비한 OS를 HDD에 일단 옮겨담는다

    이때 작업할 드라이브나 서비스 팩을 미리 받아 두면 작업시 편리 하겠다. 드라이브는 반드시 앞축된것은 풀어서 자신이 적용할 OS에 맞는것만을 선택해야한다.


    oscd001(1).gif



  4. 프로그램을 실행한다.

    oscd002.gif

    실행화면은 상단과 같다. 언어를 선택하면 된다.

  5. 다음을 선택한후 작업할 OS가 들어 있는 디렉토리를 선택한다.

    oscd003.gif

    선택하게 되면 해당 OS의 정보를 다음처럼 출력해준다.

    oscd004.gif

  6. 다음 크릭하면 이전에 설정된 값을 불러 올지 결정한다. 없으면 그냥 가면 된다.

    oscd005.gif

  7. 이제 작업에 추가할 것을 설정하는데.

    통합 : 서비스 팩,핫픽스,업데이트, 드라이브 등 추가하고 싶을 분야를 선택하면 된다.

    제거 : 구성요소에서 추가제거를 하기 위해

    셋업 : 설치시 할수 있는 것들을 나열한다. 만일 무인설치를 한다면 시리얼번호를 입력해주어야한다.

    만들기 : 당근 부팅가능한 시디 이미지를 만든다는것

    oscd006.gif

  8. 통합 작업인데. 그림처럼 서비스팩을 다운받아 선택하면 바로 앞축을 풀고 다시 통합적용작업을 자동으로 알아서 해준다.

    또한 만일 공식 서비스 팩 부분을 선택하면 해당 서비스팩을 다운받을 수 있는 곳으로 연결도 해준다.

    oscd007.gif oscd008.gif

  9. 핫픽스나 업데이트, 드라이버를 선택하여 넣어주면 된다.

    oscd009.gif

  10. 무인설치시 필요한 사항을 미리 입력해둔다.

    oscd010.gif

  11. 설정이 끝나면 자동으로 통합작업을 완료한다.

    oscd011.gif

  12. 마지막으로 시디이미지를 만드는 작업을 설정하면 끝

    oscd012.gif


이 글은 스프링노트에서 작성되었습니다.

2009년 9월 29일 화요일

초간단 raid 5 mdadm으로 만들기

mdadm 소프트 raid로 레벨5 만들기


먼저 하드디스크를 준비해서  설치후


1. 장비별로 파티션을 잡는다. 


파티션의 타입은 fd 값으로 Linux raid auto


 


2. 환경설정파일은 다음과 같다.


파일의 위치는 /etc/mdadm.conf


 


DEVICE /dev/sd[abcdefgh]1

ARRAY /dev/md5 devices=/dev/sda1, /dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1, /dev/sdf1, /dev/sdg1, /dev/sdh1



DEVICE /dev/sd[abcdefgh]1 => abcdefgh는 장치의 나열 1은 두번째 장치의 나열

ARRAY /dev/md5 devices=/dev/sda1, /dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1, /dev/sdf1, /dev/sdg1, /dev/sdh1 ==> /dev/md5 는 raid로 생설될 장치이름, devices=다음에는 각 장치들의 실재 이름을 나열


 


3. 실제 device명을 시스템에 만들어 준다.


 


# mknod /dev/md5 b 9 5


mknod /dev/md5 b 9 5 ==> /dev/md5 raid로 생설되 장치이름 b 블록타입 9 md장치 5레벨 5


 


4. 장치를 연결하여 raid를 구성 시킨다.

# mdadm --create /dev/md5 --level=5 --raid-devices=8 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1

mdadm --create /dev/md5 --level=5 --raid-devices=8 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 ==> --create : 생성, /dev/md5 : raid로 생성될 장치명, --levle=5 : raid 레벨, --raid-devices=8 : raid로 구성될 장치 개수 나머지는 포함될 장치들의 나열


 


이후에 새로 생성시 묻는다 진자로 생성할지 그럼


 


5. 구성된 장치와 상황를 본다.

# mdadm --detail /dev/md5


mdadm --detail /dev/md5 ==> --detail 옵션으로 현재 상태를 반환하기 위한 옵션 /dev/md5 장치를 표시하는 내용


+++++++++++++++++++++++++++++++++++++++++


mdadm: only give one device per ARRAY line: /dev/md5 and /dev/sdb1,

mdadm: only give one device per ARRAY line: /dev/md5 and /dev/sdc1,

mdadm: only give one device per ARRAY line: /dev/md5 and /dev/sdd1,

mdadm: only give one device per ARRAY line: /dev/md5 and /dev/sde1,

mdadm: only give one device per ARRAY line: /dev/md5 and /dev/sdf1,

mdadm: only give one device per ARRAY line: /dev/md5 and /dev/sdg1,

mdadm: only give one device per ARRAY line: /dev/md5 and /dev/sdh1

/dev/md5:

        Version : 00.90.03

  Creation Time : Tue Sep 29 12:22:17 2009

     Raid Level : raid5

     Array Size : 3418687552 (3260.31 GiB 3500.74 GB)

  Used Dev Size : 488383936 (465.76 GiB 500.11 GB)

   Raid Devices : 8

  Total Devices : 8

Preferred Minor : 5

    Persistence : Superblock is persistent



    Update Time : Tue Sep 29 12:22:17 2009

          State : clean, degraded, recovering

 Active Devices : 7

Working Devices : 8

 Failed Devices : 0

  Spare Devices : 1



         Layout : left-symmetric

     Chunk Size : 64K



 Rebuild Status : 37% complete



           UUID : 44ae596f:1c84dc2b:9c23bff9:bd295ba1

         Events : 0.1



    Number   Major   Minor   RaidDevice State

       0       8        1        0      active sync   /dev/sda1

       1       8       17        1      active sync   /dev/sdb1

       2       8       33        2      active sync   /dev/sdc1

       3       8       49        3      active sync   /dev/sdd1

       4       8       65        4      active sync   /dev/sde1

       5       8       81        5      active sync   /dev/sdf1

       6       8       97        6      active sync   /dev/sdg1

       8       8      113        7      spare rebuilding   /dev/sdh1


++++++++++++++++++++++++++++++++++++++++++


 


6. md장치들의 동작 상태를 본다.


# cat /proc/mdstat


+++++++++++++++++++++++++++++++++++++++++


Personalities : [raid6] [raid5] [raid4]

md5 : active raid5 sdh1[8] sdg1[6] sdf1[5] sde1[4] sdd1[3] sdc1[2] sdb1[1] sda1[0]

      3418687552 blocks level 5, 64k chunk, algorithm 2 [8/7] [UUUUUUU_]

      [=======>.............]  recovery = 37.5% (183166772/488383936) finish=119.0min speed=42745K/sec

     

unused devices: <none>


+++++++++++++++++++++++++++++++++++++++++


 


7. 새로 추가된 장치를 포멧을 한다.

mkfs.ext3 /dev/md5


이 글은 스프링노트에서 작성되었습니다.

2009년 9월 27일 일요일

vncserver 리눅스에 설정하기 보안터널(ssh)을 이용해서 사용

만일 보안 터널(ssh)을 이용해 VNC를 설정하고 이용할때 서버설정

이전글에 나와 있는 부분중에서 일부를수정해주면 된다.
먼저
http://mylife.all.kr/2009/09/vncserver.html

vnc설정 파일
/etc/sysconfig/vncservers

VNCSERVERS="1:root"
VNCSERVERS[1]="-geometry 800x600"

=====>

VNCSERVERS="1:root"
VNCSERVERS[1]="-geometry 800x600 -nolisten -nohttpd -localhost"

이렇게 고쳐 주면 local 에서 만이 접근이 가능하게 된다.
그리고 나머지는 동일한 설정

윈도우에서 이용할때
http://mylife.all.kr/2009/07/blog-post.html
참조하여 이용하면 되며

만일 리눅스에서 이용하때는

ssh -f -L 25901:127.0.0.1:5901 ID@server_name -p ssh_port sleep 10; vncviewer 127.0.0.1:25901:1

vncserver 설정하기

vncserver 설정하기

1. VNC server 구축하기

우선 vnc를 구성하기 위한 rpm 두개가 필요하다
하나는 서버, 하나는 클라이언트.

vnc-server.rpm
vnc.rpm



rpm명령을 이용하여 위 두개의 파일을 설치하고 vnc서버를 시작하자
#service vncserver restart



서버 상태를 확인하자
#service vncserver status



vnc설정 파일
/etc/sysconfig/vncservers

VNCSERVERS="1:root"
VNCSERVERS[1]="-geometry 800x600"



설정파일 내용
위의 1:root 부분에서 1은 디스플레이 번호를 의미하며 root는 계정명을 나타낸다.
VNCSERVERS[1]="-geometry 800x600"은 1번 디스플레이 번호에 대한 해상도를 설정하는 것이다. 사용자가 많아서 디스플레이 번호가 2, 3, 4식으로 증가하면 ‘[‘와 ‘]‘사이의 숫자를 변경하여 설정하면 된다.



처음에 vnc서버를 시작하면 서버가 작동이 안되는데 그 이유는 vnc서버 사용자 root가 암호를 필요로 하기 때문이다.



암호를 만들기 위해서 다음의 과정을 따라하자


#cd ~
#mkdir .vnc
#cd .vnc
#vncpasswd ‘패스워드입력’



이제 다시 vnc서비스를 재시작하자
그러면 /root/.vnc 디렉토리 밑에 xstartup파일이 생성될 것이다



[tip1] 이제 밑의 vnc 클라이언트를 이용하여 vnc서버에 접속을 하면은 xwindow를 사용하여 자신만의 윈도우 매니저를 사용한다면 해당하는 윈도우 매니저가 안나오고 기본적인 twm이 시작할 것이다. 자신이 사용하고자 하는 윈도우 매니저가 나타나기를 원할 경우에는 $HOME/.vnc/xstartup 파일에서
#unset SESSION_MANAGER
#exec /etc/X11/xinit/xinitrc
부분의 ‘#’을 지워서 주석을 제거해준다.



[tip2] 루트는 vnc사용자에게 사용할 수 있도록 /etc/sysconfig/vncserver 파일을 설정하고 사용자는 자신의 홈디렉토리에 .vnc디렉토리를 만들고 vncpasswd 명령으로 passwd파일을 만들어야 한다.


ex) /etc/sysconfig/vncserver
VNCSERVERS="1:root 2:test 3:test2"
VNCSERVERS[1]="-geometry 800x600"
VNCSERVERS[2]="-geometry 800x600"
VNCSERVERS[3]="-geometry 800x600"



ex)일반 사용자들의 홈디렉토리에서 패스워드 설정하는 방법
$cd ~
$mkdir .vnc
$cd .vnc
$vncpasswd
Password: 패스워드 입력(6자 이상)
Verify: 패스워드 입력 확인

위의 과정에서 $HOME/.vnc 디렉토리에 passwd파일이 만들어진다.
$ls $HOME/.vnc/
passwd


2. VNC 클라이언트 사용하기
#vncviewer ip-address:디스플레이번호
#vncviewer 211.250.1.2:1



윈도우용 vnc서버, 클라이언트는 www.tightvnc.com에 가면 다운로드 메뉴에서 찾을 수 있다.



윈도우 explorer에서 vncserver에 접속하는 방법
http://ip-address:5800+display-number
ex)http://191.111.1.1:5801 <-1번 디스플레이번호를 쓰는 루트의 접속

2009년 9월 23일 수요일

네트워킹 -아이피의 서브넷 마스크 아이피마스크관계 계산

참고==>네트워킹 - 서브넷 마스크 계산하기

하 나의 물리적 네트웍 의 모든 호스트는 같은 네트웍 주소를 가져야 한다. 만약 두 개 이상의 네트웍을 구성하길 원하면, 네트웍 주소를 서브넷으로 나누어야 한다. 이는 네트웍주소의 길이를 늘리면 (반대로 호스트의 길이를 줄이고)된다 - 보다 적은 호스트를 허용하는 여러개의 네트웍체계를 가지게 되며, 이 때, IP 주소들이결코 겹쳐져서는 안된다.

가장 정확한 방법은 한번에 한 bit 씩 네트웍의 길이를 늘리는 접근방식이다. 예를 들면, 하나의 /24 네트웍을 두개의 /25 네트웍으로. 하나의 /25 네트웍을 두개의 /26 네트웍으로,...

여기에 206.27.238.0 / 24 을 나눈 예를 들면,
206 . 27 . 238
11001000 00011011 11101110 xxxxxxxx 206.27.238.0/24 before
----------------------------------------------------------------
11001000 00011011 11101110 0xxxxxxx 206.27.238.0/25 after
11001000 00011011 11101110 1xxxxxxx 206.27.238.128/25
^
여기가 핵심으로 하나 들어난 네트웍 주소이다.

각 네트웍은 128개의 IP 주소를 가진다. (실제 126 개가 사용 가능 하다). 여기에 만족하면 좋은데, 더 원한다면, ..
11001000 00011011 11101110 0xxxxxxx 206.27.238.0/25
-------------------------------------------------------------
11001000 00011011 11101110 00xxxxxx 206.27.238.0/26
11001000 00011011 11101110 01xxxxxx 206.27.238.64/26
^
11001000 00011011 11101110 1xxxxxxx 206.27.238.128/25
-------------------------------------------------------------
11001000 00011011 11101110 10xxxxxx 206.27.238.128/26
11001000 00011011 11101110 11xxxxxx 206.27.238.192/26
^

이제. 하나의 /24 네트웍이 (256 개의 IP 주소), 각각 64개의 IP 주소가 가능한 4개의 /26 네트웍으로 나누어 졌다. 이렇게 하면, 0-63, 64-127, 128-191, 192-255가 되고, 이들은 겹치지 않는다. 각각의 네트웍의 첫 번째 와 마지막 숫자는 호스트 주소에 쓰이지 않으므로, 실제 사용가능한 주소는 1-62, 65-126, 129-190, 193-254 이다.

여기 잘못된 예를 들면:

First network: 206.27.238.0/25
Second network: 206.27.238.64/26
잘못된 곳은?
206.27.238.0/25 = 206 . 27 . 238 . 0xxxxxxx <-- range 0 to 127 206.27.238.64/26 = 206 . 27 . 238 . 01xxxxxx <-- range 64 to 127 OVERLAP! 이분법적인 네트웍 분리구성뿐아니라, 겹치지 않는다면, 다소 필요에 맞게 복잡한 구성도 가능하다. 아래에 한 예를 든다: 11001000 00011011 11101110 xxxxxxxx (original network)==>서브넷마스
-------------------------------------------------------------
11001000 00011011 11101110 000000xx 206.27.238.0/30 .0 to .3==>255.255.255.254
11001000 00011011 11101110 000001xx 206.27.238.4/30 .4 to .7==>255.255.255.254
11001000 00011011 11101110 000010xx 206.27.238.8/30 .8 to .11==>255.255.255.254
11001000 00011011 11101110 000011xx 206.27.238.12/30 .12 to .14==>255.255.255.254
11001000 00011011 11101110 0001xxxx 206.27.238.16/28 .16 to .31==>255.255.255.248
11001000 00011011 11101110 001xxxxx 206.27.238.32/27 .32 to .63==>255.255.255.240
11001000 00011011 11101110 01xxxxxx 206.27.238.64/26 .64 to .127==>255.255.255.224
11001000 00011011 11101110 1xxxxxxx 206.27.238.128/25 .128 to .255==>255.255.255.192

각 네트웍의 처음과 끝은 사용할 수 없고, 206.27.238.4/30 같은 네트웍은 단지 2개의 IP 주소 (.5, .6)만이 가능하다. 그러므로 /30 이 가장 작은 네트웍 이다. 이러한 주소는 주로 시리얼 연결된 라우터에 할당되는 주소로 많이 쓰인다. 양 라우터를 잇는 라인도 하나의 독립된 네트웍이며, 이를 위한 주소체계는 /30 이 적당하다. 단, 여러 라우터가 함께 연결되는 ISP의 경우는 다르다.


A class서브넷마스크별 구분

- 서브넷수 : 0개(0bit), subnet mask : 255.0.0.0, 호스트수 : 16,777,214개
- 서브넷수 : 2개(1bit), subnet mask : 255.128.0.0, 호스트수 : 8,388,606개
- 서브넷수 : 4개(2bit), subnet mask : 255.192.0.0, 호스트수 : 4,194,302개
- 서브넷수 : 8개(3bit), subnet mask : 255.224.0.0, 호스트수 : 2,097,150개
- 서브넷수 : 16개(4bit), subnet mask : 255.240.0.0, 호스트수 : 1,048,574개
- 서브넷수 : 32개(5bit), subnet mask : 255.248.0.0, 호스트수 : 524,286개
- 서브넷수 : 64개(6bit), subnet mask : 255.252.0.0, 호스트수 : 262,142개
- 서브넷수 : 128개(7bit), subnet mask : 255.254.0.0, 호스트수 : 131,070개
- 서브넷수 : 256개(8bit), subnet mask : 255.255.0.0, 호스트수 : 65,534개
- 서브넷수 : 5122개(9bit), subnet mask : 255.255.128.0, 호스트수 : 32,766개
- 서브넷수 : 1024개(10bit), subnet mask : 255.255.192.0, 호스트수 : 16,382개
- 서브넷수 : 2048개(11bit), subnet mask : 255.255.224.0, 호스트수 : 8190개
- 서브넷수 : 4096개(12bit), subnet mask : 255.255.240.0, 호스트수 : 4094개
- 서브넷수 : 8092개(13bit), subnet mask : 255.255.248.0, 호스트수 : 2046개
- 서브넷수 : 16382개(14bit), subnet mask : 255.255.252.0, 호스트수 : 1022개
- 서브넷수 : 32768개(15bit), subnet mask : 255.255.254.0, 호스트수 : 510개
- 서브넷수 : 65536개(16bit), subnet mask : 255.255.255.0, 호스트수 : 254개
- 서브넷수 : 131072개(17bit), subnet mask : 255.255.255.192, 호스트수 : 126개
- 서브넷수 : 262144개(18bit), subnet mask : 255.255.255.224, 호스트수 : 62개
- 서브넷수 : 524288개(19bit), subnet mask : 255.255.255.240, 호스트수 : 30개
- 서브넷수 : 1048576개(20bit), subnet mask : 255.255.255.248, 호스트수 : 14개
- 서브넷수 : 2097152개(21bit), subnet mask : 255.255.255.252, 호스트수 : 6개
- 서브넷수 : 4194304개(22bit), subnet mask : 255.255.255.254, 호스트수 : 2개
아이피 마스크를 이용해서 프로그램에서 계산하는 방법
참고==> D-H,appy :: IP 대역폭 계산

예를 들기 위한 ip는 '156.147.0.0/16' 이다
요 아이피는 마스크가 16이므로 네트워크 아이디부가 156.147 까지, 그리고 호스트가 0.0 ~ 255.255 이다
다시 설명하면 156.147.0.0을 2진수로 각각 표현하면
128+16+8+4 . 128+16+2+1 . 0. 0 이니까
비트로 표현하면
10011100 . 10010011 . 00000000 . 00000000 이다
그리고 마스크는 다음과 같다.
11111111 . 11111111 . 00000000 . 00000000 (/16 이니까 앞에서부터 16개만 1)

이렇게 되면 마스크가 1인 부분을 뺀 나머지 부분(= 마스크가 0인부분 = 하위 16비트)으로
호스트를 결정하는데

각각을 써보면
10011100 . 10010011 . 00000000 . 00000000 156.147.0.0 -> network id
10011100 . 10010011 . 00000000 . 00000001 156.147.0.1
10011100 . 10010011 . 00000000 . 00000010 156.147.0.2
10011100 . 10010011 . 00000000 . 00000011 156.147.0.3
10011100 . 10010011 . 00000000 . 00000100 156.147.0.4
10011100 . 10010011 . 11111111 . 11111111 156.147.255.255 -> broadcasting
등등등
으로 이루어진다

참고로 호스트 대역에서 0은 네트워크id, 255는 서브넷브로드캐스팅 주소로 할당되어있어서
실제 호스트로는 쓰지 않는다.

고로 마스크가 16이면
2^16 - 2 (65534개) 만큼의 호스트 갯수가 생긴다.
이 대역에서 서브네팅을 어떻게 하느냐에 따라 호스트 갯수는 달라진다...
그건 뭐...네트워크맹근 사람이 알아서 하고...

어쨋든 ip를 비트로 분리한다
string으로 ip를 입력받고 token함수로 . 과 / 을 분리하면
쉽게 156 147 0 0 16 을 분리할 수 있다
byte[]를 사용하여 분리하면
이차원 배열로 byte타입이 5개 생길것이다. a,b,c,d클래스+마스크
그러면 요 바이트 타입을 2진수로 나누는 함수로 비트화한다

함수는 알아서 작성하시길...
2로 나눠서 나머지쓰고 또 나누고 ...뭐 중학교때 배우는거...

그렇게 해서 각각을 나타내면

10011100 . 10010011 . 00000000 . 00000000 으로 되고
마스크는
string 타입 변수를 새로 생성해서 16만큼 루프 돌려서 앞에 1 쓰고 나머지 0으로 채워버리면
11111111 11111111 00000000 00000000으로 쉽게 나타낼 수 있다

그러면 이제 네트워크 아뒤는 바로 저 위에 ip를 쓰면 되고(156.147.0.0)
대역의 첫번째 호스트 주소는 저 아이피에 1만 더하면된다(156.147.0.1)
대역의 서브넷브로드캐스팅주소는 마스크에서 0인 부분만 ip에서 1로 바꾸면되고(156.147.255.255)
대역의 마지막 호스트 주소는 서브넷브로드캐스팅주소에서 1만 빼면된다(156.147.255.254)


PHP 를 이용하여 구하는 함수를 만들어 보았음

class lock_ip{

    function get_subnetmask($ip,$submask){//아이피와 서브네트워크192.168.0.5/255.255.255.0
        $subipbin = $this->ip2bin($submask);
        for($i=0;$i<32;$i++){
            if($subipbin[$i]=="0") break;
        }
        return $this->get_submask($ip,$i);
    }

    function get_submask($ip,$ipmask){//아이피와 마스크 네트워크 192.168.0.5/24
        //마스크 값까지만을 가지고 시작아이피와 끝아이피를 구한다.
        $binip = $this->ip2bin($ip);
        return array($this->bin2ip($this->bin2cut($binip,$ipmask,"0")),$this->bin2ip($this->bin2cut($binip,$ipmask,"1")));
    }

    function bin2ip($binip){
        return bindec(substr($binip,0,8)).".".bindec(substr($binip,8,8)).".".bindec(substr($binip,16,8)).".".bindec(substr($binip,24,8));
    }

    function ip2bin($ip){//아이피 값을 이진수0,1로 바꾼다.
        $ips = explode(".",$ip);
        $result="";
        for($i=0;$i<4;$i++) $result .= $this->decbin2string($ips[$i]);
        return $result;
    }

    function decbin2string($num){//2진수의 문자열을 앞단에 추가값을 주어 문자열로 만들어 반환
        $result="";
        $result = decbin($num);
        for($i=strlen($result);$i < 8;$i++) $result = "0".$result;
        return $result;
    }

    function bin2cut($bins,$cut,$mode="0"){//2진수의 문자열을 에서 원하는 $cut위치에서 부터$mode값을 마지막가지 채운다.
        $result="";
        for($i=0;$i < 32;$i++){
            if($i<$cut){$result .= $bins[$i];}else{$result .= $mode;}
        }
        return $result;
    }
}

//테스트를 해본다.
$lockip=new lock_ip("192.168.1.2");
print_r($lockip->get_subnetmask("192.168.0.3","255.255.240.0"));

print_r($lockip->get_subnetmask("192.168.0.3",16));

2009년 9월 18일 금요일

현병철 인권위원장 ‘독립성 부정’ 발언 : 인권·복지 : 사회 : 뉴스 : 한겨레

현병철 인권위원장 ‘독립성 부정’ 발언 : 인권·복지 : 사회 : 뉴스 : 한겨레

실제적으로 우리나라에는 2009년 이후에 우리나라 인권위원회는 그냥 말뿐인 인권위원회인거 세계가 다 알고도 남는다.

기본적인 인권에 개념이 상실되어 있는 사람이 수장을 하는 것 자체가 정말 웃기는거 아닌가?
인권위원회는 법이 집행되는 과정에서 발생할수 있는 인권 침해의 요소를 찾고 그 법의 부당성에 대해 시정할 수 있는 대안을 찾도록 권고하며 잘못된 법의 집행으로 부터 인권이 침해되는지를 검토하고 연구하는 곳으로 알고 있다.

지금 이 곳을 책임 또는 대표하는 사람이 과연 그러한 자질과 의지를 갖는지 너무도 한심하기 그지 없다. 법이란 항상 모든사람을 위해 존재한다. 하지만 그러지 않는 법이기 때문에 법을 감시하고 수정하고 조정하는 것이 아닌가? 실제 법을 집행하는 곳이 행정이라면 그것을 판단하는것은 사법이고 만드는 곳은 입법기관이다. 그럼 인권위와 같은 기관은 어디에 속하는가. 그것은 바로 입법도 사법도 행정도 아닌 이 모두의 기관과 국민들 사이에존재해야한다. 엄밀히 보자면 아마도 입법쪽에 가까울거 같다. 헌데 인권위원장은 자신의 위치를 법이 정한 위치조차 무시하고 또한 그 역할에 따른 위치의 인식에도 한참 못미치는 위치에 가져다 놓았다. 그러면서 어떻게 그 조직이 돌아가고 움직일수 있겠는가? 그렇게 자신의 위상을 못찾을거면 차라리 해산을 하는것이 바람직 하지 않을까 괜히 세금이나 축내지 말고. 하기야 국제사회 눈치보느라 해산도 쉽게 못하겠지만 언제 눈치 봤다고. 인권위원장 월급이 아깝다.