Download ppt - 8. Networking

Transcript

8. Networking

유닉스는 재미있다 . 유닉스는 사용하기는 쉽지만 배우기는 어렵다 . 유닉스의 모든 것을 배우는 것은 불가능하다 . 필요한 것과

재미있을 것 같다고 생각되는 부분에 관심을 쏟는 것이 좋다 . 유닉스는 세련되고 영리한 사람들을 위한 도구의 집합이다 .

8. Networking 2

8.1 소개

일반 네트워크 용어 네트워크 구축 방법 네트워크 상에서 다른 사람들과 대화 방법 네트워크 상에서 다른 컴퓨터의 사용 방법

8. Networking 3

8.2 네트워크 구축 Serial port 끼리의 연결

가장 단순한 연결

Ethernet 대표적인 LAN 구성방식 , 기계마다 주소 지정 필요 각 컴퓨터 - 고유의 주소 , 이더넷 카드 장착 동일한 단일 케이블에 연결 메시지 전송시 - 헤더에 주소 적재 collision 발생시 - random waiting 으로 처리

Bridge 적은 수의 Ethernet 네트워크 구역을 직렬로 (serial) 연결할 때 Repeater

Router Ethernet 네트워크 구역 다 수를 상호 (mutual) 연결할 때

Gateway 고용량의 Router 로서 , LAN 에서 WAN 으로의 확장 기준 라우터 기능 + 브리지 기능 + 다른 형식 또는 프로토콜로 변환 기능 , ( 예 ) AppleTalk

라우터

8. Networking 4

8.3 인터넷 (Internet)

TCP/IP TCP(Transport Control Protocl) IP(Internet Protocol) 동일한 주소지정 방식 및 전송 방식

SRI-NIC (KRNIC) SRI (Stanford Research Institute) NIC (Network Information Center) 인터넷 상의 LAN 에 호스트의 고유 주소 할당 인터넷 Backbone 에 어떻게 연결 되는지만 담당 ( 내부적인 관리는 무관 )

IP Address vs. Symbolic Address vs. Physical Hardware Address IP Address

• 8 bit 4 fields = 32 bits ( 예 ) 211.119.245.68• Class A, B, C, D• Domain Name = Symbolic Address ( 예 ) csblade.incheon.ac.kr

Symbolic Address• com ( 회사 ), edu( 교육기관 ), gov( 정부 ), ㄴ org( 비영리기관 ), mil( 군용 ), XX(2 자리 국가코드 )

Physical Hardware Address: 이더네트 주소• 6-octet 수치• 콜론으로 분리된 16 진수 ( 예 ) 20:81:0a:10:c4:93

» 처음 두 octet 은 제작사 코드

8. Networking 5

8.3 인터넷 (Internet)

Address Mapping Service /etc/hosts Symbolic Address/Host Name/IP Address 간의 변환

Routing Service /etc/defaultrouter GATE(gateway) IP 주소 정의하여 DEST(destination) 으로 갈 수 있는 정보

제공

다른 컴퓨터의 명령 수행하기 (rsh)( 예 ) rsh mysung date # mysung is a host name

( 단 , passwd 없이 호스트의 셸을 얻을 수 있어야 함 )

8. Networking 6

8.3 인터넷 (Internet)

password 없이 다른 호스트의 셸을 얻는 두 가지 방법 ( 둘 중 한가지만 하면 됨 )

원격 호스트들의 home directory 상의 .rhosts 화일 안에 이들 호스트들의 symbolic name 들을 명시함 (remote command 실행 가능 )… (Solaris9 에서 안됨 , 권장 않음 )

시스템 관리자가 /etc/hosts.equiv 안에 globally equivalent computer 들의 symbolic name 들을 나열함 (password 없이 login 가능 / remote command 실행 가능 )

Port Service 인터넷 호스트들간이 통신은 주소 ( 번호 ) 가 주어진 포트를 통하여 이루어짐

/etc/services 화일은 표준 포트 ( 일반 사용자 용 ) 의 목록을 보여줌

8. Networking 7

8.4 사용자

users : 사용자 표시 local host 상의 사용자 표시

rusers: 사용자 표시 local network 상의 사용자 표시 ( 단 , /usr/lib/netsvc/rusers/rpc.rusersd 이 먼저 실행되어야 함 )( 형 ) rusers -al host *( 예 ) rusers –al

