engineering/Network Eng.2006. 8. 11. 13:51


                 10M Ethernet
    C3550 <----------------------> PC(tftp server)


위와 같이 스위치에 IOS image(1Mbyte size)를 down 받는다고 할때, packet size나 기타 다른 조건들의
변경으로 down load 속도는 어떻게 차이가 날 수 있는지 대략적인 예를 들어서 설명해 보겠습니다.
10M Ethernet이니 Physical 전송 speed는 1/10000000 = 0.1us입니다.


대략 속도에 영향을 주는 delay factor는 Processing Delay와 Queueing Delay, Transmission Delay,
Propagation Delay의 4가지를 생각해 볼수 있습니다.   


Processing Delay는 tftp server S/W가 IOS image file을 읽어서 physical로 전송하기 위해서
실제로 physical로 전송을 담당하는 device나 processor가 읽어갈수 있는 장소(이하 queue)에
packet을 가져다 놓을때까지 걸리는 시간과 같이 S/W가 data를 전송하기 전에 handling하는데 걸리는 시간입니다.

Queueing Delay는 Application에서 앞서 보내려 했던 packet이 완전히 physical로 전송되기 전에 다시 queue에
packet을 write하여, 실제적인 transmission이 시작되기까지 queue에서 대기하는 시간입니다.

Transmission Delay는 Queue에 있던 packet이 완전히 phyisical link로 전송되는데 걸리는 시간입니다.

Propagation Delay는 physical midium을 타고 data(bit)가 상대편 수신부까지 전달되는데 걸리는 시간입니다.

전기의 전달 속도는 빛의 2/3 정도 계산하여 2.1*10E8으로 계산된다고 하며, 근접한 거리의 경우 다른
delay factor들에 비해 무시할만큼 작은 값이 되므로 이번 계산에서는 무시합니다.
(WAN 구간으로 100Km를 넘는 경우라면 절대로 무시할만한 시간이 아니겠지요. 인공위성을 통한 경우에는
더더군다나 무시할 수 없습니다. 단방향 delay가 약 500ms정도나 됩니다.)

Processing delay는 CPU의 부하 상태에 따라서 달라질수 있고, 때로는 매우 커질수도 있습니다.
이번 계산에서는 편의상 10ms로 가정하고 계산해 보겠습니다.


계산상의 편의를 위해서 header등을 모두 무시하고, 실제로 physical로 전송되는 packet size를 100byte(800bit)와
1000byte(8000bit)로 가정하고 계산을 해보겠습니다. 각각 Transmission dealy는 80us와 800us가 되겠지요.


첫째, packet by packet 단위로 ack를 받고 전송하는 경우
100byte씩 보낼 경우 총 10000번 전송을 해야하고, 1000byte씩 보낼경우 1000번을 전송해야 합니다.
(Tx Processing Delay + Transmissiong Delay  + Rx Processing Delay) * 송수신 반복 횟수
100byte   : (10000us + 80us + 10000us) * 10000 = 200800000us(약 200초)
1000byte : (10000us + 800us + 10000us) * 1000 = 20800000us(약 20초)
위에 보신 결과와 같이 packet by packet 단위로 ack를 주고 받는 경우, processing delay나 propagation delay가
transmission delay에 비해 매우 큰 경우 packet을 크게 잘라서 보내야 down loading 속도가 빨라집니다.


둘째, 첫째와 같이 다른 delay factor들로 인해 ack를 매번 받으면 많은 시간이 걸리기 때문에 Sender Buffer와 Receive Buffer를 두고,
일정 갯수의 packet을 Ack없이 연속적으로 보내는 경우.(TCP의 Accumulate Ack)  Windown Size를 10으로 가정해 보겠습니다.
즉, 10개를 연속 보낸후에 Ack을 받고 다시 10개를 연속 보내고, 또 Ack를 받고 하는 식의 방법입니다.
100 byte  : (10000us * 10 + 80 * 10 + 10000us) * 1000 = 110800000us(약 110초)
1000byte : (10000us * 10 + 800*10 + 10000us) * 100   =  11800000us ( 약 11.8초)

좀 빨라졌지요. ^^


위와 같은 결과를 볼때 FTP로 화일을 다운 받거나 할때, 속도를 빨리 하려면 어떻게 하는게 좋을까요.
가능하면 packet size를 크게 하고, window size도 가능한만큼 크게하면 속도가 빨라 집니다.

FTP나 HTTP같은거 실행하시고, etherial로 한번 확인해 보세요. packet size는 MTU일꺼고, window size도
data link의 품질 신뢰성이 높을수록 크게 잡게 될것입니다.


도움이 되는 글이었나요??? ^^


출처. 네트워크 전문가 따라잡기 -  오리님의 글

Posted by theYoungman
engineering/Network Eng.2006. 8. 11. 13:46

1. Process Switching
라우터가 각각의 패킷을 전송할 때마다 라우팅 테이블을 확인하고
넥스트 홉을 결정하여 패킷을 전송하는 방식을
Process Switching 이라고 합니다
이 방식은 라우터의 CPU에 많은 부하가 걸리고 스위칭 속도도 느립니다
패킷별로 로드 밸런싱(Load Balancing)이 이루어집니다
즉 각각의 패킷별로 스위칭을 하기 때문에 목적지로 가는 경로가 2개 있을 경우에는
패킷별로 한번씩 한번씩 다른 경로로 전송합니다
- 라우터에 세팅하는 방법 -
Process Switching 방식으로 동작시키려면 해당 인터페이스에
Router(config-if)#no ip route-cache
명령을 입력하면 됩니다

2. Fast Switching
라우터가 특정 목적지로 전송되는 패킷에 대하여
처음 한번은 Process Switching을 하고
두 번째부터는 처음 Process Switching 때 만든 캐쉬 정보를 이용하여
패킷을 전송하는 방식을 Fast Switching 이라고 합니다
Default Switching 방식입니다
이 방식은 목적지별로 로드 밸런싱(Load Balancing)이 이루어집니다
- 라우터에 세팅하는 방법 -
Fast Switching 방식으로 동작시키려면 해당 인터페이스에
Router(config-if)#ip route-cache
명령을 입력하면 됩니다

3. CEF(Cisco Express Forwarding) Switching
Fast Switching 방식을 다음과 같이 개선한 방식입니다
Fast Switching 방식은 처음 한번은 Process Switching을 해야 캐쉬가 생성되지만
CEF Switching 방식은 처음부터 라우팅 테이블을 캐쉬로 복사해 놓습니다
캐쉬를 검색하는 속도도 더 빠릅니다
Fast Switching 방식은 목적지 주소와 그 목적지로 가는 경로를 기록하지만
CEF Switching 방식은 목적지 주소와 함께 출발지 주소, 목적지로 가는 경로가 기록됩니다
이 방식은 출발지 -> 목적지별로 로드 밸런싱(Load Balancing)이 이루어집니다
단, interface mode로 들어가서 ip load-sharing per-packet 명령을 넣어주면 패킷별로 로드 밸런싱 가능

- 라우터에 세팅하는 방법 -
CEF Switching 방식으로 동작시키려면 전체 설정모드에서

Router(config)#ip cef
명령을 입력하면 됩니다
라우터에서 특정 인터페이스의 스위칭 방식을 확인하려면

Router#show ip interface
명령어를 사용하면 됩니다


