최종 수정일  :  2001년 7월 12일
글쓴이 :  윤 일 (admin@rootman.org)

HOW-TO Configuration zone file


zone 파일은 네임서버 설정시 가장 중요한 도메인 데이터 베이스 파일이고 네임서버 가동시에  zone 파일을 읽어 들여서 네임서버 서비스가 가동된다. zone 파일은 도메인을 IP 주소로 변환해 주는 역할을 한다. 

아래는 루트맨의 zone 파일을 설정한 화면이다. 

 

############# /var/named/fedora.zone 파일 설정 #####################

 

############# /var/named/fedora.zone 파일 설정 #####################

 

1. zone파일 작성시 주의 사항(필독)
@(origin)의 역활
@는 named.conf에서 zone "rootman.co.kr" 로 지정해준 rootman.co.kr. 을 의미한다.  

zone 파일 설정시 루트 도메인 ( . ) 의 중요성.
흔히 우리가 사용하는  도메인 주소는 aaa.com ,  bbb.co.kr 과 같이 끝에 루트도메인( . )을 사용하지 않는다.
하지만 aaa.com 과 bbb.com 의 정확한 도메인 주소는 aaa.com.  ,  bbb.co.kr. 과 같이 표기할 수 있다.
루트 도메인( . )은 최상위 도메인을 의미하는데 즉 .com  .net  .org 등의 상위 도메인이다. 
도메인을 이용해서 특정 호스트로 접속할 때 특별히 루트 도메인( . )까지 표기 하지 않아도 접속할 수 있다. 
하지만 네임서버 설정시 zone파일을 작성할 때는 꼭 최상위 도메인을 붙인 완전한 도메인 주소를 사용해야 된다.
예들 들어  ns1.rootman.co.kr 이라는 주소를 표기 할 때는 꼭 제일 끝에 루트 도메인( . )을 붙여 줘야 된다.
만약 루트 도메인( . )을 붙이지 않으면 그 도메인을 완전한 도메인으로 인식하지 않기 때문에 그 도메인 두에 @에 해당하는 도메인을 덧 붙여주게 된다. 즉 루트 도메인으로 마무리 되지 않은 도메인은 @(origin)의 호스트로 인식하는 것이다. 

ns1.rootman.co.kr          ->     ns1.rootman.co.kr.rootman.co.kr

위와 같이 "ns1.rootman.co.kr "  은  "ns1.rootman.co.kr.rootman.co.kr"로 작성한 것과 같은 영향을 미친다.
뒤에 추가된 rootman.co.kr은 @ 에 해당하는 도메인이다.
이런 이유 때문에 linux.rootman.co.kr  이라는 서브 도메인을 zone 파일에서 설정할 때 "linux" 만 적어도
"linux.rootman.co.kr." 을 적은 것과 같은 결과를 얻게 된다.
 

$TTL 43200
bind 9 의 zone파일 설정시 주의 해야 될 것은 꼭 zone파일의 첫줄에 TTL 값을 설정해야 된다는 것이다.
bind 9 이전 버젼에서는 TTL 값을 지정하지 않으면 네임서버 가동시에 default값으로 자동 설정 되었는데 bind 9에서는
꼭 zone파일의 첫줄에 꼭 설정해야 된다. 
TTL은 다른 네임서버를 제어 하는 부분인데 특정 네임 서버가 rootman.co.kr의 네임 서버에 www.rootman.co.kr을 질의하고 그 정보를 가져 간 후 그 정보를 보유하고 있을 시간을 지정해 주는 것이다.
한가지 예로 어떤 사용자가 한국 통신의 DNS(168.126.63.1)를 이용해서 rootman.co.kr을 접속할 경우 한국 통신의 DNS는 rootman.co.kr의 네임 서버에 rootman.co.kr의 IP를 물어 보고 사용자에게 정보를 준 후 그 정보를 자신도 보관한다.
rootman.co.kr의 정보를 가지고 있는 한국 통신 DNS는 다음 부터 rootman.co.kr에 대해 사용자가 물어 보면 그 때부터는 보관된 정보를 이용해서 사용자에게 알려주는 것이다. 바로 이 TTL값이 한국  통신 DNS가 한번 퍼 간 정보를 얼마 동안 보관할 것인가를 결정한다.

자주 올라오는 질문 중에 네임 서버의 zone파일을 수정했는데 계속 전에 설정했던 값으로 적용된다고 질문을 하시는 분이 많은데 바로 그 이유도 클라이언트에서 이용하는 DNS가 아직 수정 전에 설정했던 값을 보관 하고 있어서 새로운 정보를 해당 네임 서버에서 퍼올 때 까지 이전의 설정값을 사용자에게 알려 주기 때문이다.

자주 네임 서버 수정을 하는 시스템에서는 이 값을 줄여서 사용하면 되는데 너무 작은 값을 설정하면 너무 자주 네임서버에 
질의 해 오기 때문에 네임 서버에 과부하가 걸릴 수 있다. 


2 . zone 파일 설정 형식
host_name      [TTL]          class           record_type             data      
--->>  zone 파일의 모든 행은 위의 형식을 따른다.

host_name 
설정하고 싶은 호스트 네임을 지정해 주면 된다. 꼭 호스트 네임 설정시 루트 도메인( . )에 대해 주의를 하세요.
host_name이 
생략된 행은 바로 윗 행의 host_name 설정을 적용 받는다.

TTL 
zone파일의 첫행에 default값을 지정했기 때문에 생략 가능한다. ($TTL 43200)
루트맨의 zone 파일 설정에는 모두 생략되어 있다.

class
IN은 internet 클래스를 가리키는데 저도 IN 이외에 다른것을 설정해서 사용한 적이 없습니다.

record_type

레코드 유형

역활

SOA

zone 파일의 시작을 알리고 전체 영역에 영향을 미치는 파라미터를 정의한다.

NS

네임서버를 지정한다.

A

호스트 이름을 IP 주소로 매핑할 때 사용한다. 즉 A 레코드의 data는 IP 주소를 설정해야 된다.

PTM

IP 주소를 호스트 이름으로 매핑할 때 사용한다. PTR 레코드는 reverse zone파일 설정에 사용된다.

MX

메일 포워딩 개념으로 메일을 MX 레코드로 지정한 호스트로 포워딩한다.

CNAME

호스트의 alias(엘리어스)를 정의한다.

HINFO

호스트 정보를 표시하는 레코드


data
각 레코드 타입에 해당하는 데이타를 설정하면 된다.

3 .  각 레코드 별 data 설정
::SOA 레코드의 data 설정
모든 zone파일은 SOA 레코드로 zone파일의 시작을 알린다. 
꼭 다음과 같은 형식을 지켜야 된다.

@               IN         SOA              ns1.rootman.co.kr.      yunil.rootman.co.kr.  (
                                            20010504            ; serial
                                            10800               ; refresh
                                            3600                ; retry
                                            3600000             ; expire
                                            43200  )            ; mininum


SOA 레코드의 data 부분은 여러개의 요소로 구성된다. 각 data 부분의 설명은 다음과 같다.

ns1.rootman.co.kr.    
1차 네임 서버를 정의하고 있다.