who : 더 많은 사용자 표시 users 와 비슷하며 추가적인 정보가 제공( 형 ) who [ whoFile ] [ am i ]

whoFile 의 사례 : /var/adm/wtmpx

( 예 ) who( 예 ) who am i( 예 ) who /var/adm/wtmpx

8. Networking 8

8.4 사용자

rwho : 더 많은 사용자 표시 (Solaris 에서 안됨 ) local network 에 대한 who 실행 ( 단 , /usr/sbin/in.rwhod 이 먼저 실행되어야 함 )

w who 와 거의 비슷하나 명시된 사용자가 실행 하고 있는 동작도 보여줌( 형 ) w userId *( 예 ) w mysung

whois : 인터넷 정보 주요 인터넷 위치에 관한 정보를 얻음( 형 ) whois [ -h hostName ] id

• hostName 은 whois 서비스를 실행하고 있는 호스트이고 id 는 찾고자 하는 인터넷 식별자임

( 예 ) whois -h whois.krnic.net 211.119.245.68 (KRNIC registry) (KRNIC: Korea Network Information Center)( 예 ) whois -h whois.arin.net seoul (North American registry)( 예 ) whois -h whois.ripe.net seoul (European registry)( 예 ) whois -h whois.aspic.net incheon (Asia-Pacific Registry)( 예 ) whois -h whois.nic.mil Smith (American Military)( 예 ) whois -h whois.nic.gov Smith (American Government) ㄴ

8. Networking 9

8.4 사용자

hostname [name-of-host] 자신의 local host 이름을 알아냄슈퍼유저는 name-of-host 매개변수를 입력하여 local host 의 이름을 바꿀 수 있음

finger 여러 출처에서 모은 사용자들에 관한 정보를 표시( 형 ) finger userId *

- /etc/passwd - $HOME/.plan - $HOME/.project

( 예 ) finger ( 예 ) finger mysung( 예 ) finger mysung@multi

8. Networking 10

8.5 사용자들과 통신

mesg 사용자들간의 통신을 가능 (y) 또는 불가능 (n) 하게 함( 예 ) # mesg y

write 한 줄 씩 통신할 때 사용( 형 ) write userId [ tty ]

다수의 터미날 사용할 때 tty 명시 처음 통신자가 자신의 위치를 알려주는 것이 예의임 (write 명령 초기화 ) 동기화용 상호 규약을 정하는 것이 편리 ( 예 : -o- over, -oo- over and out) 끝낼 때 , ^D 사용

wall local host 상의 모든 사람들에게 메시지 전송 (Broadcasting)( 형 ) wall [ fileName ]

talk 분리된 화면 인터페이스를 통해 인터넷 상 (같은 호스트 또는 원격호스트 ) 의 다른

사람과 대화 (chatting) 화면 다시 그리기 : ^L 종료 : ^C( 예 ) talk [email protected]

8. Networking 11

8.5 사용자들과 통신

mail : 전자 우편 메시지 전송( 형 ) mail -H [ -f fileName ] userID * userID 는 전자우편 전송 대상자임 userID 가 없으면 , 전자우편을 읽는 것으로 간주함 (/user/spool/mail/<user

ID>에서 ) f 옵션으로 사용자의 전자우편 보관장소를 지정할 수 있음 H 옵션으로 사용자의 전자우편 보관장소로부터 제목들을 볼 수 있음 전자우편 시작하기 화일 ($HOME/.mailrc)

• $MAILRC 에 이 화일경로가 명시됨 사용자의 요구를 맞추어 구성할 수 있음 특히 유용한 기능

• 전자우편 그룹 형성 group name userId +( 예 ) group cic kim lee park # in ".mailrc" mail cic < kongmoon 시스템 관리자가 그룹 형성

• /etc/mail/aliases 에 그룹 등록하고 newaliases

8. Networking 12

8.5 사용자들과 통신

명령 모드

• ? 도움말

• copy [mesgList] [fileName] 메시지 복사 , "saved"라는 표시 없음

• delete [mesgList] 메시지 삭제

• file [fileName] 우편함 fileName 으로부터 우편 읽기

• header [message] message 를 포함하는 메시지 제목 보이기

• mail [userId]+ 전자우편 전송

명령 모드

• print [mesgList] more 를 이용하여 메시지를 보여줌