Posted by theYoungman
engineering/Network Eng.2006. 8. 11. 13:45

rfc2004

Minimal Encapsulation for IP


  The format of the minimal forwarding header is as follows:

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |   Protocol    |S|  reserved   |        Header Checksum        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                 Original Destination Address                  |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  :            (if present) Original Source Address               :
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

rfc2784

The GRE packet header has the form:

   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |C|       Reserved0       | Ver |         Protocol Type         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Checksum (optional)      |       Reserved1 (Optional)    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


저놈들이 ip within ip와 gre의 packet header form입니다.

ip within ip는 말그대로 ip만을 위한 것입니다. ip header위에 그대로 또다른 ip address를 하나 더 가지고 있는것입니다.

하지만 gre는... 좀 다르죠... protocol type이라는 field가 있습니다.

여러 프로토콜을 보내고자 하는 목적지로 마음대로 보낼수가 있다는게 gre의 특징입니다.

ipip는 mobile네트웍 환경에서 많이 쓰인다고 합니다. 추축컨데.. unicast를 이용한 anycast를 흉내내기 위한 방법으로 사용이 될거 같네요..

그리고 gre는.... 광범위하죠... 말 그대로 routing encapsulation도 가능하고...


출처.

네트워크 전문가 따라잡기. - skullq 님의 답변

Posted by theYoungman
engineering/Network Eng.2006. 8. 11. 13:43

>답변 감사합니다.
>많은 도움이 되었습니다.
>그리고 아래 내용은 제가 궁금한 점이 있어서 한번더 질문이 있어서 이렇게 글을 보냅니다.
>
>답변 한번더 부탁드리겠습니다.
>
>
>
>
>>현재 사용하는 트래픽과 그쪽회사의 특성을 알수있다면 좀 다른것을 제안해 드릴수 있습니다.
>>방법은 많으니까요... ^^
>>
>>일단 이중화 하기 위해서 bgp를 사용할 경우에 대해서 말씀을 드리면..
>>AS가 있어야 하겠죠? 그리고 독립적인 IP를 krnic에서 할당을 받아야 합니다.
>>가능한가요?
>
>
>-->이 말씀은 이중화를 위해서는 BGP를 반드시 사용 해야 한다는 것으로 인식을 하면 되는 겁니까?
>BGP AS 넘버는 Krnic에 신청할 예정입니다.
ip분담금과 1년에 300만원정도의 AS사용료를 감안할 만큼 그리고 해외망까지 계약할경우 들어가는 비용을 지불할수 있을만큼 망이 크거나 중요하다면.. 그리 해야 할것입니다.

>
>>
>>만약 되었다면 bgp를 peering을 맺는뎅.... 이중화가 목적이고 하나가 active 그리고 하나가 standby라면..
>>bgp는 맺되 라우팅은 받지 않아도 전혀 상관없습니다...
>>그리고.. 해외망을 사용해야 하기 때문에 그건 나중에 생각하시면 됩니다.
>
>--> 인터넷 서비스에 관련있는 부분이라서 단순 회선 이중화는 아니고, 대역폭까지 고려한 내용으로 알고 있습니다.
그렇다면... 회선 이중화에 회선의 트래픽이 50%를 넘지 않도록 유지하는 정책을 세우면 될거 같습니다.


>>
>>국내라우팅은 16메가로도 충분할겁니다. 4000개정도...
>>해외망 라우팅을 받아야 할 이유가 전혀 없을겁니다... -.-
>
>--> 혹시 해외망의 라우팅 Table을 받지 않는 것이 라우터 설정상 있는 것인지 궁금합니다.
>아님 기존 ISP에서 라우팅 정보를 보내지 않아서 굳이 라우터에 설정이 필요 없는지 궁금합니다.
bgp는... 무조건 내 자신을 advertisement 해야 합니다. 이유는.. 그걸 보고 다른AS에 있는 네트웍이 들어오도록 하기 위한거죠.
만약 multi-homed 상황이 된다면 또 각 ISP의 회선을 하나의 라우터에만 물리시겠다면... 이야기는 정말 다르게 흐릅니다.
그건... 그때그때 다르오니 정확한 정보를 주시면 더 자세히 설명해드릴수 있습니다.


>>
>>route-map test-IN (in | out)
>>bgp를 제어하는 시스코라우터 설정입니다.
>>제어방법은 여러가지가 있는데.. 그것들을 적용하게끔 하는게 바로 route-map 입니다.
>>
>>soft-reconfiguration inbound는 bgp위 soft restart라고 생각하면 됩니다.
>>bgp routing을 clear하게되면 모든 라우팅 정보가 사라지고 그와동시에 통신이 단절되어 버립니다.
>>그래서 현재의 설정을 그대로 메모리에 쥐고있으면서 clear하면 새로운 정보를 받아서 메모리에 넣어놓고 현재의 설정과 빨리 바꿈으로써 서비스가 멈추지 않게끔 하는 기술입니다.
>
>--> 혹시 아래 내용중 2600/3600/3745등의 장비에서 BGP사용시 Traffic이 어느정도 까지 설정이 가능한지 궁금합니다.
>그리고 혹시 3750, 4900등의 장비에서 BGP를 사용할 경우 외부에서 Traffic을 어느정도까지 감당할 수 있는지 궁금합니다.
어느정도의 트래픽이라는건 data sheet에 보시면 나올겁니다.. 하지만 2600/3600는 권장하고 싶지 않고요 좀 힘들어 할수도 있겠네요...
3745는 장비를 잘 모릅니다.
그리고 L3 스위치들은 글쎄요.... 보통~ 그렇게 하진 않지만.. 가능할거 같네요... 오히려 더 좋은 퍼포먼스를 얻을수도....



>
>>
>>>안녕하세요.
>>>항상 좋은 자료 보고 갑니다.
>>>
>>>이번에 사이트에 요청이 있어서, ISP이중화에 대한 문제가 대두 되었습니다.
>>>
>>>그래서 여러 자료를 찾다 보니.. BGP에 대한 자료가 많이 나오더군요...
>>>
>>>1. BGP를 이용하지 않고 ISP이중화 방안이 있는지 궁금합니다.
>>>ISP를 이중화 하기 위해서 BGP를 사용 하는 것이 일반적이기는 하지만, 매달 나가는 금액도 따로 있고, routing 정보의 수가 만만찮아서 장비의 spec이 높아야 하는 것으로 알고 있습니다.
>>>그래서 혹시 ISP를 이중화 하는데 BGP이외의 방법이 있는지 궁금합니다.
>>>
>>>2. BGP를 하다보면 보통 routing table 이 4000개 이상, 전세계적으로 10만개가 넘는다고 들었습니다.
>>>혹시 이 모든 routing table을 제어 하는 방법이 있는지, 궁금합니다.
>>>
>>>route-map test-IN in
>>>route-map test-OUT out
>>>이라는 것이 하는 역할이 뭔지 궁금합니다.
>>>
>>>3. soft-reconfiguration inbound라는 부분이 나오는데, 찾아보니, routing정보를 받아 오기 위한 것으로 되어 있던데, 정확하게 사용하는 이유가 뭔지, 12.2이상에서는 사용하지 않아도 된다고 하던데 정확한 내용인지 궁금합니다.
>>>
>>>4. 2620/3640/3745 등의 라우터 장비를 이용해서 BGP를 구현 하는데 문제 점이 있는지, 만일 사용할려면 Memory를 upgrade하면 되는 것인지 확인 부탁드립니다. 자료를 찾아보니, 3640/3745 경우 64M 정도가 최소 사양이고, 128M를 recommend한다고 되어 있던데, 실질적으로 2620/3640/3745 장비를 사용할 경우 괜찮은 건지 궁금합니다.
>>>
>>>이상입니다.
>>>
>>>답변부탁드립니다.