yunil.rootman.co.kr.  
관리자 메일 주소를 정의하고 있다. @는 zone파일에서 특별한 의미를 갖고 있기 때문에 yunil@rootman.co.kr. 을 
yunil.rootman.co.kr. 로 표기 해야 된다.

주의 : bind 9 (bind 8.2.3 이후) 부터는 SOA 레코드의  2차 네임 서버와 관련된 data 설정을 시작하는  여는 괄호 " ( " 는 
꼭 SOA 레코드의 첫행의 마지막에 위치 해야 된다. 다른 곳에 위치 할 겨우 bind 9에서 error을 발생시킬 수 있다.

20010504               ; serial
zone 파일의 버젼을 의미한다. 보통 zone파일을 수정하거나 생성한 날을 숫자로 설정한다.
2차 네임  서버는 정기적으로 1차 네임 서버의 이 값을 확인하고 2차 네임 서버의 사본을 나타내는 일련 번호보다 크면
1차 네임 서버로 부터 zone파일을 전송해서 2차 네임 서버 정보를 갱신한다.
즉 1차 네임 서버의 정보가 갱신 되었는지를 2차 네임 서버는 이 값을 통해서 확인한다.

10800                  ; refresh
2차 네임 서버가 1차 네임 서버의 갱신 내용을 확인하기 위해 주기적으로 체크하는 시간을 초(s)로 설정한다.

3600                   ; retry
2차 네임 서버가 refresh값에 의해 1차 네임 서버로 접속시도 때 1차 서버의 문제가 접속을 못한 경우 다시 접속 시도할 
시간을 설정한다. (예 : 1차 네임 서버의 정전, 네트웍 과부하 등)

3600000                ; expire
2차 네임 서버가 1차 네임 서버의 정보를 얼마나 오랫동안 신임 할 것인가를 설정한다.
만약 1차 네임 서버가 오랫동안 다운 된다거나 시스템 파괴로 인해 2차 네임 서버가 1차 네임 서버에 접속할 수 없을 때
전에 백어 받아온 1차 네임 서버 정보를 이 값이 초과 할때 까지 신임한다.
루트맨의 설정은 1000일(3년)동안 1차 네임 서버가 소식이 없더라도 그 전에 백업 받아온 파일로 2차 네임서버를 운영하라는것이다. 보통 한달 정도를 설정해서 쓴다.
즉 위의 설정값이 초과하면 2차 네임 서버는 자신이 가지고 있는 1차 네임 서버 정보를 파기한다.  
루트맨이 3년으로 설정한 것은 저의 특이한 성격 때문에 설정한 값으로 말도 않되는 값이기 때문에 따라 하는 사람이 없기를 바란다..  저처럼 특이한 성격의 소유자라면 상관 없지만.

43200                  ; mininum
TTL 값 설정 부분이다. TTL 설명을 참고

::NS 레코드의 데이타 설정
NS 레코드는 해당 호스트의 네임서버 호스트를 지정하는 레코드이다. 
루트맨의 네임 서버 호스트는 ns1.rootman.co.kr. 이다.
rootman.co.kr.                 IN                NS                 ns1.rootman.co.kr

::HINFO 레코드의 데이타 설정
HINFO 레코드는 시스템의 정보를 제공하기 위해 사용하느 레코드이다. 

rootman.co.kr.                 IN                HINFO                "Inter Pentium" "RedHat"
HINFO 레코드의 데이터 부분인 문자열은 사용자 마음대로 설정하면 된다.

::A 레코드의 데이터 설정
A 레코드는 host_name의 IP 주소를 지정하는 레코드이다.

linux.rootman.co.kr.           IN                 A                  203.241.205.91
rootman.co.kr의 서브 도메인인 linux.rootman.co.kr의 IP 주소를 203.241.205.91로 지정했다.
A 레코드로 하나의 호스트에 대해서 여러개의 IP 주소를 지정할 수도 있다. 
예를 들어 호스트 linux.rootoman.co.kr 에 대해 zone 파일에서 A 레코드로 203.241.205.91 과 203.241.205.92 로 설정했을 경우 클라이언트에서 linux.rootman.co.kr 로 접근 시도할 때 클라이언트는 IP 주소 203.241.205.91 과 203.241.205.92 를 랜덤으로 접속하게 된다. 즉 사용자가 상황에 따라 203.241.205.91에 접속될 수도 있고 203.241.205.92에 접속될 수도 있다.
이러한 설정은 방문자수가 많은 웹 사이트에서 부하를 줄이기 위해 종종 사용하는 방법이다. 
실예로 www.daum.net은 총 14개의 IP로 랜덤하게 접근하도록 설정되어 있다.

::MX 레코드의 데어터 설정
MX 레코드는 Mail Exchange 설정을 해준다.
host_name에 해당하는 주소로 오는 메일을 다른 호스트로 exchange 한다.
실제로는 이 설정만으로는 Mail Exchange를 완벽하게 할 수 없다. 
실제 메일이 들어오는 서버를 큐잉 서버로 만들어야 되고 MX 레코드에 의해 설정된 메일의 최종 도착지에서는 메일 수신
자를 설정해야 되는데 이에 대한 자세한 설명은 sendmail 강좌중에 독립 메일 서버 만들기를 참고하기를 바란다.
host_name에 해당하는 IP 주소와 Mail Exchange 될 호스트의 IP 주소가 같을 경우 이 설정을 사용하지 않도록 한다.  
가끔 쓸데없이 같은 IP 주소에 mail 호스트를 설정하고 MX 레코드로 지정해 주는 분들이 있는데 이런 설정은 시스템에 
아무런 도움도 주지 못한다.  zone 파일을 최대한 줄일수 있는것이 시스템 리소스를 절약하는 방법이다.

::CNAME 레코드의 데이터 설정
CNAME 레코드는 host_name에 대한 alias 기능을 한다.

linux.rootman.co.kr.              IN                  A                      203.241.205.91
ftp.rootman.co.kr.                IN                  CNAME                  linux.rootman.co.kr.


위의 경우는 linux.rootman.co.kr. 이라는 호스트에 A 레코드를 이용하여 IP 주소 203.241.205.91을 설정하고 ftp.rootman.co.kr은 A 레코드가 아닌 CNAME 레코드로 linux.rootman.co.kr로 alias 설정을 한 것이다.
쉽게 생각하면 ftp.rootman.co.kr을 linux.rootman.co.kr에 링크를 시켰다고 생각하면 된다.
물론 CNAME 레코드 부분을 A 레코드로 바꾸고 IP 주소를 지정해도 똑같은 효과를 줄 수 있다.

AND


/etc/named.conf
option                  은 전역으로 적용
      
 /var/named          는 dns db디렉토리라고한다    .  외우기  여기안에 *.zone 와 *.rev 존재

DNS셋팅시 추가해야할 부분

  key   아무나 업뎃 못하게 원격에서 참고하는값 
 
 Controls에서 keys { }   요기에다가 위에 정의한 key   " xxx "  부분의 xxx을 똑같이 넣어준다.


zone :  도메인을 정의하는 단위     //정방향 조회와 역방향 조회는 한 쌍이다. 로컬안에서                                                            는 쌍으로 존재해야한다. 원격에서 받아오는건 제외하고 

