728x90

본 자료는 2000년도 초반에 제가 네트워크 자료 공부하면서 정리한 자료 입니다.


시스코라우터에 대한 기본적인 개념 을 도와줄 수 있는 자료입니다.
자료의 구성은 이미 오픈된 몇몇 자료들중에서 필요하다고 생각되는 부분은 같이 첨가시켰구요...
보시면 기초적인 내용부터 약간은 중급내용까지 다룬 것이라 보시면 됩니다.

1. IP address 개념 및 서브넷팅 개론
2. 라우터 기본기능 및 동작원리
3. 라우터 구성 및 세팅방법
4. 라우터 트러블슈팅 고려사항
5. Access List
6. NAT(공인IP 사설IP 변환)
7. HSRP 개요


자료의 분량은 68페이지 분량입니다.


Cisco_Basis.zip


블로그 이미지

Link2Me

,
728x90

정말 오래전에 그려뒀던 그림이 있어서 올려봅니다.




블로그 이미지

Link2Me

,
728x90

이 프로토콜은 동적으로 IP주소를 할당해주는 프로토콜입니다.

요즈음 초고속망은 모두 이런 방식으로 IP를 할당해준다고 보시면 됩니다.


가) 개요

디스크가 없는 컴퓨터에게 IP주소를 제공하는 RARP라는 규약은 단지 IP주소만을 제공하고 그 외 나머지 정보를 제공하지 않기 때문에 BOOTP, DHCP 규약을 사용한다.
TCP/IP에 접속되는 각 컴퓨터는 ‘해당 IP주소’, ‘해당 서브넷 마스크’, ‘라우터의 IP주소’, ‘네임서버의 IP주소’와 같은 정보를 알아야 한다.
이 정보는 보통 구성 파일에 저장되고 부팅과정 중에 컴퓨터에 의해 접근된다.
BOOTP는 동적으로 설정되는 프로토콜이 아니다. 클라이언트가 그 IP주소를 요청하면 BOOTP 서버는 클라이언트의 물리주소에 해당하는 IP주소를 테이블에서 찾게 된다. 이는 테이블에 이미 물리주소와 IP주소간의 연결이 미리 정해져 있어야 한다는 것을 의미한다. 그러나 만약 호스트가 다른 물리 네트워크로 이동하는 경우는 어떻게 되는가? 또한 만약 호스트가 임시의 IP주소를 원한다면 어떻게 되는가? BOOTP는 물리주소와 IP주소간의 연결이 관리자에 의해 변경되기 전까지는 고정적이고 불변하기 때문이다. BOOTP는 고정적으로 설정되는 프로토콜이다.
동적 호스트 설정 프로토콜인 DHCP는 동적인 설정을 제공하기 위해 제안되었다.
DHCP는 일정기간 동안 임시 IP주소를 할당한다.
DHCP서버는 2개의 데이터베이스를 가진다.

  • 정적으로 물리주소와 IP주소를 연결하는 것과
  • DCHP가 가지는 활용 가능한 IP주소의 pool이다.


나)  DHCP 운용 장단점

  • 고정 IP방식에 비해 사용자 IP망 설계변경이 자유롭다.
  • 사용자에게 DHCP IP를 할당해주게 되면 네트워크 정보가 자주 바뀌더라도 DHCP 서버(Router)에서만 네트워크 정보를 변경해주면 되므로 네트워크 정보변경이 유연하다.
  • 사용자중 PC를 켠 사용자만 IP가 할당되어 고정 IP에 비해 IP절약 효과가 있다.
  • DHCP 요구단말은 초기 부팅시 broadcast 트래픽(DHCP DISCOVERY 메시지)을 유발시킨다. -> 한 개의 VLAN의 설정범위에 있는 모든 단말에 전송되므로 네트워크의 성능 저하 발생 가능
  • PC전원만 ON시키면 실제 인터넷을 접속하지 않아도 IP가 할당된다.
  • PC전원을 OFF할 경우 Lease Time까지 IP가 다른 단말에 할당되지 못하게 되어 IP주소 낭비가 발생하게 된다. <- Win95/98 운영체제의 경우 도스 명령어에 IP release 하는 명령어가 존재함에도 불구하고
  • 네트워크 전체의 설정 정보가 한곳에 집중되어 있어 DHCP 서버에 장애가 발생할 경우 이후의 단말 접속이 불가능해진다.
  • 네트워크의 문제(DHCP Server로의 경로상의 문제)가 DHCP 기능을 마비시킬 수 있으며, DHCP는 보안에 매우 취약하며 개선이 곤란하다.
  • 이용자가 마음만 먹으면 모든 동적 IP를 사용하지 못하게 할 수 있다(Denial of Service)


다)    동작절차
IP주소를 획득하기 위해 클라이언트는 다음 절차를 수행하여야 한다.


 


①    클라이언트는 DHCP DISCOVER 메시지를 목적지 포트 67로 하여 broadcast한다.
②    서버들은 DHCP OFFER 메시지로 응답한다.
이 메시지를 통해 서버들은 IP주소 및 임대기간을 제공한다. Default는 1시간이다. DHCP OFFER를 전송하는 서버는 제공된 IP주소를 잠그고 다른 클라이언트에게 활용 가능하지 않도록 한다.

  • 클라이언트가 DHCP OFFER 메시지를 수신하지 못하면? -> 각각 2초간격으로 4번을 더 시도한다.
  • 이런 모든 DHCP DISCOVER 메시지에 응답이 없으면, 클라이언트는 다시 시도하기 전에 5분간 sleep 상태로 들어간다.

③    클라이언트는 제공된 것 중 하나를 선택하여 선택된 서버로 DHCP REQUEST 메시지를 broadcast 한다.
④    서버는 DHCP ACK 메시지로 응답한다.

  • 클라이언트의 물리주소와 그 IP주소의 연결을 만든다.
  • 클라이언트는 임대기간 동안 IP주소를 사용할 수 있다.

⑤    임대기간의 50%가 지나게 되면 클라이언트는 다른 DHCP REQUEST를 전송 하여 재사용 가능한지를 요청한다.
⑥    서버가 DHCP ACK로 응답하면 클라이언트는 새로운 임대 계약을 얻게 되므로 그 타이머를 새로 시작하게 된다.

  • 이 때 서버가 DHCP NACK로 응답하면 클라이언트는 즉시 IP 사용을 중지하고 새로운 서버를 찾아야 한다.(과정 1)
  • 서버가 응답하지 않으면 클라이언트는 임대기간의 87.5%에 달할 때 DHCP REQUEST를 보내게 된다.
    - 임대 기간이 끝나기 전에 응답을 받으면 이에 따른 처리를 하나
    - 그렇지 않으면 임대 기간이 끝날 때까지 기다린 후 과정1부터 다시 반복하게 된다.
    - 클라이언트가 임대를 미리 종료할 수 있는데 이 경우 DHCP RELEASE 메시지를 서버로 전송한다.


라)    패킷구조
 


  • Operation Code (8bits) : request시 1, response의 경우 2
  • Hardware type (8bits) : 물리 네트워크의 종류를 나타낸다. 이더넷의 경우 1이다.
  • Hardware length (8bits) : 하드웨어 주소의 길이를 바이트 단위로 나타내며 이더넷의 경우 이 값은 6이다.
  • Hop count (8bits) : 패킷이 갈 수 있는 최대 홉 개수를 나타낸다.
  • Transaction ID (4bytes) : 클라이언트 IP주소를 포함한다. 이 필드는 요청을 받은 서버에 의해 응답 메시지에 기록된다.
  • Number of seconds (16bits) : 클라이언트가 부팅된 후 경과된 시간(초)
  • Flag (1bit) : 클라이언트가 서버한테 unicast 대신에 broadcast 형태의 응답을 요청하기 위해 기존에 사용되지 않는 필드의 처음 비트에 추가적인 1비트짜리 플래그를 사용하였다.  만약 응답이 클라이언트에게 전송되면, IP패킷의 목적지 주소는 클라이언트에 할당된 주소가 된다. 이 때 클라이언트는 그 주소를 알지 못하므로 이 패킷을 버리게 될 것이다. 그러나 IP패킷이 broadcast 형태로 전해지면 모든 호스트는 그 메시지를 받아 처리할 수 있게 되는 것이다.
  • Client IP address (4bytes) : 클라이언트 IP 주소를 포함한다. 만약 클라이언트가 이 정보를 가지고 있지 않다면 모두 0으로 지정하게 된다.
  • Your IP address (4bytes) : 이 필드는 요청을 받은 서버에 의해 응답 메시지에 기록된다. 클라이언트 IP주소를 포함한다.
  • Server IP address (4bytes) : 서버는 이 값을 응답 메시지에 기록한다.
  • Gateway IP address (4bytes) : 라우터의 IP주소를 나타내고 서버에 의해 응답 메시지에 기록된다.
  • Client hardware address : 클라이언트의 하드웨어 주소를 나타낸다. 비록 서버는 이 주소값을 클라이언트가 보낸 주소에서 추출하지만, 명시적으로 클라이언트가 이 값을 요청 메시지에 기록해 보낸다면 이 값을 사용하는 것이 효율적이다.
  • Server name(64bytes) : 서버가 응답 메시지에 기록하는 선택 항목으로 64 바이트를 차지하며 null string으로 끝나는 서버의 도메인 이름을 포함한다.
  • Boot file name (128bytes) : 이 필드는 서버가 응답 메시지에 기록하는 선택항목으로 null string로 끝나는 부트 파일의 전체 경로명을 포함한다.
  • Option (64bytes) : 이 필드는 2가지 목적을 가진다. 네트워크 마스크 또는 기본 라우터 주소와 같은 추가적 정보를 전달하거나 특정 제조업체의 해당 정보를 전달하기 위해서이다. 이 필드는 응답 메시지에서만 사용한다.
  • Options for BOOTP



  • Options for DHCP