• quit mail 빠져 나옴

• reply [mesgList] 메시지의 송신자에게 응답함

• save [mesgList] [fileName] 메시지 저장 , fileName (default: mbox)

8. Networking 13

8.5 사용자들과 통신

mesgList ( 전자우편 메시지 집합 )현재 메시지

• nn 번호가 nn 인 메시지• ^ 지워지지 않은 메시지 중에서 첫 번째• $ 마지막 메시지• * 모든 메시지• nn-mm 번호가 nn 부터 mm 사이의 메시지• user 사용자 user 로부터 온 메시지

mail 보내기 ( 예 ) $ mail stu

Subject: ……… ^D

( 예 ) $ mail stu < letter mail 받기

( 예 ) $ mail( 예 ) $ mail -f mbox( 예 ) $ mail -H

8. Networking 14

8.6 분산 자료

rcp(remote copy) /etc/hosts.equiv 안에 등록된 globally equivalent computer 들의 복사( 형 ) rcp -pr fileName + directory

• p 복사 하면서도 마지막 수정시간 , 접근시간 ,허가권을 보존

• r recursively copy

( 예 ) rcp file1 unix1:file2 # 원격지 mysung 의 같은 홈 디렉토리로 복사( 예 ) rcp stu@unix1:file1 file2 # 원격지 mysung 의 stu 홈 디렉토리에 있는 file1 을 복사해옴

uucp (Unix-to-Unix CoPy) 초기 USENET 시절 직렬선 , 다이얼업 네트워킹에 사용 ( 이더넷 네트워킹은 IP

프로토콜 이용 ) unix 호스트들간의 화일 복사 , rcp 와 비슷 uucp sourcefile destfile 유사한 명령 : cu (call Unix), tip (full-duplex terminal connection) 명령 이용

8. Networking 15

8.6 분산 자료 ftp

ftp 프로토콜을 지원하는 다양한 호스트들간의 화일 복사 원격지 호스트의 .netrc 를 탐색하여 anonymous ftp 인지를 검사함 ( 만일 anonymous ftp

가 아니면 , 계정과 패스워드를 물어봄 ) ^C 화일 전송 중지 ( 단 , ftp 는 지속됨 ) ftp 의 명령 등

• !command local host 상에서 명령 command 수행• append localFile remoteFile지역화일을 원격지화일 끝에 추가• bell 모든 화일이 전송된 다음 벨이 울림• bye 원격지 호스트 연결 폐쇄 후 , ftp 종료• cd remoteDir 원격지 호스트의 경로 바꾸기• close 원격지 호스트 연결 폐쇄• delete remoteFile 원격지 호스트로부터 화일 삭제• get remoteFile [ localFile ] 원격지 화일을 지역 화일로 복사• help [ command ] 도움말 표시• lcd localDir 지역 호스트의 경로 바꾸기• ls remoteDir 사용중인 원격지 호스트의 호일 목록 보기• mkdir remoteDir 사용중인 원격지 호스트에 디렉토리 만들기• open hostNane [ port ] 호스트 연결 시도• put localFile [ remoteFile ]

지역 화일을 원격지 화일로 복사• pwd 현재 작업 중인 원격지 호스트의 디렉토리 표시• quit bye 와 같음• rename remoteFrom remoteTo

원격 화일 이름의 재정의• rmdir remoteDir 사용중인 원격지 호스트에 디렉토리 지우기

8. Networking 16

8.7 분산 처리

rlogin 원격 unix 호스트로의 login( 형 ) rlogin -ec [ -l userId ] hostName 신뢰하는 원격 호스트가 아니면 password 검사 escape sequence (~: tilde)

• -e 옵션으로 이 문자를 바꿀 수 있음• ~. 원격 호스트로부터 연결 즉시 폐쇄 , ^D(종료 ) 와 동일• ~susp 원격 login 을 일시 중시 , fg 로 재개함• ~dsusp ~susp과 동일 . 단 , 원격 로그인 세션으로부터의 출력을 지역 터미널로

에코함

rsh 원격 unix 호스트 상에서의 shell 실행 ( 단 하나의 명령 실행 시 유용 )( 예 ) rsh [ -l userId ] hostName [ command ] 중지 (^D)( 예 ) rsh mysung hostname (mysung 호스트에서 hostname 실행 )

8. Networking 17