포워드 존     :  정방향조회와 관련

zone "localhost"........     이부분

리버스 존     :  역방향조회와 관련

zone " 0.0.127" ............ 이부분


bind 의 보안정책으로 적용된게 rncd key이다
:  원격에서는 rndc값을 넣어줘야되지만 dns-update를 통해서 dns값을 업데이트 가능

zone " 0.0.0.0.0.0.0.  ................   --> ipv6에 대한부분
zone "."   

type hint;           ---> 다른 zone항목에 없는 값을 요구했을때, hint 이 존을 보게 되는데, file이  named.ca 이다.
** named.ca는 외부로 엑세스할때, dns 정보를 요청하게되는 슈퍼컴퓨터 주소 , 종종없어지긴 하지만 새로운게올라온다.
주기적으로 crontab으로 named.ca를 업뎃해주자 2개월에 한번씩!!

 

/etc/named.conf 에 정의된 zone을 셋팅해주면 zone안에 정의된 file을 참조한다. file은 /var/named/   에 넣어놓는다.



/var/named/localhost
host_name      [TTL]          class           record_type             data      의 형식으로 이루어 져 있음
참고 : dbckdgns0515.tistory.com 블로그에 HOW-TO Configuration zone file


$ ; 동적캐시
처음 @는 변수              /etc/named.conf 안에          zone에 셋팅된    " 도메인 " ---->   zone "localhost"
뒤에 있는 SOA @는 앞에있는 @을 허가하겠다는 뜻  관례상 .


Host_name 이 다음행에 선언되어 있지 않다면 이전 행에 선언된 Host_name이 영향을 주게된다. 



/etc/named.conf
에 다음과 같이 zone을 추가해놓고 
zone "ch.com" IN {
        type maskter;
        file "ch.com.zone";
};http://www.google.co.kr/

zone "200.200.200.in-addr.arpa" IN {
        type master;
        file "ch.com.rev";
};
/var/named/ 로 이동 후  
# cp localhost.zone ch.com.zone
# cp named.local ch.com.rev


# vi ch.com.zone

$TTL    86400
@ IN SOA   ns.ch.com.       root (
                                           42 ; serial (d. adams)
                               3H ; refresh
                                      15M ; retry
                                       1W ; expiry
                                           1D ) ; minimum

          IN NS ns.ch.com.
                IN A 200.200.200.95        ------->> 이것이 ch.com과 ip를 맵핑시켜주는 라인             
                cafe IN A 200.200.200.96
      (IN A 200.200.200.95)        ------->> 만약 윗줄이 아닌 여기에 있게된다면,                                                                                              ch.com은 접속 불가능하다. IP가 맵핑이 안되서.


********참고 HOW-TO Configuration zone file         



자동으로 dns 학습하기 설정
/etc/named.conf 수정
zone 추가
zone " jsh.net" IN {
type slave;
file "jsh.net.zone";
masters {"200.200.200.x"};
};

**  jsh.net 서버는 자기자신의 도메인을 확인할 수 있어야한다
그래야 dns학습을 원하는 서버도 jsh.net.zone파일을 생성할 수 있다. 




웹서버 띄우기

svcs -a | grep apache
svcadm restart svc:network/http:apache2
cd /etc/apache2

cp httpd conf-example httpd.conf
echo "test" > /var/apache2/htdocs/index.html
svcadm disable svc:/network/http:apache2
svcadm enable svc: network/http




DNS- NFS- APACH2 이용해서 공유웹서버 

시나리오
; 서버와 클라이언트 모델이 있다. 여기서 양 측은 dns 자동학습을 통해 서로의 웹 브라우저에서 도메인으로 접속이 가능한 상태이어야 하고
서버는 nfs 디렉토리를 셋팅한다. (/var/apache2/htdoc)
클라이언트는 서버의 디렉토리를 자신의 임의의 장소에 마운트하여, index.html을 수정하도록한다.(서버측에서 index.html 및 nfs권한 고려)
이후 서버와 클라이언트에서 웹상으로 수정된 내용을 동시에 볼 수 있으면 된다.













AND

1. 터미널을 열어서

2. #pkginfo | grep <package name>으로 설치유무 확인(Apache, MySQL, php)
    ex) #pkginfo | grep Apache를 검색하면

         system     SUNWaclg                         blablabla...
         system     SUNWapch2d                     blablabla... 
         system     SUNWapch2r                      blablabla...
         system     SUNWapch2u                     blablabla...
         system     SUNWapchd                       blablabla...
         system     SUNWapchr                        blablabla...
         system     SUNWapchu                       blablabla...

        요래 출력이 되면서 현재 아파치 패키지의 이러이러이러한 게 설치되어있음을 표시함.
        MySQL도, php도 마찬가지. 

3. http://www.sunfreeware.com/ < Sun사 freeSW 구할수 있는 사이트.

    찾아가서 화면의 우측메뉴에 있는 Pick/Processor OS -> x86/Solaris 10 을 클릭한다.
     apache-2.2.9-sol10-x86-local *
    libiconv-1.11-sol10-x86-local *
    openssl-0.9.8i-sol10-x86-local *
    curl-7.19.2-sol10-x86-local
    libidn-1.11-sol10-x86-local
    php-5.2.6-sol10-x86-local *
    db-4.2.52.NC-sol10-intel-local
    libintl-3.4.0-sol10-x86-local
    sasl-2.1.21-sol10-x86-local *
    freetype-2.3.1-sol10-x86-local
    libxml2-2.6.31-sol10-x86-local *
    gd-2.0.35-sol10-x86-local
    mysql-5.0.67-sol10-x86-local *
    libgcc-3.4.6-sol10-x86-local *
    openldap-2.4.11-sol10-x86-local *
 까지 다운로드 완료.
* 근데 사실 수업시간에는 체크한 8개만 깔아서 ;ㅁ;;ㅁ;;ㅁ; 다시 나머지도 다운받아서 설치했다능;

4. 다운받은 파일 모두 gunzip filename으로 압축풀기.
    ex) 다운로드 받은 파일이 있는 폴더로 이동
        
        #gunzip -d *.gz 

           -포든 gz파일이 풀리고 패키지 설치파일이 보인다

5. 그리고 각각 #pkgadd -d ./해당폴더명 으로 설치.
    ex) #pkgadd -d ./apache 2.2.9 ...... 

          선택하라는 메세지에서 Enter or all 


6. 그러면설치 완료 :D

8. 다운받은 모든 파일을 설치 완료 후
    #cd /usr/local/apach2/bin/httpd 실행시키고         =================>>>>> 이부분에서 에러가난다.
ld.so.1:httpd: fatal: libexpat.so.1: open failed: No such file or directory.       .///// 에러 메세지!!!!
 
이거 단순 경로상의 문제같은데 /etc/profile열어서 LD_LIBRARY에 libexpat.so.1의 경로인 /usr/sfw/lib 추가해주었는데도 안된다.
패키지로 설치했기 때문에 아예 설치되지 않은 패키지가 있거나, PATH상에서 안잡힌 경우 두가지로 나눠볼 수 있겠는데.... 아직 원인을 모르겠다.

 
 