마)    DHCP Relay Agent

  • DHCP는 일반적으로 broadcast를 사용하므로 DHCP 서버는 subnet마다 존재하여야 하고  대규모 네트워크에서는 subnet이 무수히 존재하고 각 subnet마다 DHCP 서버를 구축하여 관리하는 것은 대단히 어려운 문제
  • DHCP Relay Agent는 이러한 네트워크 간의 packet forwarding을 제공함으로써 물리적으로 동일하지않은 subnet  DHCP 서버의 서비스가 가능
  • 클라이언트의 DHCP 메시지가 서버로 적절히 전달되기 위해서는 모든 subnet은 Relay Agent를 포함하여야 클라이언트가 broadcast하는 DHCP 메시지를 Relay Agent가 수신하여 서버로 forwarding
  • Relay Agent는 DHCP 메시지를 서버와 클라이언트 간에 forwarding 야하므로 자신의 존재를 서버에게 알릴 필요가 있음
  • Relay Agent는 자신의 위치를 서버에게 알리기 위해 클라이언트가 broadcast하는 DHCP 메시지의 ‘giaddr’ 필드에 자신의 네트워크 주소를 삽입
  • Relay Agent는 서버로부터 unicast되는 DHCP 메시지를 수신하여 클라이언트가  이것을 수신할 수 있도록 로컬 subnet에 broadcast


도움이 되셨다면 댓글 부탁드립니다.


블로그 이미지

Link2Me

,
728x90


사무실 네트워크인 이더넷이 어떻게 동작하는지에 대해서 설명한 자료입니다.

네트워크 지식을 쌓은 좋은 방법은 헤더구조를 파악하고 어떻게 동작하는지를 이해하는 것입니다.

제가 많은 책을 보면서 깨달은 습득한 노하우라면 노하우입니다.

외우려고 하지 마시고 원리를 이해하시면 나중에 응용력이 생겨서 실무에서 많은 도움이 되실 것입니다. 

 

ㅇ 개요
IP주소체계는 가상 네트워크의 모양을 만들도록 설계된 논리적 주소 체계이다.
물리적 네트워크에서 IP 데이터그램을 실제로 전송하려면 IP 데이터그램을 데이터 링크계층 프레임으로 Encapsulation해야 한다.
이더넷이나 토큰링과 같은 데이터링크 계층 프레임은 그 frame의 일부로 하드웨어 주소를 요구한다.
하드웨어주소와 IP주소를 연계시키는데 필요한 프로토콜을 ARP (Address Resolution Protocol)라 한다. 

 

ㅇ 동작원리

  • 기반 물리네트워크가 broadcast를 지원한다는 것이다.(이더넷, 토큰링, FDDI, ARCnet와 같은 LAN)


 
①    ARP모듈은 ARP요청을 보내기 전에 ARP 캐시 테이블(RAM에 보관됨)에서 목적지 하드웨어주소(MAC주소) 가 있는지 검사한다.
  • ARP캐시 테이블에서 목적지 IP주소가 발견되면 
  • 해당 하드웨어 주소를 조사하고, 그것을 ARP모듈에 되돌려 준다.
  • ARP모듈은 요청을 한 네트워크 드라이버에 하드웨어주소를 되돌려주어서 대상 노드의 하드웨어주소를 알아낸다.
  • 이때 네트워크 드라이버는 목적지 하드웨어주소와 IP 데이터그램이 들어있는 데이터링크 계층 프레임을 송신한다.
  • ARP캐시 테이블에서 목적지 IP주소가 발견되지 않으면 ARP모듈이 ARP요청이 들어있는 데이터링크 계층 프레임을 생성하여 대상 노드의 하드웨어 주소를 알아낸다.
    • 목적지가 지역 네트워크인가? -> 송신자 호스트는 목적지의 하드웨어 주소를 알아야 한다.
    • 목적지가 원격 네트워크인가? -> 송신자 호스트는 IP 데이터그램을 발송할 라우터 포트의 하드웨어 주소를 알아내야 한다.
②    Host A는 네트워크에서 ARP 요청 프레임이라는 MAC 동보전송 프레임(송신자 호스트A의 IP Address 및 MAC주소와 목적지 IP Address 포함)을 보낸다.
③    동보전송 프레임을 수신하는 모든 다른 노드는 그 IP주소를 ARP request의 IP주소와 비교한다.
 


④    ARP request frame에 요청한 것과 같은 IP주소를 가진 호스트만 응답한다.
 




⑤    호스트 A는 ARP응답에 포함된 대답으로 ARP Cache Table을 초기화한다.
  • ARP 캐시항목은 일부 TCP/IP 구현에서 구성할 수 있는 특정기간이 지난 후에 시간 종료한다.
  • 대체로 ARP 캐시 종료시간은 15분이다.
  • ARP 캐시항목이 특정 호스트에 대한 시간 종료하고 나면, 호스트의 하드웨어 주소를 발견하기 위해 ARP요청 프레임을 다시 보낸다.

 

ㅇ  패킷구조
 


  •  하드웨어 종류 필드값은 HLen 필드의 설정을 제어한다.
  • 프로토콜 종류는 해당 하드웨어 주소로 제공되는 상위계층 프로토콜 주소이다.
    프로토콜 종류값은 EtherType 값과 같다.
    IP프로토콜의 경우, 16진수로 800인 값이 프로토콜 종류 필드에 사용된다.
  • HLen 필드는 옥텟 단위로 본 하드웨어 주소의 길이이다. 이 필드는 길이가 1옥텟이다. 이더넷 네트워크의 경우 8로 설정된다.
  • PLen필드는 옥텟단위로 본 프로토콜 주소의 길이이다. 이 필드는 길이가 1옥텟이다. PLen필드값은 프로토콜 종류 필드의 값으로 제어된다.
  • 프로토콜 종류가 16진수로 800이면, 그것은 IP주소가 4옥텟인 IP프로토콜을 나타낸다. 따라서 PLen값은 IP 네트워크의 경우 4로 설정된다.
  • 작동 필드는 길이가 2옥텟이며 패킷이 ARP요청을 가지고 있는지 또는 ARP응답을 가지고 있는지를 나타낸다.
  • 송신자 HA 필드는 ARP 요청을 보낸 노드의 하드웨어 주소를 포함하고 있다. 송신자는 하드웨어 주소를 네트워크 기판에서 읽고 알아내며 이 필드를 네트워크 기판의 하드웨어 주소로 채운다.
  • 송신자 IP 주소는 ARP 요청을 보내는 노드의 IP 주소를 포함하고 있다. 송신자는 IP 주소를 네트워크 구성정보가 들어 있는 구성 파일 또는 메모리 캐시에서 알아낸다.
  • 대상 HA 필드는 대상의 하드웨어 주소이다. 이 값은 ARP 요청의 송신자는 모르고 있다. 그것은 ARP 요청 송신자가 결정해야 하는 값이다. 이 필드는 대개 모두 0이나 1로 설정된다.
  • 대상 IP주소 필드는 하드웨어 주소가 결정된 노드의 IP주소를 포함하고 있다.

ㅇ MAC Address 획득방법