출처.
네트워크 전문가 따라잡기
// skullq 님의 답변


Posted by theYoungman
engineering/Network Eng.2006. 8. 11. 13:36
출처 블로그 >   ◈ 쭌 날다 ◈  
원본 http://blog.naver.com/uliel7719/17866891

1. The three-way TCP handshake

TCP
장치들 사이에 논리적인 접속을 성립(establish)하기 위하여 three-way handshake 사용한다.

Client > Server : TCP SYN
Server > Client : TCP SYN ACK
Client > Server : TCP ACK

여기서 SYN 'synchronize sequence numbers', 그리고 ACK'acknowledgment' 약자이다.
이러한 절차는 TCP 접속을 성공적으로 성립하기 위하여 반드시 필요하다.

TCP
windowing 사용한다. (윈도우는 현재 네트웍 혼잡과 수신 용량에 따라 조정될 있는 데이터 플로우의 크기)

구체적인 TCP three-way handshake 과정은 다음과 같다.

요청 단말(클라이언트) 아래 요소를 포함하는 서버에게 TCP SYN 세그먼트를 송신
-
연결하고자하는 서버의 포트 번호
-
클라이언트의 Initial Sequence Number (ISN)
-
옵션인 Maximum Segment Size (MSS)


TCP SYN ACK
아래와 같은 SYN 정보를 가지고 있는 서버의 응답
-
서버의 ISN
-
클라이언트의 ISN + 1 대한 ACK
-
옵션인Maximum Segment Size (MSS)

서버의 SYN 대한 클라이언트의 ACK (TCP ACK)
-
서버의 ISN + 1

TCP
통한 TCP 통신의 분석 , MSS 접속 시간내에 다른 peer에게 알리며 MSS 옵션이 존재하지 않으면 디폴트로 536 bytes 사용한다는 사실을 명심하라. (이것은 디폴트 IP MTU 576 bytes에서 20-bytes IP 헤더와 20-bytes TCP 헤더를 값이다.)
옵션인 MSS 일반적으로 클라이언트와 서버 사이의 경로상의 Maximum Transmission Unit (MTU)에서 프로토콜 오버헤드를 값이며 네트웍 계층(Network Layer) 헤더를 포함하고 있다. 예를 들어, Ethernet 대하여 요구되는 MSS 1460 bytes 이며 IEEE 802.3 대한 것은 1452 bytes 이다. (8-byte LLC SNAP 헤더에 대해 허용) 만약 어떤 네트웍 사이에 MTU 대해 세그먼트 크기가 너무 크면 필요하지 않은 IP Fragmentation 발생할 있음에 주의하라.


2. TCP Retransmissions

TCP
수신자의 윈도우 크기에 따라서 다수의 TCP 패킷의 데이터를 전송하므로써 시작되며 수신자의 ACK 인지 되는 버퍼 크기 (윈도우 크기) 허용되는 비율만큼 계속 전송된다. 만약, TCP 세그먼트가 ACK 보지 못하고 패킷이 유실되면 송신자는 반드시 어떤 순차적인 세그먼트를 다시 보내야 한다.
하나의 TCP 패킷 재전송에 대해 오직 하나의 패킷에 대한 재전송으로 생각하지는 말아야 한다.

패킷 재전송이 발생하는 상황:

-
전송되는 TCP 세그먼트 혹은 되돌아온 ACK 스위치나 라우터에의해서 유실(dropped) 되는 경우
-
패킷이 전송하는 동안 손상될 (패킷은 CRC 에러를 가지고 있음)
-
패킷의 TCP 데이터 부분이 스위치나 라우터에 의해서 손상될 (TCP 체크섬 에러 발생)
-
수신자가 패킷을 버퍼에 저장할 없을
- TCP
세그먼트가 fragment 되고 fragment 손상되거나 유실(dropped) 될때
- ACK
너무 늦게 돌아오고 송신자가 하나 혹은 이상의 세그먼트를 재전송

만약 ACK 수신되지 않으면 세그먼트는 다시 전송하지만, 첫번째 대기 시간의 두배가 된다. TCP 스택은 접속의 round-trip 시간에 기반하여 초기 timeout 값을 동적으로 계산한다.
각각의 성공적인 재전송은 이전 시도의 두배로 연기된다. TCP 스택은 포기하기 전에 미리 정해진 시간 만큼 시도할 것이다. Windows 95/98/NT 상에서 디폴트 설정은 5번의 시도로 레지스트리상에 설정되어 있다.

Expert
시스템이 없는 Protocol Analyzer 가지고도 다음과 같은 3가지 순서에 따라 TCP 대한 재전송을 인지할 있다:

1. Analyzer
상의 display 버퍼상에서 통신하고 있는 IP 스테이션의 두쌍에 대한 필터를 적용한다.
2.
성공적으로 전송된 패킷 사이의 대략 1초의 3/1 해당하는 long delay 혹은 주요 delay들을 관찰한다.
3.
이전의 패킷에 대하여 전송하는 sequence number 체크한다. 오리지널 전송은 몇몇 패킷 이전에 위치할 있음을 명심하라.

각각의 패킷 사이의 long delta 시간과 주요 delay 지시되는 패킷 재전송을 확인하라.
이러한 패킷 재전송의 증거는 패킷내의 sequence number 동일하다는 것으로 증명될 있다.
, TCP 패킷 재전송은 sequence number 동일하다는 것을 의미한다.

가지 경우, Analyzer 버퍼 상에 그런 재전송이 발생하는 지에 대한 실마리가 이미 있다.
가지 가능성은 다음과 같다.

-
이전 세그먼트 혹은 ACK CRC 에러를 가지고 있다. (Ethernet)
-
토큰링 상에서 스테이션은 대략 2초후에 소프트 에러를 보고한다.
-
이전 패킷에서 TCP 체크섬 에러는 가능한 브리지 혹은 라우터의 손상을 나타낸다.
-
이전 패킷의 TCP 체크섬 에러와 현재 패킷이 재전송되고 있는 패킷은 송신자의 문제이다.
(
예를 들면, TCP 체크섬이 올바르게 계산되지 않을 있다.)
-
유실되거나 지연된 ACK 있을 경우, Analyzer 다른 세그먼트로 이동해서 문제를 정확하게 지적해야 한다.

만약 특정한 서버나 워크스테이션에서 많은 수의 TCP 재전송이 의심되면 netstat 명령어를 사용할 있다.
Netstat
명령의 일반적인 사용 (netstat –r)으로 라우팅 정보 - 예를들면 서버나 워크스테이션과 연관된 라우터등의 route table 얻을 있다. Netstat 명령으로 또한 “netstat –s” 사용하여 프로토콜 통계에 대한 정보를 얻을 있다. Windows 95/98/NT 상의 netstat 명령은 특정 프로토콜을 명시할 있다.
예를 들어, “netstat –s –p tcp” 명령으로 특정 NT 서버의 대한 다음과 같은 정보들을 얻을 있다.