웹브라우저 실행후  http://localhost/입력해서    It;s works! 뜨면 정상인데 위의 과정에서 에러가 나서 완료 못함.. 

해결후 다시 포스팅하겠음.

AND

hostname : sol-25
NIC name : e1000g0

 1. hostname.e1000g0파일 생성
# echo "inet sol-25" > /etc/hostname.e1000g0 

 2. dhcp.e1000g0 파일 생성
# touch /etc/dhcp.e1000g0 

** 호스트 이름은 로컬에서 셋팅해놓고 dhcp에서 받아오길 원치 않는 상황이라면 
/etc/default/dhcpagent 파일을 수정하면된다

PARAM_REQUEST_LIST=1,3,6,12,15,28,43

PARAM_REQUEST_LIST=1,3,6,15,28,43

3. resolv 파일생성 후 nameserver추가 

#  vi /etc/resolv.conf
nameserver 168.126.63.1
nameserver 8.8.4.4

4. nsswitch 파일수정
# vi /etc/nsswitch.conf
hosts:    file       을  아래와 같이 수정한다. 
hosts:    file dns     

5. dhcp  시작
 
 
AND

Solaris Zone 구성하기
vmware처럼 한대의 물리적 pc안에 여러대의 solaris운영체제를 설치할 수 있도록 지원하는 .

다른 운영체제는 설치 불가능한가???

새로운 랜카드 추가후 

# touch /reconfigure
# devfsadm
# ls /dev/e1000g1 // 확인
# ifconfig e1000g1 plumb

#mkdir -p /zone/wizard01
#chmod 700 /zone/wizard01
#zonecfg -z wizard01

create
set zonepath=/zone/wizard01
set autoboot=false
add net
set physical=e1000g0
set address=200.200.200.91
info
end
verify
add attr
set name=comment
set type=string
set value="wizard01 zone DB Server"
end
veryfy
commit
exit

#zoneadm -z wizard01 install
#zoneadm -z wizard01 resdy
#zoneadm -z wizard01 boot
#zlogin -C wizard01

zone삭제하기

# zoneadm list -iv 
존 글로벌은 vmware프로그램이라 생각하고 wmware에 설치된 solaris를 제거하는것이다
# zoneadm -z wizard01 halt
먼저 solaris를 시동끄고
# zoneadm list -iv 
제대로 시동이 꺼졌으면 installed라고 표시됨
# zoneadm -z wizard01 uninstall
#zonecfg -z wizard01 delete
#zoneadm list -iv
제거되었는지 확인






점프스타트
= 네트워크 설치
윈도우는 1번씨디없어도 가능하다.

설치시 당연히 동일 네트워크에 존재해야함

tftp 
서브디렉토리 확인하지 않고 로그인없이 엑세스가 가능하다    
69번 포트


관련 파일관련( 교재참고 )
/tftpboot           파일은  -->> /etc/inetd.conf    에서 tftp가 주서처리된걸 제거
/etc/ethers는 솔 10에서 소멸
/etc/bootparams 는 솔 10에서 소멸

############
채크사항 및 순서

1. 서버에서 tftp 서비스가 활성화 되어 있어야한다.
svcs -a | grep tftp            >> 꼭 확인
 
2. 이후 서버에서는 dhcp구성하여 접속을 시도하는 client에게 IP를 할당한다
3. dhcp 구성시, server IP와 client mac address를 셋팅하게된다. (헷갈리지 말도록!!!)
4.client입장에서 접속과정 정리
a. tftp 접속가능한 서버찾기
b. 찾았으면 접속, 아니면 대기후 종료
c. tftp연결이 되면 서버에 미리 등록된 client mac address를  접속한 client의 mac address와 비교
d. 맞으면 서버측에 정의된 정책에 따라 ip할당 
e. 통신시작. 


설치 과정은 교재를 참고해서  따라하면 되며 중간중간 서버측에서 셋팅하는 값이 서버를 위한것인지 client를 위한 것인지 판단하여 입력하여야 한다. 

점프스타트 추가!!
명령어 순서
tftp확인
# inetadm | grep tftp 
# vi /etc/inet/inetd.conf     
tftp dgram udp6 wait root.......  이줄 주석 제거
# inetconv
#inetadm | grep ftp 
확인하고

