반응형

 

  • L4 Switch IP 설정

## IP 설정
# 인터페이스 선택
/cfg/l3/if 1

# IP 설정
addr 10.10.10.10

# NETMASK 설정
mask 255.255.255.0

# 활성화
ena

# 적용
apply

# 저장
save
y

 

  • L4 Switch gateway 설정

## 게이트웨이 설정
/cfg/l3/gw 1
addr 10.10.10.2
ena
apply
save
y

 

  • L4 Switch Static Routing 설정

/cfg/l3/route/ip4

# 추가할 대역 또는 IP, 이후 나오는대로 넷마스크, 넥스트홉 IP 입력
add 20.20.20.0 # IP
255.255.255.0  # Netmask
10.10.10.1     # Net-hop IP
ena
apply
save
y

 

반응형
반응형

 

  • Wireshark IP header flags 16진수 값의 정체

Wireshark는 아래의 이미지와 같이 패킷을 16진수로 표시하여 보여주게 되는데, IP Header를 자세히 분석해보면 한가지 의문점이 생깁니다. 

 

  • "다른 값들은 16진수로 계산하면 맞는데, 왜 flags 값만 계산이 맞지 않을까?"

 

 

Flags의 바로 위에 있는 Identification을 봐도 10진수 64383을 16진수로 변환하면 정확히 0xfb7f 가 나옵니다. 하지만 flags의 경우 0001 0001 0101 1000을 계산해봐도, 0001 0101 1000을 계산해봐도 엉뚱한 값만 나오게 됩니다.

이렇게 값이 나오는 이유를 확인하기 전에 IPv4 Header 구조를 간단히 확인할 필요가 있는데 Flags 필드는 3bit, 그리고 Fragment Offset은 13bit를 사용하고, 와이어샤크에서 출력되는 Flags의 필드는 Flags+Offset 필드를 합친것 이라는 겁니다.

 

 

 

본론으로 들어가 엉뚱한 값이 나오는 이유를 말하자면 위의 이미지의 값인 0x022b 에서 가장 첫번째 숫자(0x0)는 Flags 필드의 값입니다. (모든 Flag가 셋팅되어있지 않기 때문에 0x0이며 만약 MF가 선언되면 0x2가 됩니다.)

  • Q. Flags의 필드값이라면서 MF가 선언되면 왜 0x2인가요? 0x1이여야 하지 않나요?

Flags의 값과 Offset의 값을 따로 계산하기는 하지만 Flags를 2진수로 계산할땐 000 이 아닌, 0000이라는 가정하에 계산 됩니다. 즉 위의 이미지를 예시로 0001의 1은 Offset의 값이며 왼쪽 000이 Flags지만 만약 MF가 선언되면 0011이 되어 Flags의 값은 0x2가 되고, Offset의 값은 계산하지 않습니다.

 

그럼 우선 0x022b 에서 0x0까지는 정체를 알아 냈습니다. 그럼 나머지 22b에 대해 알아봐야 할텐데, 이 값은 Fragment offset의 2진수 값을 16진수로 변환 후 나누기 8을 하면 됩니다.

2진수 : (000)1 0001 0101 1000
10진수로 변환 : 4,440
16진수로 변환 : 1158

16진수 1158 / 8 = 22B

 

이렇게하니 원하는 값인 22B가 나왔습니다. 이런식으로 하지 않고 바로 궁금했던 22B를 곱하기 8로 계산하여 원래의 값을 확인할수도 있습니다.

16진수 22B * 8 = 1158

16진수 : 1158
10진수 : 4,440
2진수 : 0001 0001 0101 1000

 

즉, 와이어샤크는 Flags의 가장 첫번째 숫자는 Flag의 선언 여부에 따라 결정하며 뒤의 3개 숫자는 Offset을 8로 나눈 16진수의 값을 출력 해준다는걸 알 수 있었습니다. 어떤분이 질문을 주신건데, 구글링해도 잘 나오지 않아 혼자 한시간동안 분석 해가며 얻어낸 결과이기 때문에 뿌듯 하네요.

마지막으로 몇개의 예시를 던지고 글 마치겠습니다.

 

 

 

반응형
반응형