C:\>netstat -s -p tcp

TCP Statistics

Active Opens = 204
Passive Opens = 734
Failed Connection Attempts = 2
Reset Connections = 263
Current Connections = 2
Segments Received = 44759
Segments Sent = 26058
Segments Retransmitted = 15

Active Connections

Proto Local Address Foreign Address State
TCP elca:1123 64.12.24.58:5190 ESTABLISHED
TCP elca:1549 203.231.222.194:pop3 TIME_WAIT
TCP elca:1553 203.231.222.194:pop3 TIME_WAIT
TCP elca:31510 test.iworld.co.kr:1635 ESTABLISHED

상기의 netstat 예제를 보면 26,058 TCP 세그먼트가 서버에 의해 전송되었고 15개의 재전송이 발생하였다. 이것은 1% 보다 작다. 만약, 퍼센트가 이보다 높아진다면 다음 순서는 Analyzer 서버의 세그먼트에 Tapping하여 TCP 트래픽을 조사해야 한다.

Sniffer Expert System
Symptom 설명

-
중요도: Minor

-
현상: 메시지는 특정 TCP 패킷의 순서 번호가 이전 것과 비교하여 같거나 작을 , 이전에 이미 전송된 TCP 세그먼트에 대한 ACK 신호를 받지 못하여 시간 초과 상태에서 해제되었던 패킷이 재전송되었을 경우에 발생한다.

-
원인:
.
네트웍 트래픽이 정체되었을 경우
.
수신하는 스테이션이 과부하 상태인 경우
.
라우터가 과부하 상태이거나 다른 이유로 전송지연이 되는 경우
. ACK
신호를 보냈지만 유실된 경우
.
원래의 패킷이나 ACK 손상을 입은 경우
. ACK
신호가 늦은 경로로 전송되었을 경우
. IP
조각을 읽어버린 경우
.
네트워크의 완결성에 문제가 있는 경우

# netstat -an

LISTEN

서버의 데몬이 떠서 접속 요청을 기다리는 상태 (서버 애플리케이션에서 수동적 열기로 연결 요청을 기다리고 있는 상태)

SYN-SENT

로컬의 클라이언트 어플리케이션이 원격 호스트에 연결을 요청한 상태 (원격 호스트에 능동적인 개설 요청(능동적 열기))

SYN_RECEIVED

서버가 원격 클라이언트로부터 접속 요구를 받아 클라이언트에게 응답을 하였지만 아직 클라이언트에게 확인 메시지는 받지 않은 상태 (네트워크 통한 연결요청 받음(수동적 열기))

ESTABLISHED

3 Way-Handshaking 완료된 서로 연결된 상태

FIN-WAIT1

능동적 닫기(active close) 요청을 상태

CLOSE-WAIT

수동적 닫기를 하고 있는 상태로 FIN 종결 세그먼트를 수신하고 이에 대한 확인 메시지를 전송한 상태

FIN-WAIT2

로컬에서 종결(FIN)세그먼트를 전송하였고 원격 시스템에서 이에 대한 확인메시지를 수신하였지만 원격 애플리케이션이 작업을 종료하지 않아 원격 호스트 종결 세그먼트를 기다리는 상태

LAST_ACK

FIN 종결 요청을 받고 로컬에서도 회선 종결에 합의하여 종결을 요청(FIN) 상태로 이에 대한 확인 메시지가 수신되면 회선이 종결됨

TIME-WAIT

연결은 종료되었지만 분실되었을지 모를 느린 세그먼트를 위해 당분간 소켓을 열어놓은 상태

CLOSING

로컬 TCP FIN_WAIT_1에서 설명한대로 FIN 종결 세그먼트를 전송하였고, LAST_ACK에서 설명한대로 원격 시스템의 종결 세그먼트도 수신하였지만 FIN_WAIT_1 단계에서 전송한 세그먼트에 대한 확인 메시지(ACK) 수신하지 못한 상태로 보통 확인 메시지가 전송 도중 분실되었다는 것을 나타냄. (흔하지 않지만 주로 확인 메시지가 전송도중 분실된 상태)

UNKOWN

소켓의 상태에 대해서 확인이 안되는 경우

CLOSED

완전히 종료, 회선 종결.



- 출처: Elca Ryu (AnalysisMan.com)

Posted by theYoungman
engineering/Network Eng.2006. 8. 11. 13:21

SNMP(Simple Network Management Protocol)

SNMP?

1970년대 후반 네트워크 장치인 연결 정보를 얻기 위한 일종의 관리 프로토콜인 ICMP(Internet Control Management Protocol)이 처음 사용되었다. 1989년 기존의 프로토콜 기능을 향상시킨 SNMP로 통합되었다.

SNMP 관리 구조

SNMP는 매니저와 에이전트의 구조로 이루어져 있다. SNMP 에이전트는 각 네트워크 장치에 장치된다. 그리고 정해 놓은 규격에 따라 장치의 정보를 수집하고 보관한다. SNMP 매니저는 에이전트와 독립적인 장소에 존재하며, 네트워크에 분포된 SNMP 에이전트의 정보를 수집해서 전체 네트워크를 관리한다.

SNMP 매니저를 정보를 수집하기 위해서 Request 메시지를 에이전트에 전송하고 에이전트는 Response 메시지를 사용해서 자신의 정보를 매니저에게 보낸다. 에이전트가 수집할 정보의 내용을 정해놓은 규격을 MIB(Management Information Base)이라고 한다.

SNMP 데이터 수집 방법

에이전트의 내용을 매니저에게 전달하는 방법은 폴링과 이벤트 리포팅의 두 가지 방법이 있다.

            Polling                              manager | --- request à | Agent

                                                                 | ß response -- |

            Event reporting                manager | ß-- trap ---- | Agent

Polling

요청에 응답

매니저가 에이전트에게 원하는 정보를 요구하면 에이전트는 매니저가 원하는 정보를 찾아서 응답한다. 간단하지만 트래픽을 많이 사용하는 단점이 있다.

Event reporting

특별한 이벤트가 발생했을 경우에 전송되며 트랩이라고 한다.

SNMP 변천사

1989년 처음 발표된 SNMP는 현재 ver.3까지 발표 되었다.

1.       SNMP

2.       SMP(Simple Management Protocol) : 성능향상

Secure SNMP : 보안기능 향상

3.       SNMPv2(party) : 위 두 가지를 통합

4.       SNMPv2c(Community) : 보안 기능 제거, SNMP 인증 방식으로 복귀

SNMPv2USM : User Security Model 추가

5.       SNMPv3

SNMPv3

모듈화로서 기존의 매니저/에이전트 패러다임을 SNMP 개체(entity)로 바꾼 것이다. 이것에 의하면 SNMP 개체는 구성된 모듈에 따라서 매니저가 될 수고 있고 에이전트가 될 수도 있다.

RMON(Remote Monitoring)의 경우 v1은 SNMP를, v2는 SNMPv2를 기반으로 정의되었고, 현재 가장 많이 사용하고 있는 버전은 SNMPv2c(community)이다.

SNMP 프로토콜 스택

SNMP는 TCP/IP 프로토콜 스택에서 응용계층의 프로토콜이다. SNMP 메시지를 전송하는 전송계층 프로토콜은 UDP를 사용한다. SNMP는 UDP의 161, 162 두 개의 포트를 통해서 메시지를 주고 받는다.