네트웍이 커짐에 따라 이에 여러 종류의 프로토콜이 사용된다. 이들 프로토콜은 각기 고유의 데이터링크(Layer 2) 계층을 가지고 있다. 

  • Hello Protocol
    네트웍 상에 있는 디바이스들은 이 프로토콜을 이용, 서로간에 자기 존재를 알리고 확인하며 상대의 MAC 어드레스를 보관한다.
    어느 한 호스트가 특정 목적지에 데이터를 보내고자 할 때 만약 그 디바이스로부터 Hello 패킷을 받지 않았다면, 그 목적지에 도달하기 위해서는 반드시 라우터를 경유해야 한다고 판단하여 프레임을 라우터로 보낸다.
  • Predictable MAC Address(예측가능한 MAC 주소)
    네트웤 계층에서 MAC 어드레스를 네트웍 어드레스에 포함시키거나, 그 어드레스를 연관시키기 위한 특정 알고리즘을 사용한다.
  • WAN 사용시
    Point-to-Point WAN 환경에서는 데이터 링크 어드레스가 요구되지 않는다. 멀티 액세스 WAN 환경에서 Originating Device는 반드시 목적지의 데이터링크 Address를 명시하여야 한다.

 

도움이 되셨다면 댓글이나 공감 부탁드립니다. 꾸벅~


블로그 이미지

Link2Me

,
728x90

VISO 로 헤더구조 그림 그리던 때가 새록 새록 생각나네요.

그냥 가볍게 한번 보시면 됩니다.



IP헤더구조는 이렇게 생겼다.

총 20바이트이고 그중에서 IP주소부분이 송신주소와 수신주소가 각각 4바이트(=32비트)씩이다.

이 헤더구조에서는 다른 것도 중요하지만 Time to Live 필드부분과 Protocol필드부분도 눈여겨서 공부해둘 필요가 있다는 것이다.

상위계층의 프로토콜이 TCP인지 UDP인지에 대한 구분을 해주는 필드가 필요하지 않을까??

데이터가 전송될 때 에러가 발생할 가능성을 염두에 두지 않고 헤더구조를 만든다??? 상상이 안되는 부분이다.

망을 설계하다보니 잘못 설계가 되었다거나 장비가 이상이 있어서 Loop이 형성된다면 목적지까지 가지 못하고 인터넷(또는 전용네트웍)을 수 없이

떠돌아 다니는 패킷이 존재한다면????

송신IP주소는 속이기가 가능한가??? 가능하다면 왜 가능할까???

모두 ???로 의미를 대신한다.

왜냐구요??? 그래야 아 왜 필요할까 하고 생각이라는 하게 될 것이고 공부를 할 마음이 생길 것이기 때문이죠..


블로그 이미지

Link2Me

,
728x90


지금 인터넷은 TCP/IP 프로토콜을 사용합니다.

TCP 헤더구조가 어떻게 되어 있는지는 책을 보거나 여기저기 보면 많이 나옵니다.

다음에 기회가 되면 제가 워드로 잘 정리해둔 자료를 가지고 다시 한번 올려볼 생각입니다.



우리가 접속하는 인터넷에서 사용되는 패킷구조중의 하나를 나타내는 TCP 헤더구조가 위의 그림과 같다.

물론 초보자들은 좀 어렵게 느낄 수도 있지만 전문가가 되려면 반드시 헤더구조를 분석하는 버릇을 길러야 된다.

물론 이렇게 말하는 나자신도 아직은 전문가는 아니다. 그러나 기술을 공부하는 사람이라면 알아할 것이 위 헤더구조중에서

특히 포트번호와 Code Bits 부분은 꼭 알아둘 필요가 있다.

포트번호는 왜 필요할까?

우리는 하나의 컴퓨터에서 수없이 많은 Application을 실행한다. 웹 브라우저를 띄워놓고 똑같은 사이트 또는 각기다른 사이트를 접속하는데 하나같이 제대로 웹 브라우저에 보여준다. 왜 그럴까???

그것은 바로 포트번호로 구분해 줄 수 있기 때문이다.

목적지가 서버일 경우 찾아게 될 때도 어떤 서버는 웹서버이고 어떤 서버는 FTP서버이고 또다른 게임서버인지를 어떻게 알아서 찾아간다고 보는가??

목적지 포트번호가 미리 예약되어 사용되기 때문에 가능하다.


[TIP] TCP/IP 에 널리 사용되는 포트번호값들


    ●TCP/IP에서 일반적으로 널리 사용되는 포트 번호를 알아 보자

    TCP

    포트번호

    응용프로그램 계층 서비스

    TCP

    포트번호

    응용프로그램 계층 서비스

    0

    예약

    102

    ISO-TSAP

    1

    TCP 포트 서비스 멀티플렉서

    107

    원격 Telnet 서비스

    2

    관리 유틸리티

    108

    SNA 게이트웨이 접속 서버(snagas)

    3

    압축 프로세스

    110

    우체국 프로토콜 - 버전 3(POP3)

    5

    원격 직무 항목

    111

    Sun 원격 프로시저 호출(sunrpc)

    7

    반향(echo)

    119

    네트워크 뉴스 전송 프로토콜(NNTP)

    9

    삭제

    123

    네트워크 시간 프로토콜(NTP)

    11

    활성 사용자(systat)

    134

    INGRES-NET 서비스

    13

    137

    NETBIOS 이름 지정 서비스

    (netbios-ns)

    17

    오늘의 인용문(QUOTD)

    138

    NETBIOS 데이터그램 서비스

    (netbios-dgm)

    20

    FTP 데이터 포트

    139

    NETBIOS 세션 서비스(netbios-ssn)

    21

    FTP 제어 포트

    142

    Britton-Lee IDM

    23

    Telnet

    191

    Prospero

    25

    SMTP

    194

    인터넷 중계 대화 프로토콜(irc)

    35

    개인 프린터 서버

    201

    AppleTalk 경로 설정 유지보수(at-rtmp)

    37

    시간

    202

    AppleTalk 이름 바인딩(at-nbp)

    39

    자원 위치 프로토콜

    213

    IPX

    42

    호스트 이름 서버(nameserver)

    215

    Insigniax(Soft PC)

    43

    Who Is(별명)

    217

    dBASE UNIX

    49

    로그인 호스트 프로토콜(로그인)

    372

    UNIX Listserv

    52

    XNS 시간 프로

    519

    unixtime

    53

    도메인 이름 서버(domain)

    525

    시간 서버(timed)

    54

    XNS 정보 센터

    533

    비상 방송용(netwall)

    66

    Oracle SQL*NET(sql*net)

    556

    RFS 서버(remoterfs)

    67

    부트스트랩 프로토콜 서버(bootps)

    565

    Who Am I(whoami)

    68

    부트스트랩 프로토콜 클라이언트(bootpc)

    749

    Kerberos Administration

    (kerberos-adm)

    70

    Gopher 프로토콜

    767

    전화(phonebook)

    79

    Finger 프로토콜

    1025

    네트워크 블랙잭(blackjack)

    80

    world Wide Web HTTP

    1352

    Lotus Notes(lotusnote)

    88

    Kerberos

    7000-7009

    Andrew 파일 시스템(AFS)에서 사용

    94

    Trivoli Object Dispatcher(objcall)

    17007

    ISODE 디렉토리 사용자 대행자

    (isode-dua)

    95

    SUPDUP

     

     


 

블로그 이미지

Link2Me

,
728x90

본 자료는 잘 읽어보시면 도움이 많이 되실 겁니다.

인터넷 붐이 일던 2000년대 초반에 네트워크 강의를 목적으로 정리했던 자료입니다.

자료 정리 : 2001년도





클라이언트A에서 서버B로 접속을 하는 방법에는 여러 가지가 있겠지만 서버B가 웹서버라고 가정을 하고서 접속하는 과정을 한번 알아보도록 하자.

먼저, 라우터 R1에 속한 망이 공인IP주소를 사용하고 있다고 가정하면,

녹색원에 해당하는 부분이 broadcast domain이다.

클라이언트A가 웹 브라우저를 기동하고서 http://www.mk.co.kr이라는 매일경제신문 사이트인 서버B에 접속을 하기위해 엔터키를 친다.

여기서 실제적으로 어떠한 과정을 통해서 접속을 하는지 한번 알아보자 물론 상세하게 모든 과정을 설명드리지는 못하지만 기본적으로 필요한 사항에 대해서 알고서 넘어가자.

웹서버에 접속하는 과정은 TCP/IP통신 프로토콜을 이용하여 통신을 하게된다.

잘 아시다시피 TCP/IP통신과정은 클라이언트A에서 어플리케이션 계층과 TCP계층간에는 TCP 헤더구조에 보면 Source Port와 Destination Port라는 헤더부분이 있다.

이 부분에서 우리가 알고 넘어가야 할 부분은 목적지 포트는 웹서버를 사용하는 경우즉 WWW일 때는 80번 포트, telnet 데몬 접속시는 23번 포트, FTP서버에 접속시는 21번 포트를 사용한다는 것이다.

이 외에도 많은 포트들이 Reserved되어 있는데 보통 예약된 포트번호는 1~1023번 사이에 존재하여 이 부분을 well-known 포트넘버라고 한다.