1. OSPF(Open Shortest Path First) 란?

 - Link-state 라우팅 프로토콜

 - 최적의 경로를 계산할 때 SPF(Shortest path First) 또는 다익스트라(dijkstra) 알고리즘을 이용하여 각 목적지 까지의 최적 경로를 계산

 - Metric은 cost 사용 (10^8/Bandwidth(bps))

 - Multicast를 사용하여 정보를 전달

   -> 224.0.0.5 (DR이 DROTHER에게 전송할 때 사용)

   -> 224.0.0.6 (DROTHER가 DR에게 전송할 때 사용)

 - AD값은 110을 사용함

 

2. OSPF의 장점

 1) OSPF는 area 단위로 구성되어 대규모 네트워크를 안정되게 운영할 수 있음

    -> 특정 area에서 발생하는 상세한 라우팅 정보가 다른 area로 전송되지 않아 큰 규모에서 안정되게 운영할 수 있음 (재분배 설정을 통해 다른 area로 전송 가능)

 2) Stub 이라는 강력한 축약 기능 

    -> 기존 라우팅 프로토콜과는 달리 IP주소가 연속되지 않아도 Routing table의 크기를 획기적으로 줄일 수 있음

 3) 표준 라우팅 프로토콜

 4) Convergence time이 전반적으로 빠른편

 

3. OSPF의 네트워크 분류

 - 동작 방식 및 설정이 다름

 - 밑에 설명에는 없지만 Point-to-access 라는게 하나 더 있음

 1) Broadcast Multi Access

 - 하나의 Broadcast 패킷을 전송할 경우 동일 네트워크 상의 모든 장비에게 전달되는 네트워크를 Broadcast 네트워크, 하나의 인터페이스를 통해 다수의 장비와 연결된 네트워크를 Multi Access 네트워크라고 한다. (ex. Ethernet)

 - Broadcast나 Multicast 방식을 사용해 하나의 packet만 전송해도 연결된 모든 장비에게 전송 됨

 2) Non Broadcast Multi Access (NBMA)

 - Broadcast가 지원되지 않는 Multi Access 네트워크를 의미 함 (ex. ATM, X.25, Frame Relay)

 - 대부분 내부에 Virtual Circuit (가상회로) 방식을 사용

 - NBMA 에서는 Broadcast를 사용하여 전송할 경우 가상회로 하나당 하나씩 Broadcast packet을 전송해야 함

 3) Point-to-Point

 - 하나의 인터페이스와 연결된 장비가 하나뿐인 네트워크 (ex. HDLC, PPP, F/R의 sub interface 중 point-to-point)

4. OSPF의 패킷

 1) OSPF를 설정한 Router끼리 hello packet을 교환해서 Neighbor 혹은 adjancent Neighbor 를 맺음

    -> adjancent Neighbor : 라우팅 정보(LSA)를 교환하는 네이버

    -> LSA(Link State Advertisement) : OSPF 에서의 라우팅 정보

 2) adjancent neighbor인 라우터간 라우팅 정보(LSA)를 서로 교환하고 전송받은 LSA를 Link-state Database에 저장

 3) LSA를 모두 교환하고 SPF(Shortest Path First) 또는 dijkstra 알고리즘을 이용하여 각 목적지까지의 최적 경로 계산 후 Routing table에 올림

 4) 그 후에도 주기적으로 hello packet을 교환하면서 정상 동작중인지 확인 

 5) 네트워크의 상태가 변하면 다시 위의 과정을 반복하여 Routing table 생성

 

 - 종류로는 Hello, DBD, LSR, LSU, LSAck 패킷이 있다.

 ㄱ) Hello packet

    -> OSPF가 설정된 인접한 라우터간 네이버 관계를 형성하고 네이버 관계를 유지하는데 사용

    -> OSPF가 설정된 인터페이스로 서로 hello packet을 교환하여 네이버 관계를 맺음

    -> 네이버를 맺은 후에도 일정 주기(hello 주기)로 hello 패킷을 전송하고 정해진 주기 안에(dead 주기) 상대방에게 hello 패킷을 수신받지 못하면 해당 네이버에 문제가 생긴걸로 간주하고 네이버 관계를 끊음

    -> Router-id, area id, 인증 암호, 서브넷 마스크, hello 주기, dead 주기, stub area flag, 라우터 Priority, DR, BDR, 네이버 리스트의 정보를 가지고 있음

 

ㄴ) DBD packet

    -> OSPF의 네트워크 정보를 LSA(Link state advertisement)라고 부르는데, OSPF는 자신이 만든 LSA와 네이버에게서 받은 LSA를 Link state 데이터 베이스에 저장 함

    -> DBD는 OSPF 라우터의 link state 데이터 베이스에 있는 LSA들의 요약된 정보를 알려주는 패킷 임. 즉, 네이버간 LSA를 교환하기 전에 자신의 link state 데이터베이스에 있는 요약된 LSA 목록을 상대방에게 알려주기 위해서 사용함

 