x86점프스타트 설치 서버 구성
# mkdir /export/install
# cd /cdrom/cdrom0/Solaris_10/Tools
# ./setup_install_server /export/install                //솔10dvd 시디넣고
# mkdir /export/config
# vi sysidcfg
필자는
root_password=
network_interface='클라이언트네트웍인터페이스이름'{hostname='클라이언트이름'
....
default_route='디폴트라우터주소'

# vi begin
#!/bin/sh
echo "begin 점프스타트"
# hmoe 755 begin

# vi finish
#!/bin/sh
echo " finish 점프스타트"
# chmod 755 finish

# vi profile
그림추가
# vi rules
hostname clientA begin profile finish
# cd /export/config
# cp /export/install/Solaris_10/Misc/Jumpstart_sample/check .
# ./check

#vi /etc/dfs/dfstab
share -F nfs -o ro,anon=0 /export/install
share -F nfs -o ro,anon=0 /export/config

# /etc/init.d/nfs.server start

# shareall
# share
/etc/dfs/dfstab 의 추가한 내용나오는지 확인
# showmount -e localhost
확인

# cd /export/install/Solaris_10/Tools/
# ./add_install_client -d -e 클라이언트맥주소 \
-s sol10u9:/export/install/ \
-c sol10u9:/export/config/ \
-p sol10u9:/export/config/ i86pc

여기서 약간의 에러가뜨지만 무시하고 
결과적으로 나오는 
Boot server IP : 서버 자신의 IP
Boot file      : 01클라이어트의맥주소
이 두줄을 꼭 확인하고 맞는지 본다

# /usr/sadm/admin/bin/dhcpmgr &

다음부턴 그놈환경에서 그래픽 처리이므로 말로 대신하겠다잘보도록하세요

서버구성선택은 dhcp서버로구성
DHCP 구성데이터를 텍스트 파일로저장
저장경로는 /var/dhcp
이름서비스는 /etc/hosts
임대기간은 1주일
DNS도메인은 kns.kornet.net    168.126.63.1
네트워크 주소는 자기가 속한 네트워크 주소 서브넷마스크도 지정
아까전에 셋팅에서 확인한 Boot server IP와 같은 네트워크대역 점프스타트 추가!!
명령어 순서
tftp확인
# inetadm | grep tftp 
# vi /etc/inet/inetd.conf     
tftp dgram udp6 wait root.......  이줄 주석 제거
# inetconv
#inetadm | grep ftp 
확인하고

x86점프스타트 설치 서버 구성
# mkdir /export/install
# cd /cdrom/cdrom0/Solaris_10/Tools
# ./setup_install_server /export/install                //솔10dvd 시디넣고
# mkdir /export/config
# vi sysidcfg
필자는
root_password=
network_interface='클라이언트네트웍인터페이스이름'{hostname='클라이언트이름'
....
default_route='디폴트라우터주소'

# vi begin
#!/bin/sh
echo "begin 점프스타트"
# hmoe 755 begin

# vi finish
#!/bin/sh
echo " finish 점프스타트"
# chmod 755 finish

# vi profile
그림추가
# vi rules
hostname clientA begin profile finish
# cd /export/config
# cp /export/install/Solaris_10/Misc/Jumpstart_sample/check .
# ./check

#vi /etc/dfs/dfstab
share -F nfs -o ro,anon=0 /export/install
share -F nfs -o ro,anon=0 /export/config

# /etc/init.d/nfs.server start

# shareall
# share
/etc/dfs/dfstab 의 추가한 내용나오는지 확인
# showmount -e localhost
확인

# cd /export/install/Solaris_10/Tools/
# ./add_install_client -d -e 클라이언트맥주소 \
-s sol10u9:/export/install/ \
-c sol10u9:/export/config/ \
-p sol10u9:/export/config/ i86pc

여기서 약간의 에러가뜨지만 무시하고 
결과적으로 나오는 
Boot server IP : 서버 자신의 IP
Boot file      : 01클라이어트의맥주소
이 두줄을 꼭 확인하고 맞는지 본다

# /usr/sadm/admin/bin/dhcpmgr &

다음부턴 그놈환경에서 그래픽 처리이므로 말로 대신하겠다잘보도록하세요

서버구성선택은 dhcp서버로구성
DHCP 구성데이터를 텍스트 파일로저장
저장경로는 /var/dhcp
이름서비스는 /etc/hosts
임대기간은 1주일
DNS도메인은 kns.kornet.net    168.126.63.1
네트워크 주소는 자기가 속한 네트워크 주소 서브넷마스크도 지정
아까전에 셋팅에서 확인한 Boot server IP와 같은 네트워크대역 
네트워크 유형은 LAN, 경로지정은 그냥 놔두고
NIS도메인도 그냥 놔두고
NIS+서버도 그냥 넘어가고 완료누르기
주소마법사를 시작해서 IP주소갯수는 1개( 클라이언트갯수에에 맞춰서 지정)
DHCP서버관리는 자신의 hostname 시작 ip주소는 client에 할당할 IP 시작주소
임대할 IP목록한번봐주고 클라이언트 구성정보 다음으로 넘기고
임대유형 동적 해주고 설정완료
대화상자사라지고 화면에 매크로 탭을 선택--> 메뉴의 "편집"--> 작성 클릭
앞에서 add_install_client 스크립트 실행후 나온 정보를 바탕으로 매크로이름은 "01클라이언트맥주소"
BootSrvA 서버주소(즉 자기자신주소)
BootFile 01클라이언트맥주소
확인후 넘어가기
매크로 만들어졌는지 확인하고 메뉴의 "서비스" 의 "재시작" 눌러주고 종료

# vi /tftpboot/menu.list01클라이언트맥주소
내용중에 중간에
kernel$ /I86PC.Solaris_10-1multiboot kernel/$ISADIR/unix -B
여기서 -install dhcp 이걸 추가해주면된다
kernel$ /I86PC.Solaris_10-1multiboot kernel/$ISADIR/unix -install dhcp -B


서버 켜놓고 클라이언트를 네트워크 부트모드로 부팅하면된다. 
그럼 잘됨.
안되면 연락바람.. 스샷찍어서 멜보내삼.

dbckdgns0515@hotmial.com
네트워크 유형은 LAN, 경로지정은 그냥 놔두고
NIS도메인도 그냥 놔두고
NIS+서버도 그냥 넘어가고 완료누르기
주소마법사를 시작해서 IP주소갯수는 1개( 클라이언트갯수에에 맞춰서 지정)
DHCP서버관리는 자신의 hostname 시작 ip주소는 client에 할당할 IP 시작주소
임대할 IP목록한번봐주고 클라이언트 구성정보 다음으로 넘기고
임대유형 동적 해주고 설정완료
대화상자사라지고 화면에 매크로 탭을 선택--> 메뉴의 "편집"--> 작성 클릭
앞에서 add_install_client 스크립트 실행후 나온 정보를 바탕으로 매크로이름은 "01클라이언트맥주소"
BootSrvA 서버주소(즉 자기자신주소)
BootFile 01클라이언트맥주소
확인후 넘어가기
매크로 만들어졌는지 확인하고 메뉴의 "서비스" 의 "재시작" 눌러주고 종료

# vi /tftpboot/menu.list01클라이언트맥주소
내용중에 중간에
kernel$ /I86PC.Solaris_10-1multiboot kernel/$ISADIR/unix -B
여기서 -install dhcp 이걸 추가해주면된다
kernel$ /I86PC.Solaris_10-1multiboot kernel/$ISADIR/unix -install dhcp -B


서버 켜놓고 클라이언트를 네트워크 부트모드로 부팅하면된다. 
그럼 잘됨.
안되면 연락바람.. 스샷찍어서 멜보내삼.

dbckdgns0515@hotmial.com

 

'OS > Solaris' 카테고리의 다른 글

솔라리스 10 웹서버 구축하기.  (0) 2011.05.09
솔 10 dhcp 클라이언트 셋팅 . 자동 ip 받아오기  (0) 2011.05.09
0504 dump, nfs, acl, RBAC, syslog  (0) 2011.05.05
0503 정리  (0) 2011.05.05
RAID 정리한자료  (0) 2011.05.02
AND

 sudo find / -name "*.conf" | xargs grep "Options Indexs"         

/ 하위로 확장자가 conf 인파일중에서  Options Indexs  라는 문자열이 들어간 파일을 찾는다.

AND

crash and core dump
 
crash dump
cpu및 기타 하드웨어 장애로인한 재부팅시 crash dump file 이생성된다. 


/etc/dumpadm.conf파일에 설정된 값을 기본으로 하여 크래쉬 발생시 저장한다. 

dumpadm.conf에 설정값 말고 새로운 설정을 할때. 명령어

dumpadm   -c all -m 20% -y            
커널에대한 것만 아니라 -c 옵션을 통해 all(전체) 에 대한 것도 저장가능하다.
-m옵션은  하드디스크 공간이 20프로이상은 남아줘야 저장한다는 전제 조건
yes는 세이브 코어라고 하는 프로그램이 파일로 저장하는것(/var/crash/'hostname'
 
core dump 
 
리부팅은 되지 않지만 실행중인 프로세스에서 치명적인 오류가 발생하여 프로세서가 중단되는 경우 생성된다.
 /etc/oreadm.conf 에 설정된 값을 기본으로 하여 파일이 생성된다. 

coreadm 명령어는 사용자 프로파일에 선언한다.
coreadm -p core.%f.%p.%u.$$
옵션은 인터넷 참고
 
 
테스트 방법

# sleep 300 &  
# kill -8 sleepPID
사용자 홈디렉토리에 가서 core파일을 확인해볼수 있다 . 텍스트파일아님



명령어가 커널에 보내는 시그널 확인해보기

# $$    // 현재 터미널의 PID값을 확인하는 명령어
# truss -p PID   //
 커널이 보내는 시그널 정보를 확인할 수 있다.





NFS

용법
-----서버구성--
# mkdir /share
# touch /share/file1 /share/file2
#vi /etc/dfs/dfstab
share -F nfs -o ro -d "share directory" /share   추가
# /etc/init.d/nfs.server start
# svcs -a | grep nfs                  ///////// 확인
# share
# dfshares
 
# more /etc/dfs/sharetab            //확인

---클라이언트
# dfshares NfsServerIP 
확인했으면
# mount -F nfs NfsServerIP:/[share디렉토리]     // share디렉토리는 dfshares로 확인했을때 디렉토리이름
# vi /etc/vfsatab에서   //부팅시 자동으로 마운트하기위해 설정
NfsServerIP:/share디렉토리 - 마운트포인트 nfs yes ro.bg.soft

** 장애처리***
# share 명령어로 제대로 올라오지 않았을 때 확인해 보는 방법
# svcs -a | grep nfs           //  나온결과를 보고 해당 줄의 앞에 offline가 뜨면
# svcs -d [svc:/network/~~~]    //[  ]는 offline라고 표시되어있는 부분의 내용
세부적으로 올라오는 서비스들을 볼 수 있는데 동작하지 않는 값들을 enable로 바꾸어준다. 
offline이 보이면 위의 명령어를 통해 disable되어있는 세부 사항을 확인해 보고 enable로 바꾸어야 한다. 세부사항이 다 online되어야 최초에 확인했던 값들도 online이 된다.
# /etc/init.d/nfs.server start 
그리고 다시 스타트해보면올라온다.

svcs -l svc;/network/~~~~ 하면 세부정보가올라온다.





NFS를 시용한 솔라리스 웹서버 구축
=======>>>>> 하다말았는데 인터넷 보고 하는게 빠를듯.


cd /var/apache/htdocs/          ==>요기   
index.html추가

svcs - a |grep http
disable되어있으면 svcadm으로 활성화하고 


svc로 할 수도 있지만 수동으로 하는 방법은 아래와같다
/etc/apache2/httpd-std.conf 파일을 /etc/apache2/httpd.conf 파일로 복사해놓는다.
/usr/apache2/bin/apachectl restart 

현재 되지 않음
문제 해결 방법
svcs -xv와 tail -f /var/adm/messages 로 확인하는데 .. 예전엔 이랬음 ㅋ




ACL 
특정 파일이나 디렉토리에 속에서만 다른 권한을 주는 것이다. 
명령어
setfacl
getfacl  ;;보는거

디렉토리만들고
setfacl -m d:user::rwx, d:group::r-x:other:r-x, d:user:user:test1:rwx,d:mask:rwx 디렉토리
파일생성후
su - test1
해당디렉토리가서 파일 수정 가능





----------------------------------
test1이 test2 와 만 데이터쓰고 읽기를 원할 때 주고 ACL을 사용한다.
setfacl -s u::rw-, g::---, o:---,m:rw-,u:test2:rw- test file           ;;;; -s 옵션은 수정할때 기존것을...
getfacl -a test_file

su - test2
cd /export/home/test1
ls -l test_file   ;;other에 권한 없는것을 확인
cat test_file    ;;하지만 보이는걸 확인





Role Based Access Control
RBAC

sudo 와같이특정 역할을 할때만 권한을 부여 
root의 비번을 알 필요없이 role계정의 비번만 알아서 해 볼 수 있다. 
실제로는 인증이 들어가는것이 좋다. 



/etc/security/prof_attr
여기에 임의의 명칭을 추가시켜주고 이렇게 
mymy:::
/etc/security/exec_attr   
여기에 마지막에 mymy:suser:cmd:::/usr/bin/passwd:uid=0    이렇게 실행될 루트권한의 명령어를 적어준다.

이후 일반 유저계정 생성하고 암호지정하고
role계정생성한다
roleadd -m -d /홈디렉토리 로긴이름
role계정 암호생성

일반 유저계정에 Role를 적용한다
usermod -R role계정로긴이름 유저계정로긴이름

Role에 Profile적용한다
rolemod -P mymy role계정로긴이름

하지만 여기에는 인증과정이 없다. 
실제로는 인증과정을 거치게되어 /etc/user_attr에 인증부분이 추가되어진다.  실무에선 꼭 인증을 해야함..



 이거 둘다 확인해서 시스템 명령어를 확인하고 
거기 안에 있는 profiles=SystemShutdown 을 보고 SystemShutdown 이 항목을 확인해야한다. 
그래서 없으면 임의로 추가해서 테스트 해보자



다 되면
/etc/user_attr 정보를 확인해야한다.

하지만,,,,실습에서는..인증을  꼭 해서 하자





syslog

/etc/syslog.conf

*.alert * 콘솔
root 사용자이름
/var 파일
@ 원격
*.debug= 딱 요것만
*.debug; debug이상

*.err;kern.debug;daemon.notice;mail.crit /var/adm/messages
==>> 모든개체에 대해서 남기는데 커널은 디버그이상, 데몬은 노티스이상 메일은 cirt이상만 남겨라

*.info;mail.nonelcron.none   /var/adm/test
=====>> 해석???


syslog는 /var/adm/messages 에 저장된다
TEST
inetadm -p |grep trace
inetadm -M tcp_trace=TRUE
ftp접속해서 확인  종료후 로그확인해서 정보있나보자




AND

0503 정리

OS/Solaris 2011. 5. 5. 22:34
raid구성을 위해서 metadb를 생성하고 metadb를 디스크에 저장한다. 
metadb -a -f /dev/rdsk/~~~
metadb 옵션 메타데이터가저장될장소 
원래는 -c 옵션을 사용하여 복제본의 갯수 까지 지정해야 하는데, 실습에서는 복제본 없이 하나만 생성하기로한다.


확인
metadb
metastat 명령어로 보여지는 정보. 즉, 생성된 볼륨의 정보가 저장되는 공간이다.
metadb명령어로 보여지는 목록은 metadb가 저장되는 장소이다.


metastat
새로 구성하여 생성된 볼륨의 정보를 보여준다.

볼륨구성후 파일시스템을 생성후 마운트 하는 것들

raid0 콘케트네이트
기존 볼륨 1에과 새로운 2를 그냥 수직적으로 갖다 붙여서  볼륨3 을 생성한다
이는 데이터가 저장될 때, 추가된 볼륨 2에 복제나 분산저장을 하지 않고 단순히 새로운 저장공간 2를 갖다 붙이는 것으로 생각하면된다. 
 
raid0 스트라이프
* 이전 게시물 참고

이중화 구성시 

metainit d0 -m d1 d2
는 다음과 같다
metainit d0 -m d1     
metattach d0 d2


베리타스 소프트웨어 . 대용량 저장장치를 다루는 솔라리스 프로그램


raid 5 
 -r 추가하기
raid5 는 최소 3개의 저장소를 필요로 하므로 metainit -r 저장소1 저장소2 저장소3으로 하면된다.





hotspare   
준비하고 있는 ( 즉시 대응할 수 있는 ) 보조장치 , 사용하는 장치의 수명이 다 했을시 자동으로 연결
;  미러링에서 사용되기 때문에 미러링되는 공간 보다 커야 미러링시 대체해서 사용가능하다.

metadb에 추가되어 있지 않은 장치를 hotspare에 사용한다.



OS 미러링
똑같은 용량 , 똑같은 실린더 사이즈. 똑같은 파티션으로 준비하고
OS설치부터 구성을 권장한다. 

metadb 에서 -f옵션은 마운트되어 있는 볼륨이라도 강제로 db에 등록한다.
하지만 '/' 는 안되는거 같다.

AND

RAID 정리한자료

OS/Solaris 2011. 5. 2. 23:41
내용은 기존 인터넷에서 찾은 자료에 더하고 빼서 제가 이해하기 쉽도록 정리한 자료입니다. 
출처는 네이버 여러 곳 입니다.


 
 RAID

유창훈

** 각 레벨별 장단점과 특징 위주로 작성하였습니다.


1. RAID?

    Redundant Array of Independent Disks 또는 Redundant Array of Inexpensive Disks 로서 서버에서 주로 사용되며, 여러대의 하드디스크를 운영체제에게 논리적으로 하나의 하드디스크로 인식시킨다. 또한 동일 한 데이터를 다른 위치에 중복 저장함으로써 고장에 대비하는 능력이 있다.

    하드웨어적으로 컨트롤러 카드를 장착해서 구성하는 것이 적극 추천하는 바이며 , 백업용이 아닌 고장에 대비하는 용도로만 인식하고 백업을 생활화 해야 할 것이다.

2. RAID 사용 기술

    Striping (스트라이핑)
    성능향샹을 위해 단일 파일과 같은 논리적으로 연속된 데이터 세그먼트들이, 논리적으로 하나의 디스크로 인식된(물리적으로 여러개의 하드 디스크 드라이브로 묶음) 저장장치에 라운드 로빈 방식으로 나뉘어 기록될 수 있게하는 기술. 쉽게 말해 데이터 전체를 하나의 큰 덩어리라고 보고 쪼개기...

    , 하드디스크의 용량은 작은 것을 기준으로 한다. , 300G500G를 스트라이핑 하게되면 600G가 되는 것이다.

    Mirroring (
    미러링)
    -
    데이터 기록시 하나의 Disk를 또다른 Disk에 동시에 기록하는 기술로, 하나의 diskFault 되어도 미러된 diskdata를 안전하게 관리할 수 있다. 똑같은 내용의 복사본을 만드는 것이다.

    Parity (패리티)
    Data
    의 오류검출 확인에 사용되는 기술

     

3. RAID 구성 종류

1) RAID0

    스트라이핑 방식이라고 하기도 한다. 하드디스크의 데이터를 하나의 큰 파일이라고 보고 특정한 크기로 데이터를 쪼갠다. 이렇게 쪼개진 데이터를 분산 저장한다

    <아래 그림을 클릭하세요>

    장점 : 하드디스크의 속도 향상에 도움이 된다. 따라서 입, 출력 속도가 높아야 하는 웹서버나 스트리밍 서버, 그래픽 환경에 주로 사용된다

    단점 : 쪼개진 부분이 2개이상의 장치에 분산저장이 되므로 하나의 장치라도 고장이 나게 되면 전체 데이터는 손상되게 되어 데이터가 중요하게 여겨지는 대부분의 서버에서는 이용하지 않는 환경이다.

    특징 : 빠른 입출력 속도가 요구되나 장애 복구 능력은 필요없는 경우에 적합하다.



2) RAID1

다른말로 미러링이라고 한다. 데이터 저장시 똑같은 복사본을 다른 디스크에 저장한다. 똑같은 내용의 저장소가 하나더 생긴다고 생각하자.

<아래 그림을 클릭하세요> 




장점 : 안정성, RAID 비구성시보다 읽기 시간은 향상된다.

단점 : 500G 짜리 하드디스크 2를 묶어도 복사본이 항상 같이 저장되야 되기 때문에 실제 데이터 저장에 이용되는 공간은 500G뿐이다.


3) RAID0+1