소스포트는 통상적으로 1023번 이후부터 65535번 포트사이에 있는 임의의 번호를 랜덤하게 할당받게 되는데 예를 들어 10,000번 포트번호를 할당받았다고 한다면, 목적지 포트번호는 이미 접속하는 서버가 웹서버이므로 80번으로 세팅이 된다.

TCP계층에 또다른 헤더부분에 대한 것은 생략하기로 한다. 이유는 오늘 설명하고자 하는 초점과 거리가 멀기 때문이다.

그러면 네트워크 계층의 IP헤더구조에서는 상대방의 목적지주소와 자신의 주소가 설정된다.

물론 IPv4이므로 각각32비트로 설정된다.
여기서 소스주소가 210.100.100.10이라고 가정하고 목적지주소는 매경사이트 주소인 211.40.179.98이다.

여기서도 또한 다른 헤더는 생략한다. 자세한 것은 본인이 정리한 기술자료란에서 자세히 보시면 된다.

3계층까지 만들어진 패킷은 이제 하위계층인 MAC주소 계층에서 필요한 프레임을 만들 게 된다.

물리계층에서는 실제적으로 전기적인 신호로 데이터가 전송된다.

패킷을 전송하기 위해서는 어디로 전송할 것인지를 결정해야 한다.

만들어진 패킷이 같은 broadcast domain에 존재하는지 확인은 어떻게 하는가?

자신의 컴퓨터에 보게되면



IP주소 및 서브넷 마스크, 기본 게이트웨이가 세팅되어 있을 것이다.

개인컴퓨터에도 TCP/IP프로토콜이 동작하여 라우팅 테이블이 존재한다.

호스트에 존재하는 라우팅 테이블은 라우터처럼 패킷이 들어오면 어떤 경로로 패킷을 전송할 것이지 결정하는 기능은 존재하지 않지만 상위계층에서 만들어진 패킷을 라우팅 테이블을 참조하여 어디로 보낼 것이지를 결정한다.

목적지 경로가 같은 서브넷 영역안에 존재하는지 다른 영역에 존재하는지 판단은 어떻게???

먼저 시스코 라우터를 예로 들어 세팅하는 부분중에 이런부분이 있을 것이다.

ip route 0.0.0.0 0.0.0.0 serial0

여기서 0.0.0.0 0.0.0.0가 의미하는 것은 무엇인가?

앞에 있는 0.0.0.0는 목적지 네트웍이고 뒤에 있는 0.0.0.0는 서브넷 마스크이다.

위의 그림에서 보게되면 기본 게이트웨이가 존재할 것이다. 이 기본게이트웨이는 라우터의 이더넷IP주소를 뜻한다.

개인컴퓨터에서 목적지 경로를 찾는 과정은.....

자신의 주소와 서브넷마스크간에 AND gate연산을 하게된다. 위의 그림에 나온 숫자로 연산된 결과값은 210.100.100.0이다.

그리고 목적지주소와 서브넷마스크간에 AND gate연산을 하게되면 211.40.179.0가 나온다.

이 두 개의 값을 비교하여 연산된 결과값이 서로같으면 같은 서브넷 영역에 속하는 것이고

다르면 다른 영역에 존재하는 것이다.

같은 영역에 존재할시에는 상대방의 주소를 모를 경우에는 arp동작을 실행하여 목적지 하드웨어주소를 알아서 목적지로 패킷을 보내게 되는 것이고 다른 영역에 존재할시에는 라우터 MAC주소를 2계층 프레임에 설정하여 프레임을 라우터로 보내게 된다.

라우터에서는 도착한 프레임을 2계층에서 3계층으로 전달시에 헤더를 제거하고 3계층에서 목적지 주소를 확인하고서 라우팅 테이블에서 적당한 경로를 찾아서 패킷을 전송한다.

물론 전송시에는 라우터와 라우터간에 설정된 프로토콜이 HDLC로 설정이 되어있으면 HDLC프레임으로 만들어서 상대방 라우터로 전송을 하게 되는 것이다.

패킷이 R2라우터에 도착하게 되면 라우터R2는 목적지 서버로 패킷을 전송한다.

목적지 서버에서는 클라이언트에 응답하여 패킷을 만들어 보내게 된다.

이때 보내게 되는 소스포트 번호는 랜덤하게 설정이 될 것이며 목적지포트는 클라이언트 소스포트번호인 10,000번을 할당하게 되고

목적지 주소는 210.100.100.10번을 설정하여 반대의 과정을 거쳐서 원래의 클라이언트A에 패킷이 도착하여 원하는 응답을 받게된다.

그러면 여기에서 간단히 정리를 해보면

공인IP주소를 가지고 통신할 시에 필요한 것은

(소스포토번호, 목적지포트번호, 소스IP주소, 목적지IP주소)로 압축하여 볼 수가 있다.

라우터는 목적지IP주소를 보고서 경로설정을 하는 것이다. 라우터와 라우터간에 주고받는 라우팅 프로토콜이라든가 이런 개념은 본 설명의 취지와는 거리가 멀기 때문에 생략한다.

먼저, 라우터 R1에 속한 망이 사설IP주소를 사용하고 있다고 가정하면,

라우터에서 사설IP주소를 공인IP주소롤 바꾸어주는 기능이 설정되어있지 않다고 가정한다면

IP주소가 192.168.10.10이라고 하는 사설IP주소라고 하자.

클라이언트A에서 만들어진 패킷은 라우터로 보내지게 될 것이다.

라우터는 목적지IP주소를 보고서 경로설정을 하여 패킷을 전송하여 목적지인 서버B에 도착하였다고 한다면 다시 역으로 응답을 하게될 때 상대방의 IP주소를 설정하여 보내게 될 때 이 패킷은 다시 클라이언트A로 찾아오게 될 수가 없다.

왜냐하면 인터넷상에서는 공인IP주소만이 찾아갈 수 있는 경로가 설정되어 있기 때문이다.

라우터에서 사설IP주소를 공인IP주소로 변경해 주는 기능을 해주어야만 사설IP주소를 사용하는 클라이언트A가 서버B와 통신을 할 수가 있는 것이다.

그러면 라우터에서는 어떻게 이러한 기능을 하게되어 통신이 가능하도록 하는 것인가?

먼저 클라이언트A가 생성한 패킷을 라우터로 전송된다. (소스포트번호, 목적지포트번호, 사설 소스IP주소,목적지IP주소)

라우터는 클라이언트A의 사설IP주소를 공인IP주소로 변경한다. 즉 NAT(Network Address Translation)을 하게된다.

이러한 IP주소변환을 한 결과를 라우터 엔트리에 저장을 한다.

엔트리 테이블에 (No, 소스포트번호, 목적지포트번호, 사설 소스IP주소,목적지IP주소, 공인 소스IP주소)를 만들어 저장하고서 다시 만들어진 패킷을 서버B로 전송하여 서버B로부터 응답을 받게된 패킷이 도착할시에는 반대의 과정을 거쳐서 목적지 주소를 공인IP주소 → 사설IP주소로 바꾸어 클라이언트A로 전송해준다.

그럼 여기서 아무런 문제가 발생하지 않을까?

소스포트번호와 목적지포트번호가 생성된 것은 어떤 계층인가?

Transport Layer인 4계층이다. 아시다시피 라우터는 3계층까지의 정보를 가지고 패킷을 전송한다.

그런데 4계층에서 만들어진 소스포트번호는 클라이언트A만 생성할 수 있는 것은 아니라는 것이다.

인접한 다른 클라이언트들도 같은 소스포트번호를 생성할 수가 있다는 것이다.

즉 10,000번 이라는 소스포트번호를 다른 클라이언트도 생성할 수가 있기 때문에

(No1, 소스포트번호 = 10,000, 목적지포트번호, 사설 소스IP주소=192.168.10.10,목적지IP주소, 공인 소스IP주소=210.100.100.5)

(No2, 소스포트번호 = 10,000, 목적지포트번호, 사설 소스IP주소=192.168.10.11,목적지IP주소, 공인 소스IP주소=210.100.100.5)

와 같은 엔트리 테이블이 존재할 수가 있다는 것이다.

목적지로부터 도착한 패킷을 과연 어디로 다시 주소변환을 하여 보내야 할 것인가?

1번 엔트리인가? 아니면 2번 엔트리에 등록된 것인지 알 수가 없게 된다. 방법은 다음과 같이 하면 해결이 된다.

(No, 소스포트번호, 목적지포트번호, 사설 소스IP주소,목적지IP주소, 공인 소스IP주소, 라우터생성 소스포트번호)

로 엔트리 테이블을 만들게되면 목적지인 서버B에서 도착한 응답이 다시 클라이언트A로 주소변환을 하여 보내게 될 때 명확해진다.