ㄷ) LSR packet

    -> 네이버에게 전송받은 DBD에 자신의 link state 데이터베이스에 정보가 없는 네트워크가 있다면 그 네트워크에 대한 상제정보(LSA)를 요청할 때 사용되는 패킷 임

 

ㄹ) LSU packet

    -> 네이버에게 LSA를 요청받는 LSR을 받거나 자신이 알고 있는 네트워크의 상태가 변했을 경우 해당 라우팅 정보를 전송할때 사용하는 패킷 (즉, LSA를 실어나를 때 사용)

 

ㅁ) LSAck packet

    -> OSPF 패킷을 정상적으로 수신했음을 알려줄 때 사용 (DBD, LSR, LSU 패킷을 수신하면 LS ACK 패킷을 사용하여 수신받았음을 상대방에게 전달함)

 

6. OSPF의 네이버 테이블과 데이터베이스 테이블

 1) OSPF Neighbor Table

  - OSPF가 설정된 Router 간에 인접관계를 성립한 Neighbor 정보 저장, 주기적으로 Hello packet을 교환하여 Neighbor 관계 유지 여부 확인 (EIGRP의 Neighbor Table과 비슷)

  - show ip ospf neighbor

 2) OSPF Neighbor Table State

  - show ip ospf database

  - Down 상태에서 시작해서 Neighbor와 Routing 정보 교환을 끝내고 Full 상태로 완료

    (1) Down 상태 : OSPF가 설정되고 hello packet을 전송 했지만 아직 상대방의 hello packet을 받지 못한 상태

    (2) Init 상태 : 근접 라우터에게 hello packet을 받았지만 상대 라우터가 아직 내가 보낸 hello packet을 받지 못한 상태 (상대방이 전송한 hello packet 안의 네이버 리스트에 내 router-id가 없는 경우)

    (3) Two-way 상태 : Neighbor와 쌍방향 통신이 이루어진 상태, Multi Access 네트워크일 경우 이 단계에거 DR/BDR 선출 (서로 전송한 hello packet 안의 네이버 리스트에 서로의 router-id가 없는 경우)

    (4) Exstart 상태 : adjacent neighbor가 되는 첫번째 단계. master와 slave 라우터를 선출 (router-id가 높은 라우터가 master)

    (5) Exchange 상태 : 각 라우터가 자신의 Link-state database에 저장된 LSA의 Header만을 DBD packet에 담아 상대방에게 전송 (DBD packet을 수신한 라우터는 자신의 데이터베이스 내용과 비교한 후 자신에게 없거나 자신의 것보다 더 최신 정보일 경우 상대방에게 상세 정보(LSA)를 요청하기 위해 Link state request list에 기록하고, DBD packet 의 정보에 자신이 모르는 정보가 없다면 바로 Full 상태가 됨)

    (6) Loading 상태 : DBD packet 교환이 끝난 후 자신에게 없는 정보를 LSR packet 으로 요청 함. LSR을 요청받은 라우터는 정보를 LSU packet에 담아서 전송해준다.

    (7) Full 상태 : adjacent neighbor간 라우팅 정보 교환이 모두 끝난 상태

 

3) OSPF Database Table

 - 라우팅 업데이트 정보를 관리하는 테이블

