1 / 25

8. Networking

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

damian-lott
Download Presentation

8. Networking

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 mysung@multi.incheon.ac.kr 8. Networking

  11. 8.5 사용자들과 통신 • mail : 전자 우편 메시지 전송 (형) mail -H [ -f fileName ] userID * • userID는 전자우편 전송 대상자임 • userID가 없으면, 전자우편을 읽는 것으로 간주함 (/user/spool/mail/<userID>에서) • 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 이용 가능 8.9 네트워크 파일 시스템 : NFS • 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. 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 --list RPC(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.edu traceroute to eecs.mit.edu(18.62.1.6), 40 bytes packets 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 시스템의 루트 활용 권한 부여 받을 사람 지원하세요! 8. Networking

More Related