SNMP 메시지의 종류

SNMP에서 에이전트와 매니저가 주고 받는 메시지는 총 다섯 개이다.

메시지 종류

설명

Get-Request

에이전트가 관리하는 MIB에서 지정한 객체를 가져온다.

Get-Next-Request

에이전트가 관리하는 MIB에서 지정한 객체의 다음 객체의 값을 가지고 온다. 이것은 MIB항목에 테이블로 되어있는 경우에 사용한다

Set-Request

에이전트가 관리하는 MIB의 지정한 객체의 값을 설정한다.

Get-Response

매니저의 요청에 대한 결과를 되돌려 준다.

Trap

에이전트에 특별한 이벤트가 발생할 경우에 이를 매니저에게 알린다.

정상적인 요청/응답은 161번 포트, 트랩 메시지는 162번 포트를 사용한다.

SNMP 정보 관리 방법

SNMP는 이 기종의 시스템에서도 TCP/IP를 통해서 정보를 교환해야 하기 때문에, SNMP만의 독자적인 정보 관리 방법을 가지고 있다.

SMI(Structured Management Information)

SNMP MIB 들을 정의하기 위한 일반적인 구조이다.

MIB 객체들은 ASN.1 문법에 따라 정의되는데 각각의 객체들은 각각 이름과 표기 문법 다른 시스템으로 전송을 위한 인코딩 규칙 등을 가지고 있다. 이들은 서로 고유한 객체 식별자에 의해 구분된다.

MIB(Management Information Base)

MIB는 SNMP 관리 스키마로서 SNMP에서 관리하는 객체, MO(Managed Object)를 정의해 놓은 집단이다. MIB는 관리 객체를 정의하기 위해서 ITU-T에서 정의한다. ASN.1(Abstract Notation One)을 사용한다.

ASN.1은 객체를 설명하는 일종의 스크립트 언어이다. ASN.1으로 정의된 객체는 모두 트리 구조로 이루어져 있다.

O-ID(Object-Identifier)

OID는 MIB의 관리 객체(MO)를 지정하는 식별자(Primary Key)이다. OID는 계층구조에 따라 자신을 나타내는 번호와 이름을 가지고 있으며 부모이름도 알고 있다.

SNMP 데이터의 인코딩 방법

모든 SNMP 데이터는 인코딩 되어서 전송된다. 이것은 이 기종 시스템 사이의 데이터 독립성을 유지하기 위해서다. SNMP는 Basic Encoding Rules(BER)이라는 인코딩 방법을 사용하며 이것은 ITU-T의 X.209에 정의되어 있다.

모든 데이터는 TAG, LENGTH, VALUE 의 형식으로 인코딩 된다.

SNMP 보안 방법

네트워크 상에서 정보를 안전하게 관리하기 위해서는 컴과 네트워크의 보안이 보장되어야 한다.

SNMP는 community라는 일종의 패스워드를 사용하며, SNMP 메시지를 인증한다. 네트워크를 통해 전송되는 모든 메시지에 커뮤니티 값을 집어 넣어서 메시지 단위로 인증을 수행한다.

공개 커뮤니티 : public

관례적으로 에이전트가 공개하는 MO에 대해서는 커뮤니티 값을 public으로 설정해 놓는다. SNMP 매니저와 브라우저를 이용할 때 커뮤니티 값은 선정해 두지 않았는데, 에이전트에서 값을 가지고 왔다면, 그것은 커뮤니티 값이 public으로 설정되었기 때문이다.

접근정책 (Access policy)

SNMP는 접근하는 형태별로 다른 커뮤니티 값을 사용한다. 이러한 접근제어 방법은 SNMP MIB에 의한 접근과 SNMP 접근 모드의 관점으로 나뉜다.

MIB Access

SNMP Access

Mode

Category

Read-Only

Read-Write

Read-Only

Get, Trap 연산가능

Read-Write

Get, Trap 연산가능

Get, Set, Trap 연산가능

Write-Only

Get, Trap 연산이 가능하고 그 값은 구현에 따라 달라진다.

Get, Trap 연산이 가능하고 Get, Trap시의 값은 구현에 따라 달라진다.

Not-Access

사용불가

SNMP Trap

트랩은 에이전트에 특별한 이벤트나 사고가 발생하였을 때, 매니저의 요구가 없더라도 스스로 판단해서 매니저로 전송하는 일종의 리포트 매니저이다. 162번 포트 사용

SNMP 단점

폴링 방식을 사용하기 때문에 관리하는 객체가 늘어날수록 많은 대역폭과 매니저의 프로세서를 필요로 한다.

SNMPv2

SNMPv1의 단점이 네트워크 과부하 문제를 해결하고 관리자의 통신 방법을 확장했다. SNMPv2 메시지는 버전, 커뮤니티, PDU(Protocol Data Unit)로 구성된다.

GetBulk-Request

SNMPv1의 단점이 트래픽 부하를 해결하기 위해서 추가된 Request.

가져올 객체의 범위를 지정해서 한 메시지 안에 포함시키기에 트래픽 부하를 줄인다.

Posted by theYoungman
engineering/Network Eng.2006. 8. 11. 13:18

시스코 원문을 발췌해서 올립니다.

Rcv-Err

Number of receive errors that occurred on the port (indicating that the internal receive buffer is full).


Carri-sen

Number of times the port sensed a carrier (to determine whether the cable is currently being used).


참조 URL

Configuring and Troubleshooting Ethernet 10/100/1000Mb Half/Full Duplex Auto-Negotiation

http://www.cisco.com/en/US/tech/tk389/tk214/technologies_tech_note09186a0080094781.shtml


.

수고하세요


-------------------------------------------------------------------------------------------------

>밑에 질문한 사람입니다.

>show interface counters errors

>하면 보이는 목차중 Rcv-Err와 Carri_sen에러가 많이 떨어지는데..

>무엇을 의미하는 건지요...



출처. 네트워크전문가따라잡기 - '고공질주'님의 글

Posted by theYoungman
engineering/Network Eng.2006. 8. 11. 13:16

불필요한 Global Service 정지

Disabling service finger – Finger Service 정지
Disabling service pad – PAD(X.25) Service 정지
Disabling udp & tcp small servers – Echo,Discard,Chargen,Daytime Service 정지
Enabling service password encryption – Password 암호화 기능 구동
Enabling service tcp-keepalives-in/out – Session Keepalive Service 구동
Disabling the cdp protocol – CDP Service 정지
Disabling the bootp server – Bootp Server Service 정지
Disabling the http server – Http Server 기능 정지
Disabling source routing – IP 변조 방지를 위한 Source Routing 기능 정지
Disabling gratuitous arp – PPP connection,IP negotiation 등에 사용되는 ARP 도용 서비스 차단
Configuring aaa local authentication – AAA 생성 서비스, 외부로 부터의 접속 강화 서비스 – Telnet,Console,Aux 등…
Banner 자동 생성 기능

불필요한 Interface Service 정지

no ip redirects – icmp redirect message 차단
no ip proxy-arp – Proxy arp service 정지
no ip unreachables – ICMP unreachable service 정지
no ip directed-broadcast – Broadcast service 정지
no ip mask-reply – ICMP mask-reply 정지

성능 강화와 IP filtering