7. OSPF의 동작 과정

 1) DR/BDR 선출

  (1) OSPF priority가 가장 높은 라우터가 DR로 선출 (다음으로 높은 라우터가 BDR로 선출)

  (2) OSPF priority가 동일할 경우 router-id가 높은 것이 DR, BDR로 선출

  (3) DR, BDR이 선출된 후에 더 높은 순위의 라우터가 추가되어도 DR, BDR이 변경되지 않는다. (단, 재부팅하거나 clear ip ospf process 명령어 사용 시 변경됨)

  (4) DR이 다운될 경우 BDR이 DR이 되고 다시 BDR을 선출함 (DR과 BDR이 아닌 라우터를 DROTHER라고 함)

    -> Ethernet, NBMA 등의 Multi Access 네트워크에 접속된 라우터가 1:1로 LSA를 교환할 경우 중복된 LSA와 ACK가 다수 발생

    -> 중계 역할을 하는 DR(Designated Router)를 선출하고, DR에 문제가 발생할 경우를 대비하여 Backup용으로 BDR(Backup DR)을 선출

    -> DR, BDR은 Broadcast 및 Non Broadcast 네트워크에서만 사용 (Point-to-Point 네트워크에서는 사용하지 않음)

 2) adjacent neighbor

 - OSPF에서 라우팅 정보(LSA)를 서로 교환하는 neighbor를 adjacent neighbor 라고 함

  (1) DR과 다른 라우터

  (2) BDR과 다른 라우터

  (3) Point-to-Point 네트워크로 연결된 두 라우터

  (4) Point-to-Multipoint로 연결된 두 라우터

  (5) Virtual-link로 연결된 두 라우터

 

 3) OSPF 메트릭

 - OSPF 메트릭은 cost라고 부름

 - 10^8/banddwidth(bps) = cost

 - 코스트 계산 시 소수점 이하는 전부 버리고, 1미만은 1로 계산

 - 인터페이스에서 명령어로 코스트를 변경할 수 있음 (ip ospf cost ?)

 

4) OSPF area

 - OSPF는 복수개의 Area로 나눠서 설정

 - 규모가 작은 경우 하나의 Area만 사용해도 상관 없음

 - Area가 하나일 경우 아무 번호나 사용해도 상관 없지만, Area가 두 개 이상일 경우 하나는 반드시 0으로 설정 해야 함

 - Area 0은 Backbone Area (다른 Area는 Area 0과 물리적으로 연결 되어야 함)

    -> Backbone Router : Backbone Area (Area 0)에 소속된 라우터

    -> Internal(내부) Router : 하나의 Area에만 소속된 라우터

    -> ABR (Area Border Router) : 두 개 이상의 Area에 소속된 Area 경계 라우터

    -> ASBR (AS boundary Router) : OSPF 네트워크와 다른 라우팅 프로토콜이 설정된 네트워크를 연결하는 AS 경계 라우터

8. OSPF 설정 방법

 1) 기본 설정

> router ospf [process-id]

   - 하나의 라우터에 여러개의 OSPF를 설정할 때 구분하기 위한 값이기 때문에 다른 라우터들끼리 달라도 상관이 없음

> router-id x.x.x.x

   - 최적의 경로를 누가 알려줬는지 파악하기 위해 필요, 일반적으로 가장 작은 IP를 설정하기 때문에 loop back 같은곳에 IP를 넣고 설정

> network [네트워크대역] [와일드마스크] area [area number]

 

 2) 축약 설정

 - ABR 또는 ASBR에서만 축약 가능

> router ospf [process-id]

> area [축약하고싶은 area number] range [N/W IP] [wildcard mask]

 

 3) 재분배

 - ASBR 에서 재분배 설정을 해야 함

 - 모두 통신이 되기 위해선 다른 프로토콜을 사용하는 인터페이스와 OSPF를 사용하는 인터페이스 모두 재분배를 해주어야 쌍방향 통신 가능

 ㄱ) OSPF가 EIGRP를 알 수 있도록 OSPF에 재분배 설정 방법

    -> router ospf [process-id]

    -> redistribute [반대편 프로토콜] [AS number] subnets

 ㄴ) EIGRP가 OSPF를 알 수 있또록 EIGRP에 재분배 설정 방법

    -> router eigrp [AS number]

    -> redistribute [반대편 프로토콜] [process number] metric [Bandwidth값] [delay값] [reliability값] [load값] [MTU값]

 ㄷ) 직접 연결된 대역대를 OSPF에게 재분배

    -> router ospf [process-id]

    -> redistribute connected subnets

 

반응형
반응형

 

1. EIGRP 란?

 - Distance Vector + Link-State 방식이 합쳐진 프로토콜

 - Cisco에서 제작한 Cisco 전용 라우팅 프로토콜

 - *DUAL(Diffusing Update Algorithm) 알고리즘 사용하여 Successor(최적 경로)와 Feasible Successor(후속 경로) 선출

 - Router 정보 전송을 위해 IP 프로토콜 88번 사용

 - AD값은 내부 90, 외부 170

 - AS(Autonomous System) 단위로 구성

 - Classless Routing Protocol

 

2. EIGRP의 장점과 단점

 1) 장점

   - Fast Convergence (빠른 수렴)

   - Unequal cost 부하분산 지원

   - OSPF에 비해 설정이 간단함

 2) 단점

   - Cisco전용 프로토콜이기 때문에 Cisco 장비에서만 동작함

   - 대규모 네트워크에서 관리가 힘듬 (SIA 현상 발생 가능성이 있음)

 

