네트워크 이론 8일차(Routing Protocol)

2023. 9. 22. 11:52Network

Routing Protocol(EIGRP)

  -Cisco에서 만든 Cisco 전용 Routing Protocol

  -RIP과 동일하게 Split-Horizen이 적용되고, Major 네트워크 경계에서 auto-summary가 된다.

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

  -IGRP가 발전된 Routing protocol

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

  -Convergence time이 빠르다.

  ->Feasible Successor가 존재할 경우 Best path에 이상이 생기면
     Feasible Successor의 경로를 Best path로 올린다.

  -AD(Administrative Distance)값은 내부 (Internal) 90, 외부(external)170.

  -AS(Autonomous System)단위로 구성

  *AS(Autonomous System)

  ->하나의 네트워크 관리자에 의해 관리되는 Ruter의 집단, 하나의 관리 전략으로 구성된 Router의 집단.(한 회사,기업,단체의,Router 집단)

  -Classless Routing protocol -> VLSM과 CIDR을 사용할 수 있다.

  -멀티캐스트 주소(224.0.0.10)을 사용해서 정보를 전달

  <장점>

  -Fast Convergence(빠른 수렴) -> DUAL 알고리즘 사용

  -Unequal cost 부하분산(load balancing) 지원

  -OSPF에 비해 설정이 간단하다.

  <단점>

  -Cisco전용 Routing protocol이기 때문에 Cisco Router에서만 동작

  -중,소규모 네트워크에서는 잘 돌아가지만 대규모 네트워크에서는 관리가 힘들다.(SIA 현상이 발생할 수 있다.)

  EIGRP설정

  Router(config)#router eigrp<AS-Number>

  Router(config-router)#network<Network-Number><Wildcard mask>
                                                                         255.255.255.0
                                                                         0.0.0.255
  Router(config-router)#no auto-summary

  EIGRP Metric 

  -Bandwidth(대역폭),Delay(지연),Reliablility(신뢰성),load(부하),MTU를 기준으로 경로를 결정 ->각각의 Metric을 Vector Metric이라 한다.

  ->특정 공식에 각가의 값을 대입하여 최적의 경로를 결정한다.

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

  ->계산식에서 사용되는 Delay값은 목적지까지 가는 경로 중에 있는 모든 delay값을 더한 후 10으로 나눈 값
     (즉,경로상의 모든 delay를 합한 값/10)

  ->Reliability(신뢰도)는 Interface의 에러 발생률

  ->load는 Interface의 부하를 나타낸다.

  ->MTU는 기복적으로 가장 작은 값을 사용

  DUAL(Diffusing Update Algorithm)

  1)FD(Feasible Distance)-출발지 Router에서 목적지 네트워크 까지 계산한 EIGRP Metric 값 (최적 Metric)

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

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

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

  ->목저지 네트워크까지 FD값이 가장 낮은 경로가 Successor(최적경로)로 선출되고 
      남아있는 경로 중 AD값이 FD값보다 작은 경우 Feasible Successor(후속경로)로 선출된다.
     즉,Successor가 아닌 라우터 중AD(RD)<FD라는 조건을 만족하는 next-hop 라우터)

  OSPF

  -Link-state 라우팅 프로토콜

  -Classless 라우팅 프로토콜 (VLSM,CIDR 지원)

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

  -Multicast를 사용해서 정보를 전달한다.

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

  -AD값은 110

  -SPF(Shortest path first) 또는 Dijkstra라 알고리즘을 이용해서 각 목적지까지의 최적 경로를 계산.

  <장점>

  -OSPF는 area 단위로 구성 -> 대규모 네트워크를 안정되게 운영할 수 있다.

  ->특정 area에서 발생하는 상세한 라우팅 정보가 다른 area로 전송되지 않아 큰 규모에서도 안정되게 운영할 수 있다.

  -Stub이라는 강력한 축약 기능이 있다.

  ->기존 Routing protocol과는 달리 IP 주소가 연속되지 않아도 Routing table의 크기를 획기적으로 줄일 수 있다.

  -표준 Routing protocol이다.

  -Convergence time이 전반적으로 빠른편이다.

  <단점>

  -설정이 이전 Routing protocol보다 조금 더 복잡하다.

  ->네트워크 종류에 따라 동작하는 방식과 설정이 다르다.

  ※네트워크의 종류

  1)Bandcast Multi Access

  2)Point-to-Point

  3)Non Broadcast Multi Access

  -라우팅 정보 계산 및 유지를 위해 CPU,DRAM 같은 자원을 많이 사용한다.

  OSPF 동작 방식

  1)OSPF를 설정한 Router끼리 Hello packet을 교환해서 Neighbor 혹은
    adjancent Neighbor를 맺는다.

  *adjancent Neighbor -> 라우팅 정보(LSA)를 교환하는 네이버
  
  *LSA(Link State Advertisement)->OSPF에서의 라우팅 정보

  2)adjancent 네이버인 Router간 라우팅 정보(LSA)를 서로 교환. 전송 받은 LSA를 Link-state DataBase에 저장

  3)LSA를 모두 교환하고 SPF(Shortest path First)또는 Dijikjstra 알고리즘을 이용해서 각 목적지까지의 최적 경로를 계산 후 Routing table에 올린다.

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

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

  OSPF 설정

  Router(config)#router ospf<process-ID>

  Router(config-router)#router-id x.x.x.x

  Router(config-router)#router-id x.x.x.x

 -라우터 ID는 임의로 설정하지 않을 경우 Loopback 주소 중 가장 높은 IP주소로 설정.

 -Loopback 인터페이스가 없을 경우 물리적 인터페이스 중 가장 높은 IP주소로 설정.

 -OSPF네트워크에 포함되지 않아도 상관없다.

 -라우터 ID를 변경하려면 OSPF 프로세스를 다시 시작한다.(clear ip ospf process)

  Access Control Lists

  -특정 트레픽의 접근을 허용할지 차단할지 결정하는 리스트(Filtering)

  -보안을 위해서 많이 사용

  -L3장비인 Router에서 설정하지만 Application Layer부분도 관리하기 때문에 
   Network Layer까지라고 단정할 수 없다.

  -하지만 Application Layer까지 완벽히 막을 수 없기 때문에 Firewall 등의 전문적인 보안 장비를 사용

  -ACL은 크게 Numbered의 Named 두 종류가 있다.
   그리고 다시 Standard(1~99)와 Extended(100~199)로 구분할 수 있다.

  1)standard Access list -> source address만 참조해서 filtering 여부를 결정.

  2)extended Access list ->source address 외에도 destination address,protocol,Port 번호 등 좀더 자세한 정보를 참조해서 filtering 여부를 결정한다.

 1)Standard ACL(!~99)

  -Standard ACL의 결우는 출발지 주소(source address)를 보고 permit,deny여부를 결정.

  -packet의 source address와 ACL에 정의된 source address가 일치하면 ACL의 내용을 수행한다.(permit or deny)

  -permit이면 packet을 정해진 경로로 전송하고 deny면 packet의 흐름을 차단

  -standard ACL의 사용 list-number는 1~99까지 사용한다.

   ex)R1(config)#access-list 1 deny 125.101.1.0.0.0.0.255
       R1(config)#access-list 1 permit any

  화이트리스트/블랙리스트
  화이트리스트가 보안성이 더 좋다.

  1)Standard ACL 설정(1)
  
   R1(config)#access-list<list-number>(permitㅣdeny)source(mask)
                                        1                   2               3       4