레이드01을 함께 적용한다. 스트라이프를 사용해 만들어진 디스크를 다시 미러링한다.

일단 스트라이핑을 먼저하고(쪼개서 분산저장한 상태에서) 미러링을 한다(고대로 똑같은복사본을 만든다)

<아래 그림을 클릭하세요>



단점 : 전체 디스크 용량의 반밖에 사용못함, 비용이 많이듬


 
4) RAID1+0
 
레이드01을 함께 적용한다. RAID0+1에서 순서만 반대인 경우이다.
 
미러링을 통해 똑같이 복사된 복사본을 만들고 각각 스트라이핑을 한다.
 
단점 : 전체 디스크 용량의 반밖에 사용못함, 비용이 많이듬

** RAID0+1, 1+0은 하드디스크 갯수에 따라서 저장되는 방식이 달라진다. 따라서 하드디스크 갯수에따른 데이터의 저장구성을 그림으로 그릴줄 알아야 한다.


5) RAID2

디스크들간에 스트라이프를 사용하며, 추가적으로 hamming 오류정정코드만 저장되는 디스크를 추가로 사용한다.
*
모든 현행 드라이브들이 ECC를 탑재하고 있기 때문에 거의 사용되지 않는다.

사용자 삽입 이미지


6) RAID3

이 형식은 RAID0 과 똑같은 스트라이프를 사용하며 RAID0의 단점인 하나만 고장나도 전체가 복구 안되는 것을 보안하기 위해, 패리티 정보만을 저장하는 백업용 디스크를 한 개를 추가적으로 쓴다. 따라서 최소 드라이브 개수는 3개이며 ,입출력 작업이 동시에 모든 드라이브에 대해 이루어지므로, RAID-3은 입출력을 겹치게 할 수 없다. 이런 이유로 RAID-3는 대형 레코드가 많이 사용되는 업무에서 단일 사용자시스템에 적합하다.