CEF Enable
Ingress Filtering – 사용하지 않는 사설 IP, IANA address
uRPF - IP 변조방지 구성

“Auto Secure” 명령어를 통한 보안 강화
  “One Touch” device lock down process – command 한줄로 라우터의 보안구성을 자동으로 실행

CPP 구성
CPP (Control Plane Policing) 구성 예제

##Access-list 작성##
Router(config)# access-list 141 permit icmp any any port-unreachable

##Class-Map 작성##
Router(config)# class-map icmp-class 
Router(config-cmap)# match access-group 141

##Policy-Map 작성##
Router(config)# policy-map control-plane-out-policy
Router(config-pmap)# class icmp-class
Router(config-pmap-c)# police 80000 conform transmit exceed drop

##Control Plane 에 적용##
Router(config)# control-plane
Router(config-cp)# service-policy output control-plane-policy

Port Security – MAC 변조 방지 기능

Switch(config)# interface fastethernet 5/12
Switch(config-if)# switchport mode access
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum 5  - 최대 허용 MAC Address
Switch(config-if)# switchport port-security mac-address 1000.2000.3000   - 허용 MAC address
Switch(config-if)# switchport port-security violation [protect/restrict/shutdown]
                         - 규칙 위반 시 Action

Port Security – MAC flooding 방어

Console> (enable) set port security 2/1 enable
Console> (enable) set port security 2/1 enable 00-90-2b-03-34-08    - 허용 MAC address
Console> (enable) set port security 2/1 maximum 20                   - 최대 허용 MAC Address
Console> (enable) set port security 2/1 violation [restrict/shutdown]  - 규칙 위반 시 Action

Port Security – 공격자 MAC 제어 기술

Attacker로 의심이 되는 특정 MAC Address 만을 Filtering
4500(config)# mac-address-table static 0050.3e8d.4444 vlan (해당vlan) drop
                     - 해당 Vlan Interface에 올라오는 MAC Address Filtering
4500(config)# show mac-address-table dynamic
                     - 현재 Switch로 올라오는 CAM Table 조회 명령

Console> (enable) set cam static filter 00-02-03-04-05-06 12(해당 Vlan 번호)
                     - 해당 Vlan Interface에 올라오는 MAC Address Filtering
Console> (enable) clear cam 00-02-03-04-05-06 12(해당 Vlan 번호)
                     - filtering 해제
Console> show cam static       - 현재 Switch로 올라오는 CAM Table 조회 명령

Multi/Broadcast Flooding 제어기술 : Storm Control (Bandwidth 대비 Percentage 적용)

Router# configure terminal
Router(config)# interface gigabitethernet 3/16
Router(config-if)# storm-control multicast level 70.5
                   - Multicast 70.5% 이상이면 억제

Console> (enable) set port broadcast 2/1 80% multicast enable
                   - Multicast 70.5% 이상이면 억제 : default packet drop
Console> (enable) clear port broadcast 2/1
                   - 구성 해제
Console> (enable) set port broadcast 4/6 90% violation errdisable
                   - Broadcast 90% 이상 이면 Interface errdisable로 만듦 

공격자 MAC 추적 기술 : L2 Trace

(Cat OS, Native IOS 지원 : 특정 MAC이 연결된 장비 및 포트 현황 추적 기능 지원)
Cat OS Layer 2 Trace를 통한 MAC address 추적
의심이 가는 Switch에서 Layer 2 trace 명령을 통한 추적

6509> (enable) l2trace 00-00-e8-34- 00-01-e6-27- detail
l2trace vlan number is 222.
Attention: Source 00-00-e8-34-d2-96 is not directly attached to this system.
Source 00-00-e8-34- found in WS-C4006 : 100.248.2.254
WS-C4006 : cat4006 : 100.248.2.254:  4/27 10MB half duplex -> 2/1-2 1000MB full duplex
WS-C6509 : cat6509 : 100.248.117.78: 3/14,4/14 1000MB full duplex
->  8/44 10MB half duplex
Destination 00-01-e6-27- found in WS-C6509 named BB_6509
on port  8/44 10MB half duplex
DHCP사용환경, IP Spoofing 시 유용한 추적

Cisco IOS Layer 2 Trace를 통한 MAC address 추적
의심이 가는 Switch에서 Layer 2 trace 명령을 통한 추적


Switch# traceroute mac 0000.0201.0601 0000.0201.0201 detail
Source 0000.0201.0601 found on con6[WS-C3750-12T] (2.2.6.6)
con6 / WS-C3750-12T / 2.2.6.6 :
Gi0/0/2 [auto, auto] => Gi0/0/3 [auto, auto]
con5 / WS-C2950G-24-EI / 2.2.5.5 :
Fa0/3 [auto, auto] => Gi0/1 [auto, auto]
con1 / WS-C3550-12G / 2.2.1.1 :
Gi0/1 [auto, auto] => Gi0/2 [auto, auto]
con2 / WS-C3550-24 / 2.2.2.2 :
Gi0/2 [auto, auto] => Fa0/1 [auto, auto]
Destination 0000.0201.0201 found on con2[WS-C3550-24] (2.2.2.2)
Layer 2 trace completed.
DHCP사용환경, IP Spoofing 시 유용한 추적

Snooping 방지 : Private VLAN

Private Vlan : 동일 Vlan 내부에서의 불필요한 Traffic 제어
Community Vlan : C-vlan 간 Host만 통신이 가능
Isolated Vlan : I-Vlan 간 Host도 통신 불가
Promiscuous Port : 모든 Pvlan Host는 P-port를 통한 외부 통신 가능

Private VLAN 생성 및  Sub VLAN 역할 담당
vlan 65
  private-vlan primary
  private-vlan association 651-653
vlan 651
  private-vlan community
vlan 652
  private-vlan isolated
vlan 653
  private-vlan community

Primary VLAN과 Secondary VLAN Association 구성
vlan 65
  private-vlan association 651,652,653
interface vlan 65
private-vlan mapping add 651,652,653

물리적 포트에 secondary vlan 할당
Router(config)# interface fastethernet 9/1
Router(config-if)# switchport mode private-vlan host
Router(config-if)# switchport private-vlan host-association 65 651

Layer 2 장비로 운용시 promiscuous port 할당
Router(config)# interface fast  9/48
Router(config-if)# switchport mode private-vlan promiscuous
Router(config-if)# switchport private-vlan mapping 65,651,652,653
※ Catalyst 4000 / 4500 series 는 Isolated VLAN 만 구성가능 / Community VLAN 구성 불가

Cat OS에서의 PVLAN 구성 방법
set vlan 65 pvlan-type primary        : Pvlan Primary Vlan 생성
set vlan 651 pvlan-type community        : Pvlan Secondary Vlan 생성 – Community Vlan
set vlan 652 pvlan-type isolated               : Pvlan Secondary Vlan 생성 – Isolated Vlan
set vlan 65 651 9/1                        : 물리적 Port에 Secondary Vlan 할당
set vlan 65 652 9/2                                 : 물리적 Port에 Secondary Vlan 할당
set vlan mapping 7 651 5/11                : Promiscuous 생성 및 할당
set vlan mapping 7 652 5/11       

Private Vlan Edge 기능
Isolated Vlan : Protected기능을 통한 특정 Host 보호간 상호 독립 기능
Protected와 설정되지 않은 Port간, G/W를 통한 외부 통신 가능