즉 라우터에서 생성된 소스포트번호는 각각 다르기 때문에 같은 엔트리테이블 정보가 생성될 수 없다는 것을 알 수 있다.

패킷을 내보내게 될 경우에는 사설소스IP주소 → 공인소스IP주소, 클라이언트 소스포트번호 → 라우터생성 소스번호

패킷을 클라이언트로 응답시에는 목적지주소 및 목적지포트번호만 역변환과정을 거쳐서 Translation을 해주면 해결된다.

참고적으로 말씀을 드리자면 공인 IP주소를 가지고 인터넷통신시 컴퓨터 여러대가 통신을 하는 경우에 필요로 하는 소프트웨어인 IPTime 도 이러한 NAT처리를 해주는 소프트웨어입니다.

그리고 방화벽에서 내부는 사설IP를 사용하고 외부와 통신시에 사용하는 경우에도 마찬가지로 이러한 과정이 필요한 것이죠..

지금까지 설명드린 NAT동작과정이 이해가 되셨는지 모르겠습니다.

개념은 이정도면 충분히 이해가 되셨을 줄로 아는데 혹시라도 잘 이해가 안되시면 제가 그동안 정리한 파일들중에

이더넷 동작원리, arp동작원리, IP계층에서의 헤더구조 및 동작처리과정, TCP계층 헤더구조 및 동작과정등을 참조하기시 바랍니다


블로그 이미지

Link2Me

,
728x90




패킷을 수신하게 되었을 때 포트가 listen상태에 있을 경우와 닫힌 상태에 있을 경우 서로 다른 반응을 보이게 된다.

즉 자세한 사항은 사항은 TCP헤더의 codebits부분를 좀 더 살펴보도록 하자.



  • URG : Urgent Field가 유효하다.
  • ACK : ACK Field가 유효하다.
  • PSH : TCP가 즉시 이 메시지의 데이터를 상위계층 프로세스에게 전달해야 한다.
  • RST : 복구할 수 없는 오류 때문에 Virtual Circuit를 초기화하기 위해 사용된다.
    초기화의 이유로는 호스트 Crash 또는 중복 SYN 패킷의 지연 등이 있을 수 있다. TCP 세그먼트는 RST가 수신되면, 수신자는 즉시 연결을 종료시키는 것으로 응답해야 한다. 초기화를 하면 양쪽이 즉시 연결과 모든 자원을 해제하게 된다. 결국 데이터의 전송이 양방향으로 중단되어 송신중이던 데이터가 없어질 수 있다.
  • SYN : Virtual Circuit 연결의 시작을 나타내기 위해 사용된다.
  • FIN : 송신측의 Byte Stream이 종료되었음을 나타내기 위해 사용한다

방화벽의 경우에는 Destination Port중 서비스를 오픈할 것인지에 따라 포트번호를 열어놓는다.

웹서비스를 제공하는 경우에는 해당 IP주소의 80번 포트번호를 열어둔다.

만약 FTP서비스를 제공하지 않고자 할 경우에는 21번 포트와 20번 포트번호를 열어놓지 않는다.

방화벽뿐만 아니라 홈페이지 서비스를 가동중인 리눅스 서버의 경우에도 마찬가지이다.

하나의 리눅스서버에 FTP서버와 WEB서버를 동시에 제공중이라면 해당되는 포트번호를 열어놓는다.

이처럼 포트번호가 열려있는 경우에는 어떤 응답을 하고 닫혀있는 경우에는 어떤 응답을 하는지 그림으로 나타낸 것이 위의 그림이다.

TCP에 대한 사항은 RFC793에 명시되어 있다.

  • Port가 listen 상태일 경우
    • RST비트가 1로 세팅되어 있다면 응답하지 않는다.
    • RST비트가 0으로 세팅되었을 경우에는
    • 다음에 ACK비트가 1인지를 조사한다. 만약 1이면 즉시 연결을 종료시키는 RST로 응답을 한다.
    • ACK비트가 0이면 다음에 SYN비트가 1인지 조사한다.
    • SYN비트가 0이면 응답하지 않는다. 그러나 SYN=1이면 연결을 허락할 것인지를 판별한다.
    • 연결을 허락한다면 SYN/ACK로 응답한다.
    • 연결을 허락하지 않는다면 즉시 연결을 종료시크는 RST로 응답한다.

 

블로그 이미지

Link2Me

,
728x90

시스코 CCNA 등과 같은 자격증 공부하는 분들한테는 필요한 자료일지 몰라서 올립니다.


CSMA/CD방식이라는 것은 약어를 풀어보면 Carrier Sense Multiple Access/Collision Detection의 약자로 반송파 감지 다원접속 방식의 일종이다.

즉 보내고자 하는 패킷을 송신하기 전에 통신로상에 반송파의 존재유무를 감지한 후 패킷을 보내는 방식이다.

Collision Detection이란 송신하는 동안에도 수신을 하여 데이타의 충돌을 빨리 감지한 후 패킷 송신을 멈추고 일정시간 대기후 전송하는 방식이다.

그래서 CSMA/CD방식은 Full Duplex방식이 아닌 Half Duplex(반이중)방식이다.
UTP케이블 8가닥중에서 4가닥이 송수신에 사용되는데
송신선 1,2 번과
수신선 3,6 번이다.


송신중에 수신쪽으로도 데이타를 주고 받는 방식이 양방향전송방식인데 CSMA/CD방식은 
스위칭기술이 발전함에 따라 10Mbps, 100Mbps에서는 주로 사용이 되나 1Gbps에서는 명맥은 유지되고 있으나 사실상 사용이 거의 안되는 것이라고 봐도 무방하다.
즉 전이중방식인 Full Duplex모드로 사용이 된다는 야그다.
그리고 10기가비트 이더넷에선 아예 CSMA/CD방식은 자취를 감추고 만다...


이더넷방식의 LAN에서는 공정한 경쟁방식으로 많은 단말장치들이 연결되어 있을 경우 이들에게는 되도록 공정한 전송기회가 주어져야 한다.

만약 프레임의 크기를 정해 놓지 않으면 소수의 몇 단말기가 많고 큰 사이즈의 프레임을 보냄으로서 다른 단말장치는 작은 크기의 데이타를 보내려고 해도 많은 시간을 기다려야 하는 불공평한 점이 있다.

따라서 최대 크기를 정해야 한다. 또한 최대 크기를 정해놓지 않고 전송이 이루어 진다면, 이를 처리할 수 있는 버퍼가 충분 히 커야 한다. 그렇게 되면 작은 크기의 프레임만 보내는 경우에도 버퍼 크기를 매우 크게 해야 하므로 낭비가 크다.

따라서 효율이 높고 모든 단말기에 공평하고 응답시간이 빠른 수준에서 최대 프레임 크기가 정해져 있다.

이더넷방식에서는 최대 프레임크기는 1500byte이다.


이더넷에서는 신호가 굵은 케이블에서 광속의 0.77배, 가는 이더넷 케이블에서는 광속의 0.65배로 전파된다


블로그 이미지

Link2Me

,
728x90



스위치가 하는 기능은 허브와는 달리 주소인식 기능이 있어서 스위치가 스위칭테이블이라고 하는 주소테이블(FDB)을 참조하여 입력되는 패킷의 MAC주소를 보고서 해당되는 포트로 패킷을 전송한다.

Mac Table에 등록가능한 Mac 주소의 갯수는 스위치의 메모리양에 따르며 스위치에 따라 수천에서 수십만개까지 가능하다.

그럼 이제 한번 살펴보도록 하자.



위 그림은 이더넷 프레임의 구조를 나타낸 것이다



단말에서 패킷이 스위치의 특정포트로 입력되면

  • 각 수신 Frame의 Destination Address를 검사한다.
  • Address Mapping Table을 참조하여 Output port 를 결정한다.
    • Switching장비는 MAC FDB(Forwarding Database)을 통하여 Port별 접속된 MAC 정보를 유지한다.
    • MAC FDB의 Entry정보는 MAC Address, Port Number으로 이루어진다.
    • MAC FDB의 Entry는 MAC의 대상인 Node의 이전 등을 고려한 Aging Time이 설정되어 있다. 따라서 Aging Time이 초과되면 그 Entry는 삭제 된다.
    • Destination MAC이 FDB에 존재하지 않을 경우는 입력된 포트를 제외한 나머지 모든 포트로 해당 Frame을 Copy하여 전송(Flooding)한다.
  • Output port가 전송 가능하면, 이 Frame을 전송한다.
    • 즉, Frame 전체가 수신되기 전에 Destination Address만을 보고 판단하여 곧바로 전송할 수가 있다. (Cut-through)
    • 만약, Output port가 전송 가능하지 않으면, 이를 내부 Buffer에 저장하였다가 Output port가 전송 가능할 때 전송한다. (Store & Forward)
  • 그런데, Destination MAC이 스위치의 어떤 포트에 있는지 모를경우에는 입력되는 포트를 제외한 모든 스위치포트로 그 프레임을 보내버린다(Unknown Unicast)