8.7 분산 처리 telnet

telnet 서버를 보유하고 있는 모든 원격 호스트 로의 접근 및 명령어 수행 지원( 형 ) telnet [ host [ port ] ]

• escape 명령 (^]) : 명령 모드로 들어감• 명령 모드

- close 연결 폐쇄- open host [port] 호스트 연결- quit telnet 을 중단- z telnet 을 일시 중단- ? telnet 의 명령어 요약 출력

• 종료 : ^] quit (Ctrl-] 후 quit)( 예 ) telnet multi.incheon.ac.kr 7

# 보통 7번 포트는 ping-port 임 ( 자신의 터미날로 echo)

( 예 ) telnet multi.incheon.ac.kr 13 # 보통 13 번 포트는 현재 시간을 보여주고

종료함( 예 ) telnet 211.119.245.149

8. Networking 18

8.8 네트워크 서비스 USENET

uucp 유틸리티로 구현된 주제별 전자게시판 이용 : tin, rn, xrn, xvnews, nn, pine 등 multi.inchon.ac.kr (211.119.245.149) 에서 tin 이용 가능

Sun Microsystems 에서 유닉스 네트워크를 위해 개발한 Network File System (BSD 계열 )

유용한 기능들 단일 네트워크 화일 계층 구조로의 마운팅 기능 제공

• 여러 개의 지역 화일 시스템을

RPC (Remote Procedure Call) • 다른 기계로의 분산 처리 의뢰

XDR (External Data Representation) • 호스트 중심의 데이터 표현 방식 지원

YP (Yellow Page) NIS, NIS+ (Solaris)• password 와 그룹 정보를 다루기 위한 Network Database Management system 으로 local server

들 사이에 분산 저장

8.9 네트워크 파일 시스템 : NFS

8. Networking 19

보충 NFS(Network File System)

계정이 없는 다른 호스트의 디스크에 있는 파일 접근서버 호스트에서 클라이언트 호스트로 파일 시스템 설치

NFS 와 자동 마운팅 (Automounting)/etc/vfstab 에 이용할 모든 파일 시스템을 등록하면 과부하로 파일 서버 및 파일 서버 이용하는 모든 호스트의 성능 저하-> 자동 마운팅으로 기계 의존성 줄임부팅시 vfstab 의 파일시스템만 설치됨automount map 에 등록된 자동 설치 가능한 파일 시스템들은 주문형 (on demand) 마운팅

• 접근하기만 하면 자동 설치되었다가 일정시간 (디폴트 5 분 ) 사용되지 않으면 조용히 해제됨

Solaris 의 automount• autofs 설치 (/etc/rc2.d/S74autofs 스크립트 )• automount map 은 /etc/auto_master 또는 /etc/auto_home 에 • automountd 디몬은 /usr/lib/autofs/automountd

8. Networking 20

보충 NFS 관리

be exported(or be shared) = 파일 시스템이 원격 마운팅 (remote mounting) 으로 이용 가능하게 되었다는 뜻서버 호스트

• Linux 및 SunOS 등 BSD 계열 : /etc/exports( 예 ) /usr -access = natasha:rocky, root=natasha

• Solaris: /etc/dfs/dfstab 에 share 명령 삽입하고 재부팅 또는 셸 명령으로 share 실행하고 /usr/lib/nfs/nfsd 와 /usr/lib/nfs/mountd 실행

( 예 ) share -F nfs -o ro=multi:unix2:mysung /usr/FTP/pub (rw 가 디폴트 )

클라이언트 호스트• Linux 및 SunOS 등 BSD 계열 : /etc/fstab

( 예 ) boris:/export/exec/sun4 /usr nfs r0 0 0• Solaris: /etc/vfstab 에 mount 정보 기록하고 재부팅

( 예 ) multi:/usr/FTP/pub multi:/usr/FTP/pub /mnt nfs 1 yes - 또는 셸 명령으로 mount 실행 ( 예 ) % mount -F nfs multi:/usr/FTP/pub /mnt

dfstab 편집 , share, vfstab 편집 , mount, umount 는 root 만diskless workstation

• 저렴• network traffic 증가

8. Networking 21

보충 네트워크 디몬 (Daemons)

daemon: 부팅시 시작되어 단일 태스크를 영원히 수행하는 백그라운드 프로세스inetd(eye-net-dee) : master daemon