Private VLAN edge 기능 구성 예제
3550(config)# interface gigabitethernet0/3
3550(config-if)# switchport protected
3550(config-if)# end
3550# show interfaces gigabitethernet0/3 switchport
Name: Gi0/3
Switchport: Enabled
<output truncated>
Protected: True
Unknown unicast blocked: disabled
Unknown multicast blocked: disabled
Broadcast Suppression Level: 100
Multicast Suppression Level: 100

IP 변조 방지 기능 : uRPF(Unicast Reverse Path Forwarding)

DHCP request flooding 공격 방어 : DHCP snooping rate limit 기능
-> DHCP Scope Size 전체에 IP 할당을 요청하여, DHCP Server 과부하 발생 시킴


DHCP Request Flooding 공격 방어 구성 예제.
Switch(config)# ip dhcp snooping                         - DHCP Snooping enable
Switch(config)# ip dhcp snooping vlan 10                 - DHCP Snooping 적용 Vlan 정의
Switch(config-if)# ip dhcp snooping limit rate 100(pps)    - DHCP Request 허용 수치 제한

DHCP Server 위조 공격 방어 : DHCP snooping Trust 기능
-> DHCP Request 에 대해, 공격자가 거짓된 정보를 전달함

DHCP Request Flooding 공격 방어 구성 예제.
Switch(config)# ip dhcp snooping          - DHCP Snooping enable
Switch(config)# ip dhcp snooping vlan 10  - DHCP Snooping 적용 Vlan 정의
Switch(config-if)# ip dhcp snooping trust  - DHCP discover, request 등 메시지를 해당 Port만 수용

DHCP Snooping을 통한 MAC 변조 방지 기능 – ARP Inspection
DHCP Snooping을 통한 IP 변조 방지 기능 – IP Source Guard

-> ARP Inspection
S1(config)# ip arp inspection vlan 1
S1(config-if)# ip arp inspection trust
S1# show ip dhcp snooping binding
MacAddress       IpAddress     Lease(sec)     Type            VLAN       Interface
------------   ---------   ----------   ----------      ----      -------------
01:01:01:11        1.1.1.11         4993      dhcp-snooping      1          FastEthernet6/4
00:12:08: %SW_DAI-4-DHCP_SNOOPING_DENY: 2 Invalid ARPs (Req) on Fa6/4, vlan
1.([01.01.01.11/1.1.1.22/0000.0000.0000/0.0.0.0/02:42:35 UTC Tue Jul 10 2001])

-> IP Source Guard 구성
Switch(config)# ip dhcp snooping
Switch(config)# ip dhcp snooping vlan 10 20
Switch(config-if)# no ip dhcp snooping trust
Switch(config-if)# ip verify source vlan dhcp-snooping port-security
Switch(config)# ip source binding ip-addr ip vlan number interface interface
Switch# sh ip verify source interface f6/1
Interface     Filter-type    Filter-mode    IP-address     Mac-address      Vlan
-------     --------    -----------  -----------  -------------  -------
Fa6/1          ip-mac          active     10.0.0.1 10
Fa6/1          ip-mac          active       deny-all                         11-20

Packet filtering을 위한 ACL의 이해 – Nachi Worm 취약점 Blocking

일반적인 ACL 정의
Switch(config)#ip access-list extended worm_block
Switch(config)# deny tcp any any 135
Switch(config)# deny tcp any any 139
Switch(config)# deny tcp any any 445
Switch(config)# deny tcp any any 4444
Switch(config)# deny tcp any any 707
Switch(config)# deny udp any any 69
Switch(config)# deny icmp any any echo  
Switch(config)# deny icmp any any echo-reply
Switch(config)# permit ip any any
- ICMP Echo Service 막을 경우 network 진단 방법이 어려워지므로,  PBR을 권고

Vlan AccessMap 정의
Switch(config) #vlan access-map worm_vacl 10
Switch(config)#match ip address worm_block - 앞서 정의된 일반적인 ACL을 불러들임
Switch(config)#action forward
- 일반적인 ACL에 정의된 내용에 대한 부분은 모두 Drop 해당 Vlan Interface에 적용
Switch(config)#vlan filter worm_vacl vlan-list 100 - 150
- VACL이 적용될 해당 Vlan을 선언해 주는 부분

-> Catalyst OS를 통한 VACL 구성 방법
Vlan 기반 ACL 정의
set security acl ip VACL deny udp any eq 4444 any
set security acl ip VACL deny udp any any eq 4444
set security acl ip VACL deny tcp any eq 135 any
set security acl ip VACL deny tcp any any eq 135
- Blaster Worm 관련 config
set security acl ip VACL deny tcp any eq 707 any
set security acl ip VACL deny tcp any any eq 707
- Nachi worm 관련 config
set security acl ip VACL permit ip any any
- Worm을 제외한 모든 traffic permit
정의된 VACL을 해당 Vlan에 적용
commit security acl VACL
set security acl map VACL <적용하고자 하는 VLAN번호>
VACL 해제 방법
clear security acl VACL
commit secuirty acl VACL

유연한 ACL 구성 – Time Based ACL

“ MSN Messenger 를 Work Time에만 사용토록 설정 “
“ 주말에는 모든 시간대에 사용토록 설정 “

Router#sh clock       <- 현재 라우터 또는 스위치의 시간 설정 확인
16:58:53.719 KST Sat Nov 1 2003
Time-Based ACL 구성 방법
access-list 101 deny   ip any 207.46.104.0 0.0.0.255  time-range msn
access-list 101 deny   tcp any any eq 1863 time-range msn
access-list 101 deny   tcp any any range 6891 6900 time-range msn
access-list 101 deny   udp any any eq 6901 time-range msn
access-list 101 permit ip any any 

ACL 적용
interface fastethernet 0 --> 내부 이더넷
ip access-group 101 in
Time Rule 설정
Router(config)#time-range msn
Router(config-time-range)#periodic weekdays 09:00 to 18:00 
                      --> 월요일 부터 금요일 까지 매일 아침 9시 부터 저녁 6시 까지만 적용
  정상 작동 확인
Router#sh access-lists
Extended IP access list 101
deny ip any 207.46.104.0 0.0.0.255 time-range msn (inactive)
--> 현재 시각이 토요일 이므로 자동 비활성
deny tcp any any eq 1863 time-range msn (inactive)
deny tcp any any range 6891 6900 time-range msn (inactive)
deny udp any any eq 6901 time-range msn (inactive)
permit ip any any

Catalyst 4500 에서의 QoS를 통한 TCP Synflood Attack 방어 요령

qos aggregate-policer limit 32000 bps 4000 byte conform-action transmit exceed-action drop
qos
!
class-map match-all c_syn
match access-group 101
!
policy-map p_syn
  class c_syn
   police aggregate limit
!
interface FastEthernet4/34
switchport access vlan 45
switchport mode access
qos vlan-based
!
interface Vlan45
ip address 10.10.45.2 255.255.255.0
service-policy input p_syn
!
ip classless
ip route 0.0.0.0 0.0.0.0 10.10.45.1
no ip http server
!
!
ip access-list extended syn_acl
permit tcp any any syn
!
access-list 101 permit tcp any any syn

잠재적인 공격 대비 QoS 구성 : Cat6500 Policing