여기서 잠깐 살펴 보자.

스위치가 주소테이블 정보를 어떻게 만들까?

이 부분은 브릿지의 동작개념을 읽어보시기 바란다.

스위치의 하나의 포트에 사용할 수 있는 MAC주소를 제한할 경우 어떤 점을 고려해야 되는지??

스위치에서 하나의 포트에 사용할 수 있는 단말(PC)를 한정하기 위하여 MAC주소를 1개로 설정할 경우에 스위치 -- 허브 -- 단말로 연결되는 구조에서 어떤 문제가 생길까?

Mac주소 제한기능을 사용하기 위해 link down이 되었을때 Mac Table의 Mac 주소를 삭제하는 방식을 채택한다. 즉, 단말 A가 네트웍에 접속하여 사용중이다가 단말 B를 접속하고자 한다면 단말 A에 접속된 RJ-45 케이블을 제거한후 (이때, Mac Table에서 A가 삭제됨) 다시 RJ-45 케이블을 단말 B에 접속하면 정상동작한다.
그리고 스위칭허브에 허브를 연결하여 두대의 단말이 접속된 경우에도 최초로 접속된 단말만 인식되도록 MAC주소를 1개만 인식되도록 제한을 걸어두었다면 두번째 단말이 최초 트래픽을 보내면 이미 Mac Table에 등록된 Mac Address가 있으므로 해당 프레임을 drop 한다.
여기서 주의할 사항이 스위치 사이에 Hub등을 이용하여 PC 2대를 번갈아 가면서 사용시 두번째 단말이 접속이 안되는 현상이 발생한다. 이유는?? 스위치에서는 link down이 아니므로 단말 A 의 Mac Address 는 여전히 Mac Table에 등록되어 있기 때문이다

 

 

블로그 이미지

Link2Me

,
728x90




위의 그림은 라우터 동작원리에 대한 구성도입니다.

라우터의 경우 입력포트로 들어오는 데이터의 목적지주소(IP주소)를 검사하여 해당되는 출력포트로 내보내는 구성도로

라우팅프로세스에서 패킷을 처리시 각 테이블을 참조한다.

입력버퍼, 출력버퍼는 입력포트로 들어오는 데이터가 폭주하여 많으면 입력버퍼에 보관되었다가 처리가 될 것이고

출력포트가 Busy상태이면 출력버퍼에 보관되었다가 처리가 될 것이다.

통상적으로는 대부분의 장비들은 출력버퍼를 크게하여 설계돠었다. 패킷이 처리되는 자세한 사항은 라우팅 프로토콜 정리자료를 참조하기 바라며 여기서 한가지 더 알아보고자 하는 것은 지연(Delay)에 관한 사항이다.

인터넷상에서 지연이 발생하는 곳은 수없이 많다. 가입자장비, 가입자 네트워그 구간, 백본구간, 타망접속구간, 서버 등 등....

딱 꼬집어서 여기에서 지연이 발생했다는 것을 찾는다는 것이 어려운 사항이다.

인터넷에서 발생하는 지연에 관한 몇가지 원인을 살펴보도록 하자.

  • Forwarding Delay : 임의의 스위치(라우터)가 패킷을 수신하여 Forwarding Table(라우팅 테이블)에 의한 경로 선정을 한 후 해당 출력포트로 패킷을 전송하기 직전까지의 시간을 의미한다. 주로 스위칭패브릭의 성능이나 라우팅 테이블 Lookup을 위한 시간 등이 포함되며 대부분의 고성능 라우터나 스위치의 경우에는 무시할 수 있다.
  • Propagation Delay : 패킷이 물리적 링크를 통과하는데 소요되는 시간으로 링크의 길이에 의해 결정된다. 일반적으로 Propagation Delay는 160km당 1msec로 계산할 수 있다. 링크의 길이가 매우 긴 경우에만 큰 영향을 미친다.
  • Serialization Delay(연속지연) : 라우터가 한 개의 패킷을 구성하는 비트들을 인터페이스로 내보내는데 소요되는 시간이다. 고속 인터페이스의 경우에는 무시할 수 있으며 저속 인터페이스의 경우에는 영향을 미치는 요소이다.
  • Queuing Delay : 임의의 라우터의 버퍼에서 패킷이 전송을 위해 대기하는 시간을 의미한다.
    Queuing Delay는 버퍼에 대기하는 패킷이 하나도 없으면 0이고
                            버퍼가 완전히 차 있는 경우에는 최대 버퍼크기 × Serialization Time(전송속도에 따른 전송시간)이 된다.
    네트워크 환경에 따라서 크게 변하는 특성을 지니고 있으며 트래픽 발생 유형에 따라 심하게 변동된다.
    만일 네트워크가 일정시간 이상 큐잉(Queuing Delay)가 발생하면 용량을 증설해야 한다.

이외에 발생하는 지연은 서버에서 발생하는 지연이 있을 수 있으며 네트워크상의 라우팅 정보(OSPF. BGP)의 전달에 의한 지연, 회선장애나 장비불안정으로 인한 라우팅 불안정으로 인한 지연 등이 있다

블로그 이미지

Link2Me

,
728x90

이젠 정말 오래되어버린 네트워크 기본 기술중 하나인 VLAN 기술에 대한 사항입니다.

혹시라도 관련분야에 입문하시는 분은 도움이 되실지 몰라서 올립니다.



1) Layer 2 VLAN Switch

  • 수신된 프레임의 MAC주소를 검색하여 적합한 포트로 전송하는 MAC bridge기능을 수행한다.하지만 다른 VLAN 끼리는 Router을 통하여 연동된다.
  • Bridge와의 차이점 : 스위치의 FDB에 MAC주소와 Port주소외에 VLAN ID을 추가한 점이다.
  • 따라서 Bridge와 달리 broadcasting 주소를 가진 mac frame을 수신하면 특정 vlan의 port group만 이 프레임을 broadcast한다.
  •  단점으로는 Router가 개제 되어야 하며 VLAN 간의 트래픽이 많을 경우 Router에서 병목현상이 발생한다.

2) Layer3 VLAN Switch

  • IP의 Subnet 주소와 다른 망계층 Protocol을 인식하여 이를 기초로 연동한다.
  • 스위치의 각 포트들을 특정 Protocol 의 Subnet으로 구성하고 같은 VLAN에 속한 PC간의 트래픽은 Layer 2에서 bridge방식으로 전달한다.
  • 다른 VLAN Subnet간의 트래픽은 Layer 3에서 수행한다.
  • 따라서 multi protocol router와 같이 동작한다.

 

VLAN switch 의 상호연결 backplane 구성방법


1) signaling

  • PC Power-on 된 이후 이 PC에서 송신한 첫번째 프레임이 switch의 한 포트에 수신되면 이 switch는 이포트에 할당된 VLAN id 와 이 PC의 MAC주소를 기록한 메시지를 인접 스위치에 보낸다.
  • 이 메시지는 스위치간에 정해진 특별한 메시지 형태로서 일반 프레임에 비하여 우선순위가 높은 짧은 관리용  메세지이다. 이메세지를 수신한 스위치는 이 pc에 대한 VLAN 번호와 MAC주소를 캐시 메모리에 기록하여 프레임의 bridging 기능을 수행할때 참조한다.
  • 이 방식은 signaling 메시지가 모든 스위치에 전달되어야 하므로 over header가 크다.
  • 각 스위치는 cach table의 내용을 매분마다 교환해야 하는 번거러움이 있다.

2) frame tagging 방식

  • VLAN switch 간에 연결된 backbone망을 경유하는 모든 프레임의 앞부분에 tag을 붙여서 전송하는 방식
  • tag에는 어느 VLAN 에속하는지 정보가 수록 되어 있고 signaling 메시지 방식에서와 같은 동기문제가 없다.
  • 이 tag는 switch간에만 붙여지고 스위치에서 pc로 전달될때 없어진다.
  •  이 tag의 길이, 내용등이 제조회사 마다 다르므로 IEEE802.10에서는 스위치간의 통신을 위한 security protocol의 표준을 준비중이다. 이러한 이유로 타사 장비간 호환성이 없다.


블로그 이미지

Link2Me

,
728x90

우리가 보통 사용하는 공유기에 연결되는 케이블이 어떻게 연결되어 있나하고 관심을 가져보면 될 거 같네요.

허브(스위칭허브)와 PC, 허브와 다른 인터넷장비간에 연결되는 케이블이 어떻게 연결되나 하는 관점에서 보시면 됩니다.