장점 : RAID0보다 안정적이다

단점 : 패러티 디스크로의 병목현상과 패러티 디스크가 장애가 생기면 역시 복구 불가능

특징 : 패러티용 디스크와의 동기화, 저장을 Byte단위로 한다.


 
7) RAID4
 
RAID3과 똑같으나 저장단위가 Block이라서 한번의 작업으로 RAID3보다 많은 양의 데이터를 읽을 수 있다.

8) RAID5

RAID 3, 4의 단점을 보완한 방식으로 스프라이팅을 이용한 방식으로 데이터저장하고 패러티저장디스크 대신에 모든 하드디스크에 패러티 정보를 분산 저장한다. 가장많이 쓰인다


<아래 그림을 클릭하세요>



장점 : RAID3,4에서의 패러티디스크에 생기는 병목현상을 줄인다.

단점 : 사방에 흩어져 있는 패러티 정보를 갱신 할때의 성능저하


9) RAID6

이 형식은 RAID-5와 비슷하지만, 다른 드라이브들 간에 분포되어 있는 2차 패리티 구성을 포함한다.



<아래 그림을 클릭하세요>

장점 : 높은 안정성

단점 : 기술 구현이 복잡해서 잘 사용하지 않는다.


10) RAID7

이 형식은 컨트롤러로서 내장되어 있는 실시간 운영체계를 사용하며, 속도가 빠른 버스를 통한 캐시, 독자적인 컴퓨터의 여러 가지 특성들을 포함하고 있다.