3. EIGRP의 패킷

- Hello : 네이버(Neighbor) 일정 시간(해당 시간 x3) 동안 Hello 패킷의 응답이 없으면 장애로 판단하여 관계를 끊음 (이더넷 인터페이스의 경우 5초에 한번씩 보냄, 인터페이스 모듈에 라 시간이 다름)

- Query : 라우팅 정보를 요청

- Update : 라우팅 정보를 전달

- Reply : Query packet을 수신한 Router가 요청받은 라우팅 정보를 전송 (항상 유니캐스트)

- Ack : 각각의 패킷에 대해 응답해주는 패킷 (Ack와 Hello 패킷에 대해서는 수신을 확인하지 않음)

 

4. EIGRP의 라우팅 경로를 계산하는 절차

 1) Hello packet을 인접 Router가 서로 교환한 후 Neighbor 관계를 맺고 Neighbor table 생성

 2) Update packet을 통해 라우팅 정보를 교환하여 Topology table 생성

 3) Topology table 정보를 종합하여 라우팅 경로를 계산하고 Beset path를 Routing table 에 저장

 

5. DUAL(Diffusing Update Algorithm) 이란?

 1) FD(Feasible Distance) : 출발지 라우터 에서 목적지 네트워크까지 계산한 RIGRP Metric 값 (최적 Metric)

 2) AD(Advertised Distance) : 출발지 Next-hop 라우터에서 목적지 네트워크까지 계산한 EIGRP Metric 값 (RD라고도 함)

 3) Successor : FD값이 가장 낮은 경로상의 Next-hop 라우터 (즉, 최적 경로상의 Next-hop 라우터가 됨)

 4) Feasible Successor : 최적 경로(Successor)가 동작하지 못할 때 Query 나 계산 없이 바로 Routing table에 등록되는 경로 (후속 경로상의 next-hop 라우터)

 

 - 목적지 네트워크까지 FD값이 가낭 낮은 경로가 Successor (최적경로)로 선출되고 남아있는 경로 중 AD값이 FD값보다 작은 경우 Feasible Successor (후속경로)로 선출 된다.

 

6. EIGRP의 메트릭

 - Bandwidth(대역폭), Delay(지연), Reliability(신뢰성), load(부하), MTU를 기준으로 경로를 결정하고 각각의 Metric을 Vector Metri 이라고 함

   ㄱ. 특정 공식에 각각의 값을 대입하여 최적의 경로를 결정

   ㄴ. 계산에서 사용되는 Bandwidth (B/W)값은 목적지까지 가는 중의 모든 인터페이스의 대역폭 중 가장 낮은 값으로 10^7을 나눈 값 (B/W = 10^7/가장느린대역폭)

   ㄷ. 계산식에서 사용되는 Delay 값은 목적지까지 가는 경로 중에 있는 모든 delay값을 더한 후 10으로 나눈 값

   ㄹ. Reliability(신뢰성)는 Interface의 에러 발생률이며 load(부하)는 Interface의 부하를 나타냄

   ㅁ. MTU는 기본적으로 가장 낮은 값을 사용

 

 - 계산 방식

 

7. EIGRP의 설정 방법들

1) neighbor table 과 topology table 확인 방법

(config) # show ip eigrp neighbors

(config) # show ip eigrp topology

 

2) EIGRP 설정 방법 

(config) # router eigrp {AS number}

             -> AS 번호를 지정(1-65535), EIGRP로 동작하는 모든 라우터는 동일한 AS 번호를 가져야 함

(config-router) # no auyo-summary

             -> 축약 기능 유무에 따라 설정 변경

(config-router) # eigrp router-id {IP}

             -> router-id를 지정하지 않으면 인터페이스중 가장 낮은 IP로 설정되기에 따로 설정하지 않아도 됨

(config-router) # network {N/W IP} {wild card}

 

3) 인증 작업

 - 인증된 라우팅 끼리만 라우팅 정보를 전달

(config) # key chain {임의 키 이름}

             -> 단순히 설정 이름이므로 아무렇게나 설정

(config) # key {키의 ID번호}

(config) # key-string {키의 password)

             ->  키의 ID번호와 password 는 인증 작업된 라우터들이 모두 같은 값을 가지고 있어야 합니다.

 

반응형

+ Recent posts