UTP Cable

우선적으로 컴퓨터와 컴퓨터간에 통신을 하기위해서는 LAN Card가 필요하다.

이 LAN Card를 연결하는 케이블이 UTP Cable이다.

그럼 이 UTP Cable이 어떻게 생겼을까?



위의 그림이 바로 UTP Cable과 RJ-45Jack에 대한 그림이다.

UTP(Unshielded Twisted Pair) 케이블은  Unshielded 즉 cable에 전,자기적 영향으로 인한 전송율 저하를 없애는 역할을 하는 기능이 빠진 꼬임 케이블을 말한다.  이 케이블은 Category 1~5 까지 cable의 크기와 굵기에 따른 각각의 전송 속도와 연결거리등이 정의 되어있다.

UTP Cable의 만드는 방법은 우선 아래의 그림을 보면서 살펴보자.

 

 


위쪽 그림의 색깔 중에서 실제로 통신에 사용되는 케이블은 1,2,3,6 번 케이블이다.

 송신에 사용되는 케이블은 1,2 번 케이블이고 (색깔로 보면 흰색과 주황색이 섞인 케이블과 주황색 케이블)
 수신에 사용되는 케이블은 3,6 번 케이블이다.(색까로 보면 녹색과 흰색이 섞인 케이블과 녹색 케이블)

 그리고 RJ-45 Jack을 선택할 때는 좋은 것을 선택해야 불량이 될 확률이 거의 없다. 그래서 대부분 Jack에 사용되는 것으로는 amp사 것을 많이 사용한다.

 그러면 이제 연결방법을 살펴보도록 하자.

 컴퓨터와 컴퓨터를 직접 연결할 경우에는 크로스케이블이 사용된다.
 크로스케이블이란 케이블이 한쪽은 왼쪽그림과 같은 배열로 찍힌 케이블이고 다른쪽은 배열이 1,2,3,6이 3,6색인 녹색과 흰녹색이 흰주색과 주황색자리에 놓은 색을 말한다.

 컴퓨터와 허브 또는 컴퓨터와 스위칭허브, 라우터와 스위칭허브 등이 연결될 경우에는 왼쪽그림과 같은 배열로 만들어진 케이블이 둘다 동일한 것을 사용한다. 즉 이러한 케이블을 다이렉트케이블이라 한다.

이러한 케이블을 직접 제작할 경우는 거의 없고 단지 내가 컴퓨터 통신을 하면서 사용하는 케이블이 이러한 UTP케이블이 사용되고 크로스케이블과 다이렉트케이블이 있다는 것을 알고 있으면 된다.

그래서 케이블을 구입할 경우 필요한 케이블을 적당한 길이로 만들어 달라고 하면 된다.

블로그 이미지

Link2Me

,
728x90

지난번에 멍청이 대명사 허브에 대해서 알아봤는데 이번에는 브릿지라는 놈에 대해서 알아보겠습니다...

다시 한번 허브에 대해서 말씀드리자면 중간에서 허브는 리피터의 기능을 하는 장비이고 실제통신은 단말과 단말에서 이루어지게 된다는 것이다.



이넘은 충돌영역(Collision Domain)을 나눈다는 것은 어떻게 나눈다는 것이야?

허브처럼 패킷을 받아서 그냥 통과시켜 주는 기능만으로는 아무것도 할 수가 없겠쥐??

그럼 방법은 간단하네... 약간의 지능이 필요하니까 실제 흘러다니는 패킷의 주소를 검사해봐야 된다는 야그!!!!

위의 이야기들이 무슨 말인지 모르겠다???



 

위와 같은 이더넷 프레임이 실제로 LAN 통신상에서 흘러다닌다.

전기적인 신호를 가지고 프레임을 만든 후에 이 패킷의 목적지 주소를 검사를 한다. (왜 목적지 주소를 검사한다는 것은?? → 허브와 달리 브릿지가 주소테이블정보를

가지고 있다는 야그가 되는 것임. 즉 주소테이블을 검사해서 패킷을 어떻게 할 것인지를 판단한다는 야그......)

  • 그런후에 모든 단말에게 가는 broadcast주소이면 입력된 포트를 제외한 모든 단말로 다 복사하여 전송하는 것.
  • 특정한 목적지로 가는 단말이면 해당되는 목적지주소가 어느 포트에 있는 단말주소인지 검사를 하구요..
    검사후에 패킷을 해당되는 포트로 보내주죠.......
  • 그런데 목적지 주소가 테이블에 없다???????? (야그가 옆길로 새자면 해킹기법에도 사용이 된다는 것을 공부하다보면 알 게 될 것임)
    그러면 입력포트를 제외한 모든 포트로 패킷을 전송하는 것이죠... 해당되는 단말에서 응답이 오겠죠??!!

즉 허브와 달리 브릿지가 약간 지능을 가지고 더 하는 일이 많구나 하고 이해를 하세요....

그러면 브릿지는 어떻게 동작을 하는 장비일까?

브릿지는 우선적으로 입력되는 패킷의 주소를 분석하는 장비이다.

즉 하드웨어주소를 읽어보고 나서 패킷을 다른 포트로 보낼 것인지 아니면 폐기할 것인지를 결정하는 장비라는 것이다.

브릿지를 다른 말로 하면 datalink relay라고 부르며 일반적인 사항은 다음과 같다.

  • Bridge는 자신의 MAC주소를 가질 필요가 없다. 대신에 Bridge는Promiscuous 모드로 작동한다. 이것은 Bridge의 모든 인터페이스가 프레임의 Destination MAC주소에 상관없이 각 이더넷 세그먼트상에서 송신되는 모든 트래픽을 수신한다는 것을 의미한다.
  • 처리할 수 있는 것은 네트워크상에 있는 패킷의 송신 어드레스와 수신어드레스뿐이고, 네트워크상에서 주고받는 프로토콜의 종류는 무엇이든 상관없다. 프로토콜이 IPX든TCP/IP든, 아니면 애플토크이든 상관하지 않고 수신 어드레스가 해당 네트워크에 있다면 뭐든지 통과된다.
    이러한 이유로 전용회선을 사용하는 원거리 네트워크에서 IP가 아닌 다른 프로토콜이 본사에 있는 서버에 접속하여 통신이 이루어지려면 반드시 라우터를 브릿지로 세팅하여 사용하는 경우도 있으나 트래픽의 부하량 때문에 바람직한 현상은 아니다.
  • Bridge는 패킷의 구조나 내용을 변경하지는 않으며 동일한 프로토콜을 사용하는 세그먼트간에만 사용될 수 있다.

 



 

위의 그림에서 브릿지를 중심으로 좌우에 단말들이 4대가 있다고 보면 이제 동작원리를 한번 살펴보도록 하자.

  • bridge에 패킷이 수신되면 bridge는 먼저 송신지 주소를 추출하여 이 주소가 자신이 보관하고 있는 'Address Table(네트웍상에서의 장치의 존재 유무를 기록해 놓은 테이블)'에 등록되어 있는가 검사한다. 만약 송신지 주소가 테이블에 등록되어 있지 않다면, bridge는 새로운 송신지 주소를 테이블에 신규로 등록하고 이후로는 테이블에 등록된 주소에 의하여 네트웍상에 존재하고 있는 장치를 인식하게 된다. 이 과정을 일컬어 네트웍상의 주소를 '학습(learning)'한다고 한다.
    이 방식을 따르면 네트웍 상의 모든 장치들은 자신이 존재하고 있다는 사실을 bridge에게 인식시키기 위해 특별한 조치를 취하지 않더라도 데이터 발생을 통하여 장치의 존재가 자동으로 인식된다.
  • 학습단계를 마친 후 bridge는 패킷에 나타나 있는 목적지 주소와 Address Table상의 주소를 비교하여 패킷의 목적지와 송신지가 동일한 네트웍 내에 있는가 검사한다.
  • 만약 송신지와 동일한 네트웍 내에 목적지가 존재하고 있다면 패킷은 bridge를 경유하여 타 네트웍으로 전달될 필요가 없으므로 bridge는 자동으로 패킷을 폐기 시킨다. 이 과정이 filtering이다.
  • 만약 목적지 주소가 송신지와는 다른 네트웍에 존재하며 address table에 목적지 주소가 이미 존재하고 있다면 테이블에 있는 정보를 이용하여 적절한 경로를 결정한 다음, 해당하는 전송로로 패킷을 전송한다. 이 절차가 forwarding 이다.
  • 만약 테이블에 목적지 주소가 등록되어 있지 않다면 bridge는 목적지에 해당하는 장치가 어느 네트웍에 속해 있는지 알길이 없으므로 패킷이 수신되어온 포트을 제외한 모든 포트로 패킷을 보내준다.
  • 수신된 패킷을 forwarding할 때는 패킷을 완전히 새로이 생성하기 때문에  segment상의 노드의 수나 패킷이 전송되는 총거리에 관계 없이 패킷의 신호 특성에는 전혀 영향을 주지 않는다. 따라서 이 경우에 bridge는 리피터와 마찬가지로 네트웍의 총길이를 확장시키는 역할을 한다.
  • bridge의 모든 특성은 이들 learning, forwarding, filtering을 바탕으로 한다.

 