1:list-numbersms 1~99까지의 번호를 사용.(1~99까지가 standard ACL의 번호이다.)

2:아래 3번 조건에 맞는 packet을 permit할지 deny할지 결정.

3:조건을 넣는다 standard ACL의 조건은 source address,만약 source address를 넣지 않고 any라고 입력하면 특정한 하나의 출발지 주소가 아닌 모든 주소에 2번에서 정의한 수행내용을 적용

 ex) R1(config)#access-list 1 deny 125.101.1.0.0.0.0.255
       R1(config)#access-list 1 permit any

  1)Standard ACL 설정(2)

  - Interface 적용 -

 R1(config)#interface serial 0/0

 R1(config-ip)#ip access-group <access-list-number>(inㅣout)
                                                         1                    2

1:앞에서 정의한 ACL을 불러와서 filtering 내용을 인터페이스에 적용한다.

2:inbound와 outbound 설정.

  in은 라우터의 인터페이스로 packet이 들어오는 경우
 out은 packet이 라우터의 인터페이스에서 나가는 경우

  *standard ACL은 항상 destination 라우터 쪽에 설정되어야 한다. 중간 라우터에 설정하면 다른 라우터들까지 ACL의 영향을 받아서 정상적으로 패킷전송이 이루어지지 않을 수 있다.

  ex) R1(config)#interface serial 0/0
       R1(config)#ip access-group 1 in

  ACL의 동작방식

  1)inbound 설정

  -packet이 Router 내부로 들어올 때 filtering 여부를 결정 

  -Router 인터페이스로 packet이 들어올 경우 수신 인터페이스에 ACL이 설정되어 있는지 확인하고 설정이 되어있지 않으면 그냥 통과.

  -만약 ACL이 설정돼 있다면 들어온 packet의 정보와 ACL에 설정 내용을 비교해서 통과 여부를 결정.(조건과 일치하고 permit이면 통과,deny면 통과 X)

  2)packet이 Router외부로 나갈 때 filtering 여부를 결정한다.

  -Router 인터페이스에서 packet이 나갈 경우 인터페이스에 ACL이 설정되어 있는지 확인하고 설정이 되어있지 않으면 그냥 보낸다.

  -만약 ACL이 설정돼 있다면 나가는 packet의 정보와 ACL에 설정 내용을 비교해서 통과 여부를 결정.(조건과 일치하고 permit이면 통화 deny면 통과 X)

  ACL 규칙

  1)ACL은 윗줄부터 순서대로 수행. 때문에 ACL은 좁은 범위 설정이 먼저 되어야 한다.
    만약 다음처럼 넓은 범위를 먼저 설정하게 되면 모든 Packet이 허용
    (Filtering 효과가 없다.)

   R1(config)#access-list 1 permit any
   R1(config)#access-list 1 deny 125.101.1.0.0.0.0.255

  2)ACL의 마지막은 deny any가 생략되어 있다. 즉, 마지막에 permit any가 없을 경우
    ACL조건에 없는 모든 address는 deny가 된다.

  3)numbered ACL은 순서대로 입력되기 때문에 중간 삽입이나 중간 삭제가 불가능하다. (중간에 List가 틀려도 삽입,수정,중간 삭제 불가능)
   
   *예외 named ACL의 경우는 중간 삭제 및 추가 삽입이 가능하다.

  즉, 새로 추가하는 모든 조건은 마지막에 더해진다.(순서가 하향식 계산이다.)

  2)Extended ACL(100~199)

  -Standard ACL은 source address만 조건으로 보고 filtering을 수행한다.
   하지만 extended ACL은 출발지와 목적지 주소 (destination address) 모두를 조건으로 보고 제어한다.

  -또한 standard ACL은 TCP/IP에 대해 제어만을 하지만 extended ACL은 ip,tcp,udp,icmp 등의 상세 프로토콜을 선택해서 설정할 수 있다.

  -extended ACL의 사용 list-number는  100~199까지 사용한다.

  ex) R1(config)#access-list 101 deny ip 192.100.51.0.0.0.0.255 210.150.6.0.0.0.0.255
       R2(config)#access-list 110 deny tcp 200.101.52.0.0.0.0.255 129.29.31.0.0.0.0.255 eq80

  R1(config)#access-list <listnumber>(permitㅣdeny)<protocol>
                                        1                    2               3
  source [mask] destination [mask] [operator port]
         4                    5                         6