mls qos
-> mls QoS enable
access-list 113 permit icmp any any echo
access-list 113 permit icmp any any echo-reply
-> icmp attack marking
access-list 111 permit tcp any any eq 135
access-list 111 permit tcp any any eq 4444
access-list 111 permit tcp any any eq 707
access-list 111 permit udp any any eq 69
-> Blaster worm,Nachi worm marking
access-list 112 permit tcp any any syn
-> syn flooding attack 방어 marking
access-list 101 permit tcp any any syn
-> syn flooding attack 방어 marking

해당 Class-map 정의
class-map match-all icmp_attack
  match access-group 113
class-map match-all Blaster_0815_attack
  match access-group 112
class-map match-all Blaster_Nachi
  match access-group 111
각 Class에 해당되는 ACL 포함시킴

policy-map QoS
  class icmp_attack
   police 32000 1000 1000 conform-action transmit exceed-action drop violate-action drop
  class Blaster_0815_attack
   police 32000 1000 1000 conform-action transmit exceed-action drop violate-action drop
  class Blaster_Nachi
   police 32000 1000 1000 conform-action transmit exceed-action drop violate-action drop
-> 각 Class 모두 32Kbps 이상이면 모두 Drop 시킴

set qos enable
 - QoS 활성화 시키기
set qos policer aggregate policer_worm rate 32 policed-dscp erate 32 drop burst 4 eburst 4
 - 32Kbps 이상 worm에 관련된 ACL이 들어올 경우 Drop 시킨다.
set qos acl ip worm dscp 8 aggregate policer_worm tcp any  any  eq 135
set qos acl ip worm dscp 8 aggregate policer_worm tcp any  any  eq 4444
set qos acl ip worm dscp 8 aggregate policer_worm tcp any  any  eq 707
set qos acl ip worm dscp 8 aggregate policer_worm udp any  any  eq 69
set qos acl ip worm dscp 8 aggregate policer_worm icmp any  any  echo
set qos acl ip worm dscp 8 aggregate policer_worm icmp any  any  echo-reply
- Blaster worm, Nachi worm,ICMP Attack 관련 정의

활성화 및 적용/해제/Monitoring
commit qos acl worm           - QoS ACL 활성화
set qos acl map worm 100          - 적용하고자 하는 Vlan or Interface 적용

Clear qos acl worm
Commit qos acl worm         - QoS 해제
Cat6500> (enable) sh qos statistics aggregate-policer policer_worm
QoS aggregate-policer statistics:
Aggregate policer               Allowed packet Packets exceed Packets exceed
                               count          normal rate    excess rate
------------------------------- -------------- -------------- --------------
policer_worm                               268             11             11
- 해당 QoS 에 적용되어 Drop 되는 packet monitoring

NBAR(Network Based Application Recognition) – 어플리케이션 레벨의 특정 서비스 인지

Virus Pattern 인식 –  Code Red, Nimda
-> 인지 후 DSCP Marking을 통해 Drop Action 가능
다양한 Service Protocol 인식을 통한 통계 분석 가능
Core Router/Switch 구간의 NBAR Enable을 통한 P2P 통계치 분석 가능
-> MIB 지원, QPM, QDM 을 통한 GUI 환경의 사용자 기반 관리 도구 제공

DoS 방어를 위한 CAR Rate Limiting

※ Limit outbound ping to 256 Kbps
interface xy
rate-limit output access-group 102 256000 8000 8000
conform-action transmit exceed-action drop
!
access-list 102 permit icmp any any echo
access-list 102 permit icmp any any echo-reply
※ Limit inbound TCP SYN packets to 8 Kbps
interface xy
rate-limit input access-group 103 8000  8000 8000
conform-action transmit exceed-action drop
!
access-list 103 permit tcp any any syn

Posted by theYoungman
engineering/Network Eng.2006. 8. 11. 12:37
MPLS?
# 1
MPLS는 Multiprotocol Label Switching으로 데이터 패킷에 IP 주소 대신 별도의 라벨을 붙여 스위칭하며 기존 IP 주소 대신 Lable로 라우팅을 하는 것입니다.
MPLS는 다양한 프로토콜을 수용하기 때문에 IP 망은 물론 ATM, 프레임 릴레이에도 적용할 수 있습니다.
일반망은 데이타 패킷이 Layer 3까지 올라간다음 라우팅을 하는반면 MPLS망에서는 Layer 2에서 라벨을 참조로 바로 고속으로 스위칭을 해버리는거죠.
장점이라면 트래픽분리기술로 주로 VPN에 적용되며 기존 IP가 지원하기 힘든 QoS를 지원하고 확장성이 뛰어나고
단점이라면 MPLS를 적용하기위해서는 모든백본망의 라우터을 고가의 최상위기종으로 업그레이드해야한다는거죠.

# 2
MPLS는 Layer3 Packet을 Layer2에서 처리하는 기술입니다.
ATM이나 Frame-relay의 경우에 Virtual Circuit상에서 작동하므로 QOS나 접속망의 효율은 굉장히 좋으나 수십대의 라우터를 VC(Virtual Circuit..이하 VC)상에서 작동시키려면 개개의 VC를 유지하기 위한 오버헤드가 커지게 됩니다. 그래서 기존의 라우팅 테이블을 작성하는 프로토콜을 사용해서 라우팅 테이블을 작성하고 이것을 L2 상의 VC와 매핑해서 라벨을 생성합니다.
그래서 패킷이 발생하면 기존의 라우터기반의 백본에서는 라우터가 IP header를 보고 패킷을 포워딩했으나 MPLS기반의 네트워크에서는 IP를 보고 포워딩하지 않고 Layer2기반의 라벨을 보고 스위칭합니다.(이것의 차이는 아주 큽니다. IP를 읽으면 소프트웨어 기반의 처리를 하여야 하나 라벨을 읽는 경우는 하드웨어 기반의 처리를 합니다. 비교가 불가능할 정도의 고속스위칭이 가능합니다.) 이 기술의 시초는 입실론이라는 회사의 IP스위치라는 제품이었던 걸로 압니다. 그이후에 태그 스위칭또는 ARIS등이 나왔는데 표준화를 위해서 IETF에서 표준화를 시작해서 MPLS로 표준화되기에 이르렀습니다
출처 - http://rainly.com/zb41/zboard.php?id=main
Posted by theYoungman
engineering/Network Eng.2006. 8. 11. 12:24

MPLS[각주]

1) 네트웤속도를 높이고 관리적 용이성을 위한 IETF 표준기술임.
2) 데이타정보를 나타내는 라벨을 부착하여 최적경로를 선택함.
3) 레이블스위칭으로 고속전송이 가능하고 부가서비스도 가능함.
4) LER(종단라우터), LSR(스위칭라우터)로 망구성됨.
5) LER에서 IP패킷을 수신하여 라벨을 부착 LSP를 결정함.
6) LSR에서 부착된 라벨 패킷을 받아 라우팅 처리함.
7) 다양한 종류의 링크계층 프레임 헤더 다음에 삽입이 가능함.
8) 프레임릴레이는 헤더에 있는 DLCI영역을 레이블로 사용 가능함.
9) ATM은 VPI/VCI영역을 레이블로 사용이 가능함.
10) 다양한종류의 링크계층 활용이 가능하여 멀티프로토콜이라 함.

[/각주]

Posted by theYoungman