브릿지의 기능을 좀더 발전시킨 것이 바로 Layer 2 스위치랍니다.

소프트웨어적으로 동작하던 것을 하드웨어적으로 동작하게 만들고 몇가지 필요한 기능들을 추가하고 이러면서 현재 네트워크에서 대부분 핵심 네트워크 장비로 사용되고 있는 것이죠.....

블로그 이미지

Link2Me

,
728x90

본 자료는 제가 2000년 초반에 네트워크 공부하면서 정리해둔 자료를 옮겨 적은 자료입니다.

강좌식으로 작성한 것이라 말이 짧더라도 양해를 부탁드립니다.


허브가 생긴 모양은 위의 그림처럼 생겼다.

그러면 허브를 통해 컴퓨터를 여러대 연결하고 TCP/IP소프트웨어를 깔고 각각의 IP주소를 설정하고 나면 각 단말간에 통신이 잘 된다..

그럼 여기서 허브가 도대체 어떤 기능을 하길래 통신이 서로간에 되는 것일까?

한마디로 말하면 허브를 하는 기능이 없는 깡통이나 마찬가지다.

단순히 하는 기능이라곤 컴퓨터에 연결된 UTP케이블을 최대 100m까지 신호전송이 가능하게 하는 기능과 약해진 신호를 재생해주는 repeater기능을 하는 아주 단순한 장비이다.

그림을 오른쪽처럼 논리적으로 그려서 표현하면.....

하나의 케이블에 여려대의 컴퓨터가 연결되어 통신을 하려고 한다는 것이다....

컴퓨터가 2대만 있으면 아무런 걱정이 없을 것이다. 그러나 불행히도 많은 컴퓨터들이 하나의 케이블을 이용하여 통신을 하려고 한다.

마치 자동차에 비유를 하자면 1차선 도로에 자동차 4대가 A → B까지 가려고 한다거나 A → D로 가려고 할 때 1차선 도로이므로 도로에 차량이 지나가서는 안된다.

즉 자동차가 아무것도 도로를 다니지 않는다는 것을 항상 감시하고 있어야 한다는 것이다.

아무런 차량이 지나가지 않아서 A자동차와 D자동차가 동시에 출발했다면 중간에서 충돌(collision)이 발생할 것이다.

이와같이 1차선 도로에 자동차가 충돌없이 잘 지나다니도록 하는 기법이 통신에서 CSMA/CD기법이라고 하는 것이다.

CSMA/CD는 Carrier Sense Multiple Access with / Collision Detection의 약자로 현재 가장 많이 보급되고 있는 LAN의 액세스 방식이다.

다시 한번 말하지만 허브는 하는 기능이라곤 선을 연결해주는 기능외에는 없다. 실제로 모든 기능은 컴퓨터상의 LAN카드가 다 알아서 동작하는 것이라고 봐도 무방하다.

여기서 여러분들이 아셔야 할 가장 중요한 특징은 이더넷방식의 LAN은 물리적인 회선 1개에 논리적인 회선이 몇 개???

논리적인 회선이 1개라는 것이다.

전용회선 T1이나 E1방식은 물리적인 회선 1개에 논리적인 회선이 24개 채널 또는 30채널이나 된다...

채널이 많다는 이야기는 장비가격이 비싸다는 이야기로 통한다.....

여러분들이 사용하는 LAN카드 한 개 가격이 얼마???? 엄청나게 싸다는 것을 알 수 있을 것이다.

허브도 엄청나게 싸다... 요놈도 하는 기능이 단순하니까!!!!!!

실제로 이더넷 프레임이 A → B로 전송이 되는 과정중에 다른 단말이 통신을 시도하면 전기적인 신호가 서로 간섭되어 충돌이 발생하여 이상전압이 발생하게 된다.

통신을 하는 놈들은 바로 LAN카드와 LAN카드들이라는 것이다.

LAN카드에 보면 케이블이 정상적으로 연결되면 LED가 깜빡깜빡하는 것을 보게된다... 이것 뭐하느라고??? 바로 케이블상에 데이터가 흘러다니는지 감시하느라고 항상 깜박이는 것이라구....



위의 그림처럼 동시에 전송하게 되면 허브에 연결된 모든 단말에 다 영향을 미치게 된다. 왜냐구?? 허브에 물린 모든 단말들은 1개의 케이블상에 여러대의 단말들이 줄줄 물려있는 꼴이니까~~~~

그래서 동시에 데이터 전송을 하게되는 단말은 몇대?? 2대일까?3대일까??

정답 하나의 단말 (이유는 1차선 도로로 동시에 지나갈 수 있는 자동차는 1대인 것이나 마찬가지)

단말A가 데이터를 전송할 것이 100개이고 단말B가 전송할 데이터가 50개이고 단말 C가 전송할 데이터가 40대라고 가정한다면 여기서 단말 A가 하나의 데이터를 전송하고 나서 연속적으로 데이터를 전송한다???

우선 아니다. 그러면 다른 놈들이 불평하잖아... 다른 놈들도 공정하게 기회를 줘야쥐...

공평하게 기회를 줄려고 하니까 일정시간동안 대기를 한 후에 케이블상에 데이터가 흘러다니지 않다는 것을 알고서 전송을 시도한다는 것이고 여기서 다행히 다른 놈들이 전송을 안하게 되면 이상없이 계속해서 데이터 전송을 하게 된다는 것이쥐....

그럼 단말들이 주렁주렁 30대 50대정도 허브에 달려있다면 어떻게 되겠어???

데이터 날리려고 시도하는 단말들이 많어질 것이고 충돌(collision)이 발생할 확률이 많이지게 되는 것이지....

충돌이 발생하면 대기하는 시간이 길어지게 되고 계속해서 충돌이 발생하면 데이터통신이 힘들어지게 되고 왜 이렇게 인터넷이 느려지는 것이야!!! 증말 짜증난다는 소리를 하게 되는 것이라구.....

아하 그래서 허브는 Collision Domain이 하나라고 하는 것이구나~~~~~



10Mbps전송속도를 가진 이더넷에서 최대로 연장가능한 케이블 길이는 약 2500m정도 이다.

너무 길면 충돌이 발생했을지라도 전기적인 신호가 약해 전달이 안되 멀리있는 단말은 충돌감지를 못해 데이터 전송을 시도할 것이고 또 충돌이 발생하게 되어 제대로 된 통신은 불가능하게될 것이다.

그러면 broadcast domain이라는 것은 뭐나구???

하나의 케이블에 여러대의 단말들이 주렁주렁 달려 있으니까 기왕에 보내는 것 모든 단말들이 다 받으라는 데이터 패킷을 전송하면 얼마나 좋겠어....

그래서 모든 단말들이 다 받으라고 날리는 패킷을 broadcast 패킷이라고 하는 것이야.....

그럼 이것 많이 날리면 지장은 없나???

당연히 지장이 많지...

왜냐하면 이 패킷이 발생하면 LAN카드가 하는 기능이 약간 더 수고를 해야 하거든....

그래서 컴퓨터 CPU를 인터럽드해서 컴퓨터에 일을 시키는 것이지 ....

다행히 내가 받을 패킷이면 다행이지만 내가 받을 패킷도 아닌데 받아서 쓸데없이 일을 더해봐...

얼마나 짜증나겠어....

그럼 이런 허브가 가진 통신방식을 개선하고자 나온 것이 바로 브릿지라고 하는 장비야..

바로 충돌영역을 나누는 장비지...

이것은 다음에 설명할 것임....

 

**

일반적으로 한 충돌 도메인에 30대 정도의 노드가 접속되면 이더넷의 성능이 떨어진다고 하는데 어떻게 사용하느냐에 따라 30대가 안되더라도 성능이 크게 저하되는 경우가 있다.
하나의 충돌 도메인에 접속된 노드가 너무 많을 경우에는 과잉 충돌에 의해 네트워크의 성능이 만성적으로 저하된다. 그래서 네 트워크 전체의 트래픽을 줄이는 대책을 강구해야 한다. 클라이언트나 NOS의 튜닝, 스위치의 도입을 검토하는 것 등이 그 대책이다.
뭐 요즈음에는 거의 다 스위칭허브라서 요런 것은 크게 문제가 되는 것은 거의 없다고 보시면 됩니다.....

블로그 이미지

Link2Me

,