/etc/inetd.conf 안의 서비스 요청 받으면 해당 daemon 의 사본 실행시키고 일이 끝나면 사멸시킴

• ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd• telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd• shell stream tcp nowait root /usr/sbin/in.rshd in.rshd• login stream tcp nowait root /usr/sbin/in.rlogind in.rlogind 등

chkconfig --listRPC(Remote Procedure Call)

• 한 호스트에서 실행 중인 프로그램에서 다른 호스트의 프로시주어를 호출• inetd 에 의해 기동• 부팅시 개별적으로 기동되는 RPC 디몬

» nfsd : NFS daemon» rstatd : NIS 서비스 및 성능 통계 위한 디몬

• 프로그램 번호 + 포트 번호로 식별• well-known port numbers : /etc/services• portmap 디몬 : /etc/rpc 읽어 프로그램 번호와 IP 포트 번호 매핑 생성• RPC 요청 -> portmap 디몬 -> 포트번호 얻음

실행중인 daemon 찾기• ps -ef 해서 PID 가 200 보다 작은 프로세스들

8. Networking 22

보충 네트워크 디버깅 도구

ping: 호스트가 살아 있는지 알아보기$ ping mail.incheon.ac.kr

netstat: 네트워크 상태 알아보기• 네트워크 연결상태 : $ netstat -a• 인터페이스 구성 정보 조사 : $ netstat -i• 경로배정표 조사 : $ netstat -r• 네트워크 프로토콜 운용 상의 통계 : $ netstat -s

traceroute: IP 패킷이 목적지에 도착하기 위해 방문하는 게이트웨이의 순서 추적• free s/w -> 210.126.35.10 download • install: tar -xvf tracert.tar$ traceroute eecs.mit.edutraceroute to eecs.mit.edu(18.62.1.6), 40 bytes packets1 engr-gw-cr.cs.colorado.edu 3ms 2ms 2ms

snoop: 통신량 감시기 , 패킷 감시자 (root 만 실행 가능 ), 네트워크 상의 통신을 감시하다가 사용자가 명시한 조건에 맞는 패킷을 기록하거나 출력$ man snoop$ snoop $ snoop csblade $ snoop -o cap csblade (cap 파일에 저장 )$ snoop -i cap -p99,108 (cap 파일에서 패킷 99~108 내용을 출력 )

8. Networking 23

보충 네트워크 디버깅 도구 … 계속

arp: IP 주소를 하드웨어 주소 ( 이더네트 주소 ) 로 사상하는 커널표에 접근하여 주소사상검사와 관리$ arp -a ( 목록 )$ arp -d hostname (su 가 삭제 )$ arp -s hostname (su 가 등록 )

nslookup: name server 검색$ nslookup cs.mit.edu$ nslookup18.62.1.6

sar(system activity reporter): 시스템 사용 분석$ sar -u 5 5 (CPU 사용율 )$ sar -r 5 ( 메모리 사용량 )

8. Networking 24

보충

Berkeley 네트워킹 관리/etc/hosts : 네트워크 상의 각 이더네트 인터페이스의 IP 주소와 호스트 명/etc/ethers( 일부 시스템에서만 사용 ) : 네트워크 상의 각 이더네트 인터페이스의 이더네트 주소와 호스트명 : rarp 가 참조

• rarp(reverse arp): Solaris 의 해당 명령 Bonus! (BOOTP?) arp (address resolution protocol)

• ‘ 누가 210.126.35.99 의 h/w 주소 아니 ?’ 방송 -> 해당 컴퓨터가 ‘저예요’ 대답

• /usr/sbin/arp -a (캐시 내용 출력 )신뢰하는 호스트 개념

• rlogin, rcp, rsh • 시스템 : su 가 /etc/hosts.equiv 에 리스트 기록 (‘remote- 호스트’ 형식 )• 사용자 : $HOME/.rhosts 에 신뢰하는 호스트 또는 호스트 - 사용자 쌍

8. Networking 25

과제 6…11 월 21 일 ( 금 ) 까지

과제 : 교재 p373• 연습문제 3• 연습문제 4

과제 제출 방법• Bonus 만 제출한다

Bonus! : 교재 p373 연습문제 1 또는 2 ( 각 1~2점씩 )

Unix 시스템의 루트 활용 권한 부여 받을 사람 지원하세요 !