출처 : http://www.hbkr.net/zboard/zboard.php?id=network&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=11
제 목 : [9701]유닉스 네트워크 관리자-2
4. ICMP Redirects
어떤 문제가 발생했을 때 송신자에게 알려주는 것이 ICMP redirect 패킷이다.
ICMP redirect 패킷을 받은 호스트는 라우팅 테이블을 갱신한다.
5. Subnetting
주소의 호스트 부분의 일부를 네트워크 부분으로 확장되도록 비트를 빌려주는
것을 서브넷이라 한다.
예를 들면 B 클래스의 4바이트 주소는 N.N.H.H로 해석되는데 만약 subnetting
이 3 바이트를 네트워크 넘버에 할당되면 주소는 N.N.N.H로 해석된다. 결국
하나의 B 클래스 네트워크 주소가 254개의 C 클래스와 유사한 네트워크로 바
뀐다.
바이트 경계로 네트워크와 호스트 부분으로 나누는 것은 일반적이다. 일반적이
지는 않지만 C 클래스도 2 바이트를 빌려주어 서브넷하는 경우도 가능하다.
서브넷은 서브넷 마스크를 통해 지정한다. 서브넷 마스크는 비트열로써 네트워
크 비트는 1로 호스트 비트는 0으로 이루어진다.
서브넷 마스크는 부팅될 때 ifconfig명령으로 네트워크 인터페이스 컨피그에 지
정한다. 커널은 일반적으로 기본 IP 클래스를 디폴트로 사용한다.
6. CIDR : Classless Inter-Domain Routing
(= Supernetting)
라우팅 소프트웨어는 IP 주소의 어느 비트들이 네트워크를 나타내는지 알 수
있어야 한다. 과거에는 주소 클래스 기반의 non-local 라우팅이 안되었다. 서브
넷은 autonomous 시스템 안에서만 이루어졌다.
인터넷의 급속한 성장으로 라우팅 문제가 발생했는데 해결은 한 번에 하나 이
상의 네트워크를 다루는 군집(aggregate) 라우트를 정의하는 것이었다.
CIDR(RFC1519)는 네트워크 넘버의 lower bit를 감추기 위해 마스킹을 사용하
여 효과적으로 하나의 라우트로 여러 네트워크를 묶는다. 그룹으로 묶기 위해
서는 주소가 인접해야 한다.
(예)199.128.0 199.128.1 199.128.2 199.128.3은 mask 0xFFFFFC00으로 묶인다.
전체 라우트 수를 줄이기 위해 supernetting은 주소할당과 수행될 라우팅을 계
층적이 되도록 하였다. 예로 ISP(Internet Service Provider)는 클라이언트에게
나누어주기 위해 큰 supernet를 배당 받을 수 있는 것이다.
7. 라우팅 전략 선택하기
라우팅 전략은 크게 4가지가 있다.
(1) 라우팅이 없다.
(2) 정적 라우팅
(3) 대부분 정적이고 클라이언트들은 RIP 업데이트를 참조
(4) 동적 라우팅
일반 라우팅 원칙은 다음과 같다.
(1) stand-alone 네트워크는 라우팅이 없다.
(2) 네트워크 밖으로 경로가 하나이면 그 네트워크의 클라이언트들은 long 게
이트웨이에 대해 디폴트 라우트.
(3) 한쪽은 여러 게이트웨이이고 다른 쪽은 world 게이트웨이인 경우 explicit
static 라우팅을 전자에, 디폴트 라우팅을 후자에 적용한다. 양쪽이 여러
게이트웨이이면 동적 라우팅적용.
(4) RIP를 사용하더라도 gated가 어떤 라우트들이 나가게 되는지를 지정하도
록 한다.
(5) 클라이언트들이 라우팅 업데이트에 대해 수동으로 참조하게 하려면
routed -q를 사용한다(gated도 가능).
(6) RIP가 주 라우팅 프로토콜이 아니면 gated로 passive 클라이언트를 위해
그 라우팅 정보를 번역하여 broadcast한다.
(7) routed는 모든 사람에 대해 참조하고 모든 것을 믿는다. gated는 더 많은
업데이트에 대한 조절을 제공한다.
(8) 네트워크가 political/administrative 경계를 걸치면 동적 라우팅을 요구한다.
(9) 중복되거나 루프를 포함하는 동적 네트워크는 가능하면 OSPF를 사용한다.
(10) EGP를 쓰려면 이웃의 autonomous 시스템에게 묻는다.
Setting up a Network
네트워크를 세팅하는 순서는 대략 다음과 같다.
(1) 네트워크의 물리적, 논리적 구조를 계획한다.
(2) IP 주소를 할당한다.
(3) 네트워크 하드웨어를 설치한다.
(4) 부팅될 때 네트워크 인터페이스를 컨피그하도록 호스트를 셋업한다.
(5) 라우팅 데몬을 셋업하거나 정적 라우트를 셋업한다. 둘다 할 수도 있다.
1. 인터넷 주소 얻기와 할당
네트워크 넘버는 InterNIC Registration Service에 의해 할당된다. 할당되는 IP
주소는 네트워크 인터페이스에 할당되는 것이다.
2. ifconfig : 네트워크 인터페이스 컨피그
ifconfig 명령어는 네트워크 인터페이스를 인에이블, 디스에이블 하거나 IP 주
소, broadcast 주소, 관련 서브넷 마스크를 셋업하며 다른 옵션이나 파라미터를
세트한다.
(예) ifconfig en0 128.138.240.1 up netmask 255.255.255.0
이서네트의 경우 일반적인 칩이 인텔(ie) 나 AMD(le) 이다. netstat -i 명령어
는 무슨 인터페이스가 시스템에 존재하는지 찾는다. 솔라리스에서는 ifconfig
plumb 명령으로 네트워크 인터페이스를 처음에 부착시켜 주어야 한다.
IP 주소를 컨피그하는 경우 Family항목을 inet으로 세트해야 한다. 어떤
ifconfig명령 버전은 생략될 때 자동으로 inet로 인식한다(HP와 BSDI는 inet으
로 명시). loopback 인터페이스는 lo0로 불린다. 로컬 호스트가 stand-alone 기
계에서도 네트워크 프로토콜과 서비스가 잘 작동하도록 하는 가상의 하드웨어
로 반드시 127.0.0.1(localhost)로 IP 주소를 할당해야 한다.
일반 옵션으로는
(1) netmask - 인터페이스에 대하여 서브넷 마스크를 세트한다(선, 솔라리스에
서는 /etc/networks, /etc/netmask파일의 논리적 이름을 쓸 수도 있다).
(2) broadcast - 인터페이스에 대하여 IP broadcast 주소를 지정한다. 바른
broadcast 주소는 호스트 부분이 모두 1로 세트된 것이다(SunOS에서는 0으
로).
(3) metric - 라우팅에 영향을 주는 옵션으로 보통 한 쪽에서 다른 쪽의 네트
워크로 패킷이 전송되는 시간이 1 hop인데 metric옵션은 인터페이스에 관련된
hop count로써 실세계의 비효율을 고려해 가상으로 높게 잡을 수 있다.
(예) ifconfig en0 128.138.240.1 up netmask 255.255.255.0 broadcast
128.138.240.255 -> 네트워크 클래스 B
‘ifconfig en0’와 같이 사용하면 현재의 컨피그 상태를 보여준다.
3. route : Configure static routes
route명령은 정적 라우트를 정의한다. 즉 명시적으로 라우팅 테이블을 가지는
것이다.
라우팅은 IP 계층에서 수행된다. 다른 호스트로 향하는 패킷이 도착하면 그 목
적지의 주소가 커널의 라우팅 테이블의 엔트리와 비교된다. 목적지의 네트워크
번호가 라우트의 것과 일치하면 패킷은 해당 라우트와 연관되는 다음 게이트웨
이 IP 주소로 진행된다.
라우팅에는 2가지의 특별한 경우가 있다.
첫 번째로 패킷은 직접 연결된 네트워크 위의 어떤 호스트를 향하는 경우 다음
게이트웨이는 지역 호스트의 자체 네트워크 인터페이스가 된다. 이 경우 패킷
은 직접 목적지로 보내지게 된다. 이러한 형태의 라우트는 네트워크 인터페이
스의 컨피그에 추가된다.
두 번째는 목적지 주소와 부합되는 라우트가 없는 경우 디폴트 라우트가 있으
면 그대로 수행되고 없으면 ICMP의 ‘network unreachable’메시지가 송신자
에게 보내진다. 디폴트 라우트는 보통 패킷을 다른 영리한 게이트웨이에게 보
낸다. 각 route 명령은 하나의 라우트를 추가하거나 삭제한다.
<형식>
route [-f] add(delete) [type] 목적지 gateway hop-count
route -f 명령은 라우트 테이블에서 모든 게이트웨이 엔트리를 제거한다.
[type]은 net, host 문자열을 가지는데 네트워크 주소가 아니라 특정 호스트를
지칭하는 완벽한 IP 주소에 부합되는 호스트 라우트를 제공한다.
참고: BSDI, OSF/1 시스템은 route -f 대신 route flush를 사용하며 net,
host 대신 -net, -host를 사용한다.
네트워크 디버깅
1. ping
ping 명령어는 ICMP 프로토콜의 ECHO-REQUEST 데이터그램을 이용하여
특정 호스트로부터 응답을 요구한다. 최하위층의 프로토콜로써 서버 프로세스
에게 아무 요구도 하지 않는다. 단지 서버가 동작하는지만을 체크한다.
또한 네크워크가 제대로 설정이 되있는지, 즉 라우팅이나 Address Resolution
scheme, 네트워크 게이트웨이 등을 확인 할 때도 좋다. 솔라리스, SunOS에서
는 ping에 -s 옵션을 주면 자세한 출력을 보여준다.
최근의 ping 명령어는 packet count 인자가 없으면 무한적으로 출력을 표시하
므로 <Ctrl-C>로 중지시켜야 한다. 아래는 그 출력예를 보인 것이다.
inhavision.inha.ac.kr> ping dragon
PING dragon (165.246.10.3): 56 data bytes
64 bytes from 165.246.10.3: icmp_seq=0 ttl=255 time=0 ms
64 bytes from 165.246.10.3: icmp_seq=1 ttl=255 time=0 ms
....
64 bytes from 165.246.10.3: icmp_seq=34 ttl=255 time=0 ms
64 bytes from 165.246.10.3: icmp_seq=35 ttl=255 time=0 ms
64 bytes from 165.246.10.3: icmp_seq=36 ttl=255 time=0 ms
64 bytes from 165.246.10.3: icmp_seq=37 ttl=255 time=0 ms
64 bytes from 165.246.10.3: icmp_seq=38 ttl=255 time=0 ms
----dragon PING Statistics----
39 packets transmitted, 39 packets received, 0%
packet loss
round-trip (ms) min/avg/max = 0/0/0 ms
위의 경우 39개의 패킷을 dragon 호스트에 보냈고 보낸 패킷을 모두 받았으며
잃어버린 패킷이 없음을 나타낸다. 즉 호스트가 제대로 연결됨을 의미한다. 끝
줄은 전송된 39개의 패킷의 최소, 평균, 최대 반응 시간을 나타낸 것인데 위의
경우는 시간이 너무 작아 0으로 나온 것이다(같은 네트워크 사이에서의 전송이
므로).
2. netstat 명령어
netstat 명령어는 네트워크와 관련된 상태정보를 보여준다. 다음은 보여줄 수
있는 상태의 종류이다.
(1) 네트워크의 연결 상황을 보여준다( 옵션 없이 사용 ).
(2) 인터페이스 설정 정보를 검사한다( -i 옵션 ).
(3) 라우팅 테이블을 조사한다(-n, -r 옵션, 여기서 -n 옵션은
호스트의 주소를 숫자로 표시하라는 옵션).
(4) 여러 네트워크 프로토콜에 대한 운용 상태 정보를 보여준다
(-s 옵션).
인자없이 쓰는 경우 활성화된 TCP 와 UDP 포트의 상황을 볼 수 있다. 또한
-a 옵션을 쓰면 연결을 기다리는 비활성화 된 서버도 볼 수 있다.
inhavision.inha.ac.kr> netstat
Active Internet connections
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp 0 0 inhavision.20 pc11.stat.inha.a.1034 TIME_WAIT
tcp 0 0 inhavision.20 pc11.stat.inha.a.1033 TIME_WAIT
tcp 0 0 inhavision.ftp pc11.stat.inha.a.1032 ESTABLISHED
tcp 0 0 inhavision.pop3 165.246.161.23.4176 TIME_WAIT
tcp 0 0 inhavision.4842 blue.nowcom.co.k.telne SYN_SENT
tcp 0 0 inhavision.4840 blue.nowcom.co.k.telne ESTABLISHED
tcp 0 0 inhavision.telnet 165.246.11.58.1026 ESTABLISHED
tcp 0 0 inhavision.telnet 165.246.11.58.1024 ESTABLISHED
tcp 0 0 inhavision.telnet 165.246.11.8.1022 ESTABLISHED
tcp 0 736 inhavision.telnet annex.11074 ESTABLISHED
tcp 0 0 inhavision.4835 songdo4.telnet ESTABLISHED
tcp 0 0 inhavision.telnet 165.246.11.41.1145 ESTABLISHED
tcp 0 0 inhavision.4825 mv35ii.telnet ESTABLISHED
tcp 0 0 inhavision.4824 blue.nowcom.co.k.telne ESTABLISHED
tcp 0 0 inhavision.telnet owl.2166 ESTABLISHED
tcp 0 0 inhavision.telnet 165.246.11.5.1024 ESTABLISHED
tcp 0 0 inhavision.telnet 165.246.11.73.1028 ESTABLISHED
tcp 0 0 inhavision.4813 blue.nowcom.co.k.telne ESTABLISHED
tcp 0 0 inhavision.telnet 165.246.31.44.1120 ESTABLISHED
tcp 0 0 inhavision.telnet 165.246.10.200.1222 ESTABLISHED
tcp 0 1 inhavision.4762 blue.nowcom.co.k.telne ESTABLISHED
tcp 0 0 inhavision.telnet 165.246.11.123.1024 ESTABLISHED
위에서 SQ와 RQ는 로컬 호스트에 연결된 send, receive queue의 길이를 나타
낸다(TCP 연결 반대 방향은 큐의 길이가 다를 수 있다).
UDP는 비연결성 서비스 프로토콜인데 위의 상태는 TCP에 대해서만 의미를
가진다.
상태 필드에는 LISTENING, TIME_WAIT, ESTABLISH ED가 오는데
LiSTENING은 현재 서버가 연결을 위해 대기중임을 나타낸다. TIME_WAIT
는 종결 작업을 수행중인 연결에 대해 나타낸다. ESTABLISHED는 현재 연결
되었음을 나타낸다. 하나의 TCP 소켓은 동시에 여러 연결을 유지할 수 있다.
존재하지 않거나 접근 불가능한 서버의 접근 시도는 SYN_SENT 상태로 나타
낸다. -i 옵션은 네트워크 인터페이스를 보여준다고 했는데 다음은 그 예이다.
만약 간격 시간을 주면 해당 디폴트 인터페이스에 대해 그 간격마다 상태를 나
타낸다. 또한 ‘-I ifname’옵션은 다른 인터페이스 지정에 사용한다.
inhavision.inha.ac.kr> netstat -i
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
tu0 1500 DLI none 3064824 16 2248661 9 51719
tu0 1500 <Link> 08:00:2b:e4:aa:33 3064824 16 2248661 9 51719
tu0 1500 165.246.10 inhavision 3064824 16 2248661 9 51719
tu1 1500 DLI none 0 0 0 0 0
tu1 1500 <Link> 00:00:f8:21:01:6d 0 0 0 0 0
tu2 1500 DLI none 0 0 0 0 0
tu2 1500 <Link> 00:00:f8:20:68:ae 0 0 0 0 0
sl0* 296 <Link> 0 0 0 0 0
lo0 1536 <Link> 3788 0 3788 0 0
lo0 1536 loop localhost 3788 0 3788 0 0
위의 예에서 Ierrs와 Oerrs 필드를 유의해 보아야 한다. 두 필드의 수치가 높으
면 케이블에 문제가 있음을 의미한다. 그리고 Coll 필드는 충돌 패킷의 수를 나
타내는데 보통 전체 전송 패킷의 3 % 미만인데 이 보다 크면 네트워크가 매우
부하가 크다고 판단할 수 있다.
netstat -r 명령은 커널의 라우팅 테이블을 보여준다.
inhavision.inha.ac.kr> netstat -r -n
Routing tables
Destination Gateway Flags Refs Use Interface
Netmasks:
Inet 255.255.255.0
Route Tree for Protocol Family 2:
default 165.246.10.250 UG 31 1911758 tu0
127.0.0.1 127.0.0.1 UH 1 4 lo0
165.246.10 165.246.10.162 U 8 330973 tu0
Flags 필드의 상태는 다음의 내용을 나타낸다.
> U : 액티브
> G : 게이트웨이
> H : 호스트 라우트
> D : ICMP indirect로부터의 라우트
> GH : 중간 게이트웨이를 지나는 호스트 라우트
Refs 필드는 해당 라우트를 이용하는 현재 연결된 TCP 채널의 수를 나타낸다.
Use 필드는 이 경로를 통해 보낸 패킷의 수를 나타낸다.
‘netstat -s’ 옵션은 네트워크의 내부에 산재한 카운터들의 내용을 덤프한다.
즉 모든 IP, ICMP, TCP 네트워크 정보를 보여준다. 아래가 그 예이다. 물론
이를 완전히 이해하려면 각 프로토콜의 내부 구조까지 알아야 할 것이다. 각자
깊이 있게 공부해 보기 바란다.
inhavision.inha.ac.kr> netstat -s
ip:
2571036 total packets received
0 bad header checksums
0 with size smaller than minimum
0 with data size < data length
0 with header length < data size
0 with data length < header length
21 fragments received
0 fragments dropped (dup or out of space)
4 fragments dropped after timeout
0 packets forwarded
0 packets not forwardable
0 redirects sent
icmp:
1385 calls to icmp_error
0 errors not generated 'cuz old message was icmp
Output histogram:
echo reply: 78
destination unreachable: 1385
210 messages with bad code fields
0 messages < minimum length
0 bad checksums
0 messages with bad length
Input histogram:
echo reply: 156
destination unreachable: 873
source quench: 40
echo: 78
time exceeded: 186
78 message responses generated
igmp:
0 messages received
0 messages received with too few bytes
0 messages received with bad checksum
0 membership queries received
0 membership queries received with invalid field(s)
0 membership reports received
0 membership reports received with invalid field(s)
0 membership reports received for groups to which
we belong
0 membership reports sent
tcp:
2220561 packets sent
1391533 data packets (374488110 bytes)
15401 data packets (4036447 bytes) retrans
mitted
614095 ack-only packets (529432 delayed)
0 URG only packets
358 window probe packets
179457 window update packets
19710 control packets
2524087 packets received
1267515 acks (for 374548882 bytes)
20566 duplicate acks
0 acks for unsent data
1413242 packets (287394970 bytes) received
in-sequence
22507 completely duplicate packets
(3820434 bytes)
788 packets with some dup. data
(106444 bytes duped)
45963 out-of-order packets (20954711 bytes)
31 packets (15 bytes) of data after window
15 window probes
39623 window update packets
327 packets received after close
0 discarded for bad checksums
0 discarded for bad header offset fields
0 discarded because packet too short
6709 connection requests
11712 connection accepts
17025 connections established (including accepts)
19777 connections closed (including 8247 drops)
1864 embryonic connections dropped
1239852 segments updated rtt (of 1255340 attempts)
15642 retransmit timeouts
44 connections dropped by rexmit timeout
471 persist timeouts
760 keepalive timeouts
242 keepalive probes sent
446 connections dropped by keepalive
udp:
20616 packets sent
45597 packets received
0 incomplete headers
0 bad data length fields
0 bad checksums
1 full socket
26322 for no port (24937 broadcasts, 0 multicasts)
3. traceroute : Trace IP packets
traceroute 명령은 IP 패킷이 목적지에 도달하는데 통과하는 일련의 게이트웨이
를 보여준다. 사용형식은 목적지 호스트의 이름만을 인자로 주면 된다.
inhavision.inha.ac.kr> traceroute dragon
traceroute to dragon (165.246.10.3), 30 hops max,
40 byte packets
1 dragon (165.246.10.3) 1 ms 1 ms 0 ms
traceroute명령은 outbound 패킷의 time-to-live 필드를 세트하여 작동한다. 즉
타임 아웃이 될 때 현재의 게이트웨이가 출발지로 에러 메시지를 보내게 하여
알아내는 원리이다. 그리고 다시 time-to-live 필드값을 하나 증가시켜서 반복
한다.
4. tcpdump, etherfind, snoop : Monotor Traffic
위의 프로그램들은 네트워크에서의 traffic을 감시하여 사용자에 의해 지정된
조건을 만족하는 패킷을 찾아 프린트한다. etherfind명령은 SunOS의 tcpdump
이다. 솔라리스는 snoop를 가진다.
5. arp : Inspect and Manage Address Mapping
arp 명령은 IP주소를 하드웨어 주소로 매핑하는 커널 테이블에 접근한다.
이서네트에서 이 테이블은 ARP 프로토콜을 이용해 유지된다. 다른 하드웨어에
서는 직접 정의해야 한다.
‘arp -a’ 명령은 매핑 테이블의 내용을 보여준다. 이 테이블이 자동으로 유
지되는 경우는 최근 통신한 시스템을 보여준다. 다른쪽의 게이트웨이는 보이지
않고 해당 네트워크만을 보여준다. 다음은 그 예이다.
inhavision.inha.ac.kr> arp -a
mv35ii.inha.ac.kr (165.246.10.8) at 08-00-1b-01-21-1a
ticom.inha.ac.kr (165.246.10.9) at 02-cf-1f-e1-35-83
annex.inha.ac.kr (165.246.10.161) at 00-80-2d-01-84-83
nms.inha.ac.kr (165.246.10.2) at 08-00-20-18-e4-4a
? (165.246.10.250) at 08-00-02-05-f3-15
dragon (165.246.10.3) at 08-00-20-71-f5-00
‘arp -d 호스트명’은 테이블의 엔트리를 삭제한다.
‘arp -s 호스트명 주소’는 하나의 엔트리를 추가한다.
‘arp -f 파일명’은 컨피그 파일을 이용해 테이블을 셋업한다. 또한 arp 호스
트명 명령은 호스트의 IP주소를 보여준다.
그 외의 프로토콜
TCP/IP는 유닉스의 표준 통신 프로토콜이다. 이 외에도 APPLETALK,. IPX,
DECnet 등이 있다.
1. APPLETALK
애플 사에 의해 개발되었다. 원래 프린터 공유 목적으로 만들어 졌다. TCP/IP
와 마찬가지로 여러 하드웨어에서 동작한다. 시리얼 케이블인 경우는
LocalTalk이고 이서네트의 경우는 EtherTalk이다. 또한 MacTCP도 만들었다.
(1) EtherTalk
Phase 1은 최초로 개발된 것으로 약간의 문제가 있었다.
Phase 2는 Phase 1의 Broadcast문제를 Multicast로 대치하여 문제를 해결한
것이다. Phase 2는 SNAP(표준 802.3) 헤더의 패킷을 encapsulate 한다.
(2) LocalTalk
전화선을 사용한 네트워크를 지원한다. 230Kbps로 동작한다.
(3) AppleTalk 어드레싱
IP 주소와 같이 네트워크 번호와 노드 번호로 구성된다.
(4) AppleTalk Naming
AppleTalk 사이트에서의 디바이스들은 ‘Zone’으로 그룹핑된다. 각 엔트리
는 오브직트 이름과 타입 이름을 가진다.
2. IPX
IPX(Internetwork Packet Exchange)는 노벨 사에 의해 NetWare의 일부로 개
발된 프로토콜이다.
3. DECnet
DEC의 네트워크 상품 이름이다.
DECnet 주소는 전송 매체와는 독립적이다. 1바이트의 area(논리적 구조)와 2바
이트의 노드 번호로 조합되어 구성된다.
마치며
이번 달에는 유닉스 네트워크의 기본인 TCP/IP에 대한 기본적인 내용에 대해
서 다루었다. 사실 TCP/IP에 대해 자세히 설명하자면 책 한권은 되겠지만 이
글의 목적이 TCP/IP를 가지고 무엇을 해 보려는 것이 아니라 시스템 관리자의
입장에서 네트워크를 관리하는게 목적이므로 전체적인 윤곽과 필요한 내용만을
기술하였다.
사실 네트워크 분야라는 것이 매우 광범위하고 종류도 많아 공부하기가 여간
어려운 것이 아니다. 독자에게 부탁하고 싶은 것은 틈나는 데로 OSI 7계층에
대해 공부를 하면서 이론적인 틀을 잡으며 공부했으면 하는 것이다. 그래야 다
른 프로토콜을 새롭게 공부하는데 있어 쉽게 접근할 수 있을 것이라 생각하기
때문이다.
다음 호에는 네트워크 계층의 최하단을 차지하고 있는 물리 층에 대해 공부하
기로 하겠다.
필자연락처 : 천리안, 하이텔
ID : hucloms
..........
제 목 : [9701]유닉스 네트워크 관리자-2
4. ICMP Redirects
어떤 문제가 발생했을 때 송신자에게 알려주는 것이 ICMP redirect 패킷이다.
ICMP redirect 패킷을 받은 호스트는 라우팅 테이블을 갱신한다.
5. Subnetting
주소의 호스트 부분의 일부를 네트워크 부분으로 확장되도록 비트를 빌려주는
것을 서브넷이라 한다.
예를 들면 B 클래스의 4바이트 주소는 N.N.H.H로 해석되는데 만약 subnetting
이 3 바이트를 네트워크 넘버에 할당되면 주소는 N.N.N.H로 해석된다. 결국
하나의 B 클래스 네트워크 주소가 254개의 C 클래스와 유사한 네트워크로 바
뀐다.
바이트 경계로 네트워크와 호스트 부분으로 나누는 것은 일반적이다. 일반적이
지는 않지만 C 클래스도 2 바이트를 빌려주어 서브넷하는 경우도 가능하다.
서브넷은 서브넷 마스크를 통해 지정한다. 서브넷 마스크는 비트열로써 네트워
크 비트는 1로 호스트 비트는 0으로 이루어진다.
서브넷 마스크는 부팅될 때 ifconfig명령으로 네트워크 인터페이스 컨피그에 지
정한다. 커널은 일반적으로 기본 IP 클래스를 디폴트로 사용한다.
6. CIDR : Classless Inter-Domain Routing
(= Supernetting)
라우팅 소프트웨어는 IP 주소의 어느 비트들이 네트워크를 나타내는지 알 수
있어야 한다. 과거에는 주소 클래스 기반의 non-local 라우팅이 안되었다. 서브
넷은 autonomous 시스템 안에서만 이루어졌다.
인터넷의 급속한 성장으로 라우팅 문제가 발생했는데 해결은 한 번에 하나 이
상의 네트워크를 다루는 군집(aggregate) 라우트를 정의하는 것이었다.
CIDR(RFC1519)는 네트워크 넘버의 lower bit를 감추기 위해 마스킹을 사용하
여 효과적으로 하나의 라우트로 여러 네트워크를 묶는다. 그룹으로 묶기 위해
서는 주소가 인접해야 한다.
(예)199.128.0 199.128.1 199.128.2 199.128.3은 mask 0xFFFFFC00으로 묶인다.
전체 라우트 수를 줄이기 위해 supernetting은 주소할당과 수행될 라우팅을 계
층적이 되도록 하였다. 예로 ISP(Internet Service Provider)는 클라이언트에게
나누어주기 위해 큰 supernet를 배당 받을 수 있는 것이다.
7. 라우팅 전략 선택하기
라우팅 전략은 크게 4가지가 있다.
(1) 라우팅이 없다.
(2) 정적 라우팅
(3) 대부분 정적이고 클라이언트들은 RIP 업데이트를 참조
(4) 동적 라우팅
일반 라우팅 원칙은 다음과 같다.
(1) stand-alone 네트워크는 라우팅이 없다.
(2) 네트워크 밖으로 경로가 하나이면 그 네트워크의 클라이언트들은 long 게
이트웨이에 대해 디폴트 라우트.
(3) 한쪽은 여러 게이트웨이이고 다른 쪽은 world 게이트웨이인 경우 explicit
static 라우팅을 전자에, 디폴트 라우팅을 후자에 적용한다. 양쪽이 여러
게이트웨이이면 동적 라우팅적용.
(4) RIP를 사용하더라도 gated가 어떤 라우트들이 나가게 되는지를 지정하도
록 한다.
(5) 클라이언트들이 라우팅 업데이트에 대해 수동으로 참조하게 하려면
routed -q를 사용한다(gated도 가능).
(6) RIP가 주 라우팅 프로토콜이 아니면 gated로 passive 클라이언트를 위해
그 라우팅 정보를 번역하여 broadcast한다.
(7) routed는 모든 사람에 대해 참조하고 모든 것을 믿는다. gated는 더 많은
업데이트에 대한 조절을 제공한다.
(8) 네트워크가 political/administrative 경계를 걸치면 동적 라우팅을 요구한다.
(9) 중복되거나 루프를 포함하는 동적 네트워크는 가능하면 OSPF를 사용한다.
(10) EGP를 쓰려면 이웃의 autonomous 시스템에게 묻는다.
Setting up a Network
네트워크를 세팅하는 순서는 대략 다음과 같다.
(1) 네트워크의 물리적, 논리적 구조를 계획한다.
(2) IP 주소를 할당한다.
(3) 네트워크 하드웨어를 설치한다.
(4) 부팅될 때 네트워크 인터페이스를 컨피그하도록 호스트를 셋업한다.
(5) 라우팅 데몬을 셋업하거나 정적 라우트를 셋업한다. 둘다 할 수도 있다.
1. 인터넷 주소 얻기와 할당
네트워크 넘버는 InterNIC Registration Service에 의해 할당된다. 할당되는 IP
주소는 네트워크 인터페이스에 할당되는 것이다.
2. ifconfig : 네트워크 인터페이스 컨피그
ifconfig 명령어는 네트워크 인터페이스를 인에이블, 디스에이블 하거나 IP 주
소, broadcast 주소, 관련 서브넷 마스크를 셋업하며 다른 옵션이나 파라미터를
세트한다.
(예) ifconfig en0 128.138.240.1 up netmask 255.255.255.0
이서네트의 경우 일반적인 칩이 인텔(ie) 나 AMD(le) 이다. netstat -i 명령어
는 무슨 인터페이스가 시스템에 존재하는지 찾는다. 솔라리스에서는 ifconfig
plumb 명령으로 네트워크 인터페이스를 처음에 부착시켜 주어야 한다.
IP 주소를 컨피그하는 경우 Family항목을 inet으로 세트해야 한다. 어떤
ifconfig명령 버전은 생략될 때 자동으로 inet로 인식한다(HP와 BSDI는 inet으
로 명시). loopback 인터페이스는 lo0로 불린다. 로컬 호스트가 stand-alone 기
계에서도 네트워크 프로토콜과 서비스가 잘 작동하도록 하는 가상의 하드웨어
로 반드시 127.0.0.1(localhost)로 IP 주소를 할당해야 한다.
일반 옵션으로는
(1) netmask - 인터페이스에 대하여 서브넷 마스크를 세트한다(선, 솔라리스에
서는 /etc/networks, /etc/netmask파일의 논리적 이름을 쓸 수도 있다).
(2) broadcast - 인터페이스에 대하여 IP broadcast 주소를 지정한다. 바른
broadcast 주소는 호스트 부분이 모두 1로 세트된 것이다(SunOS에서는 0으
로).
(3) metric - 라우팅에 영향을 주는 옵션으로 보통 한 쪽에서 다른 쪽의 네트
워크로 패킷이 전송되는 시간이 1 hop인데 metric옵션은 인터페이스에 관련된
hop count로써 실세계의 비효율을 고려해 가상으로 높게 잡을 수 있다.
(예) ifconfig en0 128.138.240.1 up netmask 255.255.255.0 broadcast
128.138.240.255 -> 네트워크 클래스 B
‘ifconfig en0’와 같이 사용하면 현재의 컨피그 상태를 보여준다.
3. route : Configure static routes
route명령은 정적 라우트를 정의한다. 즉 명시적으로 라우팅 테이블을 가지는
것이다.
라우팅은 IP 계층에서 수행된다. 다른 호스트로 향하는 패킷이 도착하면 그 목
적지의 주소가 커널의 라우팅 테이블의 엔트리와 비교된다. 목적지의 네트워크
번호가 라우트의 것과 일치하면 패킷은 해당 라우트와 연관되는 다음 게이트웨
이 IP 주소로 진행된다.
라우팅에는 2가지의 특별한 경우가 있다.
첫 번째로 패킷은 직접 연결된 네트워크 위의 어떤 호스트를 향하는 경우 다음
게이트웨이는 지역 호스트의 자체 네트워크 인터페이스가 된다. 이 경우 패킷
은 직접 목적지로 보내지게 된다. 이러한 형태의 라우트는 네트워크 인터페이
스의 컨피그에 추가된다.
두 번째는 목적지 주소와 부합되는 라우트가 없는 경우 디폴트 라우트가 있으
면 그대로 수행되고 없으면 ICMP의 ‘network unreachable’메시지가 송신자
에게 보내진다. 디폴트 라우트는 보통 패킷을 다른 영리한 게이트웨이에게 보
낸다. 각 route 명령은 하나의 라우트를 추가하거나 삭제한다.
<형식>
route [-f] add(delete) [type] 목적지 gateway hop-count
route -f 명령은 라우트 테이블에서 모든 게이트웨이 엔트리를 제거한다.
[type]은 net, host 문자열을 가지는데 네트워크 주소가 아니라 특정 호스트를
지칭하는 완벽한 IP 주소에 부합되는 호스트 라우트를 제공한다.
참고: BSDI, OSF/1 시스템은 route -f 대신 route flush를 사용하며 net,
host 대신 -net, -host를 사용한다.
네트워크 디버깅
1. ping
ping 명령어는 ICMP 프로토콜의 ECHO-REQUEST 데이터그램을 이용하여
특정 호스트로부터 응답을 요구한다. 최하위층의 프로토콜로써 서버 프로세스
에게 아무 요구도 하지 않는다. 단지 서버가 동작하는지만을 체크한다.
또한 네크워크가 제대로 설정이 되있는지, 즉 라우팅이나 Address Resolution
scheme, 네트워크 게이트웨이 등을 확인 할 때도 좋다. 솔라리스, SunOS에서
는 ping에 -s 옵션을 주면 자세한 출력을 보여준다.
최근의 ping 명령어는 packet count 인자가 없으면 무한적으로 출력을 표시하
므로 <Ctrl-C>로 중지시켜야 한다. 아래는 그 출력예를 보인 것이다.
inhavision.inha.ac.kr> ping dragon
PING dragon (165.246.10.3): 56 data bytes
64 bytes from 165.246.10.3: icmp_seq=0 ttl=255 time=0 ms
64 bytes from 165.246.10.3: icmp_seq=1 ttl=255 time=0 ms
....
64 bytes from 165.246.10.3: icmp_seq=34 ttl=255 time=0 ms
64 bytes from 165.246.10.3: icmp_seq=35 ttl=255 time=0 ms
64 bytes from 165.246.10.3: icmp_seq=36 ttl=255 time=0 ms
64 bytes from 165.246.10.3: icmp_seq=37 ttl=255 time=0 ms
64 bytes from 165.246.10.3: icmp_seq=38 ttl=255 time=0 ms
----dragon PING Statistics----
39 packets transmitted, 39 packets received, 0%
packet loss
round-trip (ms) min/avg/max = 0/0/0 ms
위의 경우 39개의 패킷을 dragon 호스트에 보냈고 보낸 패킷을 모두 받았으며
잃어버린 패킷이 없음을 나타낸다. 즉 호스트가 제대로 연결됨을 의미한다. 끝
줄은 전송된 39개의 패킷의 최소, 평균, 최대 반응 시간을 나타낸 것인데 위의
경우는 시간이 너무 작아 0으로 나온 것이다(같은 네트워크 사이에서의 전송이
므로).
2. netstat 명령어
netstat 명령어는 네트워크와 관련된 상태정보를 보여준다. 다음은 보여줄 수
있는 상태의 종류이다.
(1) 네트워크의 연결 상황을 보여준다( 옵션 없이 사용 ).
(2) 인터페이스 설정 정보를 검사한다( -i 옵션 ).
(3) 라우팅 테이블을 조사한다(-n, -r 옵션, 여기서 -n 옵션은
호스트의 주소를 숫자로 표시하라는 옵션).
(4) 여러 네트워크 프로토콜에 대한 운용 상태 정보를 보여준다
(-s 옵션).
인자없이 쓰는 경우 활성화된 TCP 와 UDP 포트의 상황을 볼 수 있다. 또한
-a 옵션을 쓰면 연결을 기다리는 비활성화 된 서버도 볼 수 있다.
inhavision.inha.ac.kr> netstat
Active Internet connections
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp 0 0 inhavision.20 pc11.stat.inha.a.1034 TIME_WAIT
tcp 0 0 inhavision.20 pc11.stat.inha.a.1033 TIME_WAIT
tcp 0 0 inhavision.ftp pc11.stat.inha.a.1032 ESTABLISHED
tcp 0 0 inhavision.pop3 165.246.161.23.4176 TIME_WAIT
tcp 0 0 inhavision.4842 blue.nowcom.co.k.telne SYN_SENT
tcp 0 0 inhavision.4840 blue.nowcom.co.k.telne ESTABLISHED
tcp 0 0 inhavision.telnet 165.246.11.58.1026 ESTABLISHED
tcp 0 0 inhavision.telnet 165.246.11.58.1024 ESTABLISHED
tcp 0 0 inhavision.telnet 165.246.11.8.1022 ESTABLISHED
tcp 0 736 inhavision.telnet annex.11074 ESTABLISHED
tcp 0 0 inhavision.4835 songdo4.telnet ESTABLISHED
tcp 0 0 inhavision.telnet 165.246.11.41.1145 ESTABLISHED
tcp 0 0 inhavision.4825 mv35ii.telnet ESTABLISHED
tcp 0 0 inhavision.4824 blue.nowcom.co.k.telne ESTABLISHED
tcp 0 0 inhavision.telnet owl.2166 ESTABLISHED
tcp 0 0 inhavision.telnet 165.246.11.5.1024 ESTABLISHED
tcp 0 0 inhavision.telnet 165.246.11.73.1028 ESTABLISHED
tcp 0 0 inhavision.4813 blue.nowcom.co.k.telne ESTABLISHED
tcp 0 0 inhavision.telnet 165.246.31.44.1120 ESTABLISHED
tcp 0 0 inhavision.telnet 165.246.10.200.1222 ESTABLISHED
tcp 0 1 inhavision.4762 blue.nowcom.co.k.telne ESTABLISHED
tcp 0 0 inhavision.telnet 165.246.11.123.1024 ESTABLISHED
위에서 SQ와 RQ는 로컬 호스트에 연결된 send, receive queue의 길이를 나타
낸다(TCP 연결 반대 방향은 큐의 길이가 다를 수 있다).
UDP는 비연결성 서비스 프로토콜인데 위의 상태는 TCP에 대해서만 의미를
가진다.
상태 필드에는 LISTENING, TIME_WAIT, ESTABLISH ED가 오는데
LiSTENING은 현재 서버가 연결을 위해 대기중임을 나타낸다. TIME_WAIT
는 종결 작업을 수행중인 연결에 대해 나타낸다. ESTABLISHED는 현재 연결
되었음을 나타낸다. 하나의 TCP 소켓은 동시에 여러 연결을 유지할 수 있다.
존재하지 않거나 접근 불가능한 서버의 접근 시도는 SYN_SENT 상태로 나타
낸다. -i 옵션은 네트워크 인터페이스를 보여준다고 했는데 다음은 그 예이다.
만약 간격 시간을 주면 해당 디폴트 인터페이스에 대해 그 간격마다 상태를 나
타낸다. 또한 ‘-I ifname’옵션은 다른 인터페이스 지정에 사용한다.
inhavision.inha.ac.kr> netstat -i
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
tu0 1500 DLI none 3064824 16 2248661 9 51719
tu0 1500 <Link> 08:00:2b:e4:aa:33 3064824 16 2248661 9 51719
tu0 1500 165.246.10 inhavision 3064824 16 2248661 9 51719
tu1 1500 DLI none 0 0 0 0 0
tu1 1500 <Link> 00:00:f8:21:01:6d 0 0 0 0 0
tu2 1500 DLI none 0 0 0 0 0
tu2 1500 <Link> 00:00:f8:20:68:ae 0 0 0 0 0
sl0* 296 <Link> 0 0 0 0 0
lo0 1536 <Link> 3788 0 3788 0 0
lo0 1536 loop localhost 3788 0 3788 0 0
위의 예에서 Ierrs와 Oerrs 필드를 유의해 보아야 한다. 두 필드의 수치가 높으
면 케이블에 문제가 있음을 의미한다. 그리고 Coll 필드는 충돌 패킷의 수를 나
타내는데 보통 전체 전송 패킷의 3 % 미만인데 이 보다 크면 네트워크가 매우
부하가 크다고 판단할 수 있다.
netstat -r 명령은 커널의 라우팅 테이블을 보여준다.
inhavision.inha.ac.kr> netstat -r -n
Routing tables
Destination Gateway Flags Refs Use Interface
Netmasks:
Inet 255.255.255.0
Route Tree for Protocol Family 2:
default 165.246.10.250 UG 31 1911758 tu0
127.0.0.1 127.0.0.1 UH 1 4 lo0
165.246.10 165.246.10.162 U 8 330973 tu0
Flags 필드의 상태는 다음의 내용을 나타낸다.
> U : 액티브
> G : 게이트웨이
> H : 호스트 라우트
> D : ICMP indirect로부터의 라우트
> GH : 중간 게이트웨이를 지나는 호스트 라우트
Refs 필드는 해당 라우트를 이용하는 현재 연결된 TCP 채널의 수를 나타낸다.
Use 필드는 이 경로를 통해 보낸 패킷의 수를 나타낸다.
‘netstat -s’ 옵션은 네트워크의 내부에 산재한 카운터들의 내용을 덤프한다.
즉 모든 IP, ICMP, TCP 네트워크 정보를 보여준다. 아래가 그 예이다. 물론
이를 완전히 이해하려면 각 프로토콜의 내부 구조까지 알아야 할 것이다. 각자
깊이 있게 공부해 보기 바란다.
inhavision.inha.ac.kr> netstat -s
ip:
2571036 total packets received
0 bad header checksums
0 with size smaller than minimum
0 with data size < data length
0 with header length < data size
0 with data length < header length
21 fragments received
0 fragments dropped (dup or out of space)
4 fragments dropped after timeout
0 packets forwarded
0 packets not forwardable
0 redirects sent
icmp:
1385 calls to icmp_error
0 errors not generated 'cuz old message was icmp
Output histogram:
echo reply: 78
destination unreachable: 1385
210 messages with bad code fields
0 messages < minimum length
0 bad checksums
0 messages with bad length
Input histogram:
echo reply: 156
destination unreachable: 873
source quench: 40
echo: 78
time exceeded: 186
78 message responses generated
igmp:
0 messages received
0 messages received with too few bytes
0 messages received with bad checksum
0 membership queries received
0 membership queries received with invalid field(s)
0 membership reports received
0 membership reports received with invalid field(s)
0 membership reports received for groups to which
we belong
0 membership reports sent
tcp:
2220561 packets sent
1391533 data packets (374488110 bytes)
15401 data packets (4036447 bytes) retrans
mitted
614095 ack-only packets (529432 delayed)
0 URG only packets
358 window probe packets
179457 window update packets
19710 control packets
2524087 packets received
1267515 acks (for 374548882 bytes)
20566 duplicate acks
0 acks for unsent data
1413242 packets (287394970 bytes) received
in-sequence
22507 completely duplicate packets
(3820434 bytes)
788 packets with some dup. data
(106444 bytes duped)
45963 out-of-order packets (20954711 bytes)
31 packets (15 bytes) of data after window
15 window probes
39623 window update packets
327 packets received after close
0 discarded for bad checksums
0 discarded for bad header offset fields
0 discarded because packet too short
6709 connection requests
11712 connection accepts
17025 connections established (including accepts)
19777 connections closed (including 8247 drops)
1864 embryonic connections dropped
1239852 segments updated rtt (of 1255340 attempts)
15642 retransmit timeouts
44 connections dropped by rexmit timeout
471 persist timeouts
760 keepalive timeouts
242 keepalive probes sent
446 connections dropped by keepalive
udp:
20616 packets sent
45597 packets received
0 incomplete headers
0 bad data length fields
0 bad checksums
1 full socket
26322 for no port (24937 broadcasts, 0 multicasts)
3. traceroute : Trace IP packets
traceroute 명령은 IP 패킷이 목적지에 도달하는데 통과하는 일련의 게이트웨이
를 보여준다. 사용형식은 목적지 호스트의 이름만을 인자로 주면 된다.
inhavision.inha.ac.kr> traceroute dragon
traceroute to dragon (165.246.10.3), 30 hops max,
40 byte packets
1 dragon (165.246.10.3) 1 ms 1 ms 0 ms
traceroute명령은 outbound 패킷의 time-to-live 필드를 세트하여 작동한다. 즉
타임 아웃이 될 때 현재의 게이트웨이가 출발지로 에러 메시지를 보내게 하여
알아내는 원리이다. 그리고 다시 time-to-live 필드값을 하나 증가시켜서 반복
한다.
4. tcpdump, etherfind, snoop : Monotor Traffic
위의 프로그램들은 네트워크에서의 traffic을 감시하여 사용자에 의해 지정된
조건을 만족하는 패킷을 찾아 프린트한다. etherfind명령은 SunOS의 tcpdump
이다. 솔라리스는 snoop를 가진다.
5. arp : Inspect and Manage Address Mapping
arp 명령은 IP주소를 하드웨어 주소로 매핑하는 커널 테이블에 접근한다.
이서네트에서 이 테이블은 ARP 프로토콜을 이용해 유지된다. 다른 하드웨어에
서는 직접 정의해야 한다.
‘arp -a’ 명령은 매핑 테이블의 내용을 보여준다. 이 테이블이 자동으로 유
지되는 경우는 최근 통신한 시스템을 보여준다. 다른쪽의 게이트웨이는 보이지
않고 해당 네트워크만을 보여준다. 다음은 그 예이다.
inhavision.inha.ac.kr> arp -a
mv35ii.inha.ac.kr (165.246.10.8) at 08-00-1b-01-21-1a
ticom.inha.ac.kr (165.246.10.9) at 02-cf-1f-e1-35-83
annex.inha.ac.kr (165.246.10.161) at 00-80-2d-01-84-83
nms.inha.ac.kr (165.246.10.2) at 08-00-20-18-e4-4a
? (165.246.10.250) at 08-00-02-05-f3-15
dragon (165.246.10.3) at 08-00-20-71-f5-00
‘arp -d 호스트명’은 테이블의 엔트리를 삭제한다.
‘arp -s 호스트명 주소’는 하나의 엔트리를 추가한다.
‘arp -f 파일명’은 컨피그 파일을 이용해 테이블을 셋업한다. 또한 arp 호스
트명 명령은 호스트의 IP주소를 보여준다.
그 외의 프로토콜
TCP/IP는 유닉스의 표준 통신 프로토콜이다. 이 외에도 APPLETALK,. IPX,
DECnet 등이 있다.
1. APPLETALK
애플 사에 의해 개발되었다. 원래 프린터 공유 목적으로 만들어 졌다. TCP/IP
와 마찬가지로 여러 하드웨어에서 동작한다. 시리얼 케이블인 경우는
LocalTalk이고 이서네트의 경우는 EtherTalk이다. 또한 MacTCP도 만들었다.
(1) EtherTalk
Phase 1은 최초로 개발된 것으로 약간의 문제가 있었다.
Phase 2는 Phase 1의 Broadcast문제를 Multicast로 대치하여 문제를 해결한
것이다. Phase 2는 SNAP(표준 802.3) 헤더의 패킷을 encapsulate 한다.
(2) LocalTalk
전화선을 사용한 네트워크를 지원한다. 230Kbps로 동작한다.
(3) AppleTalk 어드레싱
IP 주소와 같이 네트워크 번호와 노드 번호로 구성된다.
(4) AppleTalk Naming
AppleTalk 사이트에서의 디바이스들은 ‘Zone’으로 그룹핑된다. 각 엔트리
는 오브직트 이름과 타입 이름을 가진다.
2. IPX
IPX(Internetwork Packet Exchange)는 노벨 사에 의해 NetWare의 일부로 개
발된 프로토콜이다.
3. DECnet
DEC의 네트워크 상품 이름이다.
DECnet 주소는 전송 매체와는 독립적이다. 1바이트의 area(논리적 구조)와 2바
이트의 노드 번호로 조합되어 구성된다.
마치며
이번 달에는 유닉스 네트워크의 기본인 TCP/IP에 대한 기본적인 내용에 대해
서 다루었다. 사실 TCP/IP에 대해 자세히 설명하자면 책 한권은 되겠지만 이
글의 목적이 TCP/IP를 가지고 무엇을 해 보려는 것이 아니라 시스템 관리자의
입장에서 네트워크를 관리하는게 목적이므로 전체적인 윤곽과 필요한 내용만을
기술하였다.
사실 네트워크 분야라는 것이 매우 광범위하고 종류도 많아 공부하기가 여간
어려운 것이 아니다. 독자에게 부탁하고 싶은 것은 틈나는 데로 OSI 7계층에
대해 공부를 하면서 이론적인 틀을 잡으며 공부했으면 하는 것이다. 그래야 다
른 프로토콜을 새롭게 공부하는데 있어 쉽게 접근할 수 있을 것이라 생각하기
때문이다.
다음 호에는 네트워크 계층의 최하단을 차지하고 있는 물리 층에 대해 공부하
기로 하겠다.
필자연락처 : 천리안, 하이텔
ID : hucloms
..........
'9. 도서관 > __다. UNIX' 카테고리의 다른 글
vfstab 파일 (0) | 2008.09.22 |
---|---|
Oracle Apache Web Server 기본 포트 변경하기 (0) | 2008.09.17 |
Solaris Oracle10g 설치 (0) | 2008.09.17 |
시스템이 shutdown된후 부팅이 안될때 (0) | 2008.09.16 |
메모리 사용량 보는 방법 (prstat나 top말고) (0) | 2008.09.16 |
댓글