25
8. Networking 유유유유 유유유유 . 유유유유 유유유유유 유유유 유유유유 유유유 . 유유유유 유유 유유 유유유 유유 유유유유유 . 유유유 유유 유유유유 유 유유유 유유유유 유유유 유유유 유유 유유 유유 . 유유유유 유유유유 유유유 유유유유 유유 유유유 유유유유 .

8. Networking

Embed Size (px)

DESCRIPTION

8. Networking. 유닉스는 재미있다 . 유닉스는 사용하기는 쉽지만 배우기는 어렵다 . 유닉스의 모든 것을 배우는 것은 불가능하다 . 필요한 것과 재미있을 것 같다고 생각되는 부분에 관심을 쏟는 것이 좋다 . 유닉스는 세련되고 영리한 사람들을 위한 도구의 집합이다. 8.1 소개. 일반 네트워크 용어 네트워크 구축 방법 네트워크 상에서 다른 사람들과 대화 방법 네트워크 상에서 다른 컴퓨터의 사용 방법. 8.2 네트워크 구축. Serial port 끼리의 연결 가장 단순한 연결 - PowerPoint PPT Presentation

Citation preview

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 시스템의 루트 활용 권한 부여 받을 사람 지원하세요 !