사용자 삽입 이미지


11) RAID-10

이 형식은 각 스트라이프는 RAID-1 드라이브 어레이인 스트라이프 어레이를 제공한다. 이 방식은 RAID-1보다 높은 성능을 제공하지만, 값이 더 비싸다.


<아래 그림을 클릭하세요>




12) RAID-53

이 형식은 각 스트라이프는 RAID-3 디스크 에레이인 스트라이프 어레이를 제공한다. 이 방식은 RAID-3보다 높은 성능을 제공하지만, 값이 더 비싸다.

사용자 삽입 이미지




사진 출처: 네이버까페 login

관련자료 링크 겁니다. 제대로 보고싶으신분은 꼭 참고하세요
http://cafe.naver.com/linuxjjangclub/3831
 

AND

네트워크 ip 할당 및 디폴트 게이트 웨이 할당하기

ifconfig 인터페이스이름 inet ip주소 netmask 넷마스크주소
route add default 디폴트게이트웨이주소    ;;추가
route add delete 디폴트게이트웨이주소     ;;삭제

netstat -nr   보는 법 복습
네트워크주소            게이트웨이주소            플래그



통신시 hostname이 셋팅되야된다.  이것을 부팅시 읽어들여 아이피를 할당한다
/etc/hosts 에서 
그외 몇가지 파일이 있다. 
/etc/netmasks
/etc/defaultrouter
/dev/hosts
/etc/reslov.conf
/det/nsswitch.conf
(cp /etc/nsswitch.dns /etc/nsswitch.conf   ==>  실제 금융네트워크에서는 이것보다 nis, ldap으로 많이쓰임)

 
아래의 3가지의 내용중 호스트 네임이같아야  한다. 중요한것임 ... 
/etc/nodename
/etc/hostname.인터페이스이름
/etc/hosts   

내용중 
files는 /etc/hosts를 참고
dns 는 /etc/resolv.conf를 참고한다는 뜻



 
[[dns과정[컴퓨터의 이름을 가지고]으로 통신하는 네트워크 처리과정!!!!!]  
== ip 정보를 가져오기위한 과정

::::   cache  읽고 없으면 /etc/nsswitch.conf 에서 hosts  files  와 dns를 읽고
files 에서 /etc/hosts 읽고 없으면 dns 에서 /etc/resolv.conf 를 읽는다

....
위의 3개가 같으면 정상적으로 부팅된다. 다르면 x윈도우도 안켜진다.
 
========================= 
처음에 
/etc/hosts        ===>   셋팅 ;  ip 와 hostname 셋팅
/etc/netmasks  ====> 셋팅 ; 네트워크 주소와 서브넷마스크 셋팅
/etc/defaultrouter       ==> 없으면 생성하고 라우터 주소만 달랑 넣기
/etc/resolv.conf
nameserver 168.126.63.1   이런식으로 dns서버ip 셋팅

============여기까지가 ip만을 가지고 통신하는 과정 ==  ip만 있어도 통신은 가능하다.



런레벨 확인 및 전환

who -r     확인
init ;;런레벨 변경   런레벨별 확인해보기
shutdown ; 모든 사용자에게 통지 rc0 kill script 수행한다.
halt ; rc0 kill 을 script 수행하지 않음     무조건 프로세서 죽이고 한다. 쓰지말자
; ok prompt로 빠진다.= power off가 안된다  >>>  메인보드의 고급전원관리로 시스템콜이 
안날라간다. 
poweroff ; rc0 kill script 수행하지 않음
reboot ; rc0 kill script 수행하지 않음

현업에서는 sync sync sync ;; 하고 shutdown이나 init 6를 사용한다 . 



서버 클라이언트 모듈

inetd  ;; inet데몬
슈퍼데몬으로    요청이 들어오면 활성화가 된다. 
즉, inet만 활성이고 나머지는 슬립상태이다가 요청이 들어오면 inet이 다른 프로세서를 활성화 시킨다. 
다른 서비스를 통제한다. 

inetd은 런레벨에따라 부팅프로세서를 관리하기 이전에 만들어졌다. 원래는 불필요한 프로세서를 관리하기 위해 만들어졌다. 하지만  런레벨 개념이 퍼지면서 사용이 안되고있고, 앞으론 없어질것이다.



프로그램 동작 유형

1.런레벨
== rc디렉토리에서  S   K   와 같은 메커니즘으로 관리
2.inetd             == inetd.conf에서 관리
3.스탠드얼론   ==부팅후.... 실행된다.

서비스를 컨트롤하는 이유
1. 리소스의 줄이기
2. 클라이언트 서버구조에서 포트관리




inetadm ;;inetd로 구동되는 프로세서들 확인하기

inetadm -d telnet ;;disable                 == svcadm disable [FMRI]
inetadm -e telnet ;;enable  
svcs telnet == inetadm | grep telnet




===================
RAID종류별 조사해오기
===================
RPC
원격시스템 프로세서와 통신을 할 수 있도록 하는 서비스를 담당

* 포트 조사하기 특권포틑 조사


비특권 모드에서의 동작시 서비스의 실뢰성을 높이는 방법!!!

1. 
오라클, MySQL동작시 일반사용자계정으로 동작시킨다. 루트(Admin)으로 하지 않는다.
하지만!!!  로그인이 안되는 일반 사용자 유저로 동작시킨다

2. 
RPC
서버가 클라이언트의 요청을 받아 특권포트를 이용해서 서버측의 비특권포트로의 재 요청을 
지시하여 처리한다.
대표적인 서비스 : NFS , NIS 
명령어 : rpcinfo



SWAP
가상메모리(물리+스왑) 
PRI + NICE =  시스템에서 처리 우선순위가 결정됨 

NICE  덩치큰 프로그램을 처리하기 위해 운영체제에서 더하고 빼고 해서 우선순위를 조절
하기 위해 할당하는 값
[NICE를 이용하는 프로세서 우선순위 조절 프로그래밍 하기!!!!!!]]


스왑공간이 필요한 이유 
파일시스템을 위한 공간은 최적화 되지않으므로 스왑이란 공간을 할당하여 사용한다. 

!!!!  페이지 인 아웃과 스왑인 아웃을 구별하자   ==  나중에 적어보겠음 ㅋ

SWAP OUT
물리 메모리에서  프로세서를 빼서 스왑공간으로  집어넣는 과정
SWAP IN
스왑 공간에서 프로세스를 빼서 물리 메모리로  넣는 과정

스와핑
스왑공간을 통하여 메모리의 여유공간부족을 일시적으로 해결하려고 스왑공간에 넣다 뺐다 하는 과정

스왑 아웃이 자주 발생하면 메모리 공간이 부족하다고 판단한다.

메모리는 커널이 올라가는 공간과 잉여 공간으로 나뉜다. 이 러한 잉여공간에는 다음의 두가지 동작을 위하여 할당된다
buffering
프로세서의 동작을 원할히 하기 위해 남는 공간을 활용하는 기술
chached

 

swap -l
swap -s

AND