1:list-number는 100~199까지의 번호를 사용한다.
  (100~199까지가 extended ACL의 번호이다.)

2:조건에 맞는 트래픽을 permit할지 deny할지 결정한다.

3:filtering을 할 프로토콜을 정의한다.(TCP,UDP,IP등)

4:source address를 지정한다.

5:destination address를 지정한다.

6:목적지 TCP/UDP 포트 이름 및 번호를 지정한다.

  EX)R1(config)#access-list 101 deny ip 192.100.51.0.0.0.0.255 210.150.6.0.0.0.0.255
      R2(config)#access-list 110 deny 200.101.52.0.0.0.0.255 129.29.31.0.0.0.0.255 eq80

  - Interface 적용 -

 R1(config)#interface serial 0/0
 R1(config-ip)#ip access-group <access-list-nimber>(inㅣout)
                                                         1                   2

1:앞에서 정의한 ACL을 불러와서 filtering 내용을 인터페이스에 적용한다.

2:inbound와 outbound 설정.

  in은 라우터의 인터페이스로 packet이 들어오는 경우
  out은 packet이 라우터의 인터페이스에서 나가는 경우

  *stadard ACL은 항상 destination 라우터 쪽에 설정되어야 한다. 중간 라우터에 설정하면 다른 라우터들까지 ACL의 영향을 받아서 정상적으로 패킷전송이 이루어지지 않을 수 있다.

  ex) R1(config)#interface serial 0/0
      R1(config)#ip access-group 101in