이번 시간에는 OSPF Network Type에 대해 알아보기로 하자. OSPF Routing Protocol은 interface의 Layer 2 protocol에 따라 다음과 같이 자동으로 Network Type이 설정된다.

Protocol Type OSPF Network Type Protocol
Point-to-point Protocol Point-to-point PPP, HDLC 등
Multi-access Protocol broadcast Ethernet, Token-ring 등
MBMA Protocol non-broadcast ATM, Frame-Relay, ATM 등
R1#show ip ospf interface fa0/0 
FastEthernet0/0 is up, line protocol is up 
  Internet Address 10.10.10.1/24, Area 0 
  Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 10
  Transmit Delay is 1 sec, State DR, Priority 1
...<생략>...
R1(config)#interface s3/1
R1(config-if)#encapsulation ppp
R1(config-if)#do show ip ospf interface s3/1
Serial3/1 is up, line protocol is up
  Internet Address 10.10.10.1/24, Area 0
  Process ID 1, Router ID 10.10.10.1, Network Type POINT_TO_POINT, Cost: 64
  Topology-MTID    Cost    Disabled    Shutdown      Topology Name
        0           64        no          no            Base
  Enabled by interface config, including secondary ip addresses
...<생략>...
R1(config)#interface s3/1
R1(config-if)#encapsulation frame-relay 
R1(config-if)#do show ip ospf interface s3/1
Serial3/1 is up, line protocol is up 
  Internet Address 10.10.10.1/24, Area 0 
  Process ID 1, Router ID 10.10.10.1, Network Type NON_BROADCAST, Cost: 64
  Topology-MTID    Cost    Disabled    Shutdown      Topology Name
        0           64        no          no            Base
  Enabled by interface config, including secondary ip addresses
...<생략>...

  하지만, 필요에 따라 자동으로 설정된 Network Type을 ‘ip ospf network’ 명령어를 사용하여 변경할 수 있는데, 각 Network Type의 특징을 정확히 알고 있어야 상황에 맞게 변경 할 수 있을 것이다.

R1(config)#interface s3/1
R1(config-if)#encapsulation ppp
R1(config-if)#ip ospf network broadcast
R1(config-if)#do show ip ospf interface s3/1
Serial3/1 is up, line protocol is up 
  Internet Address 10.10.10.1/24, Area 0 
  Process ID 1, Router ID 10.10.10.1, Network Type BROADCAST, Cost: 64
  Topology-MTID    Cost    Disabled    Shutdown      Topology Name
        0           64        no          no            Base
  Enabled by interface config, including secondary ip addresses
  Transmit Delay is 1 sec, State DOWN, Priority 1
  No designated router on this network
  No backup designated router on this network
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40

  그런가 하면 Logical한 interface 중 Layer 2 Protocol이 없는 interface가 있다. 대부분의 Logical interfac는 Layer 2 Protocol이 정의되어 있지만, Tunnel을 구성하기 위한 interface나 Loopback interface 등은 Layer 2 Header를 추가할 필요가 없기 때문에 정의되어 있지 않다.

  이런 경우, 제조사마다 특정 Network Type을 default로 구성해 놓았으니, 제조사의 자료를 참고하기 바란다. Cisco 같은 경우는 다음과 같이 default를 설정해 놓았다.

Interface Type Interface OSPF Network Type
Tunnel Interface Auto-Template, Tunnel, CTunnel 등 Point-to-point
Loopback Interface Loopback Loopback (Cisco Only)
R1(config)#int tunnel 1
R1(config-if)#ip address 20.20.20.1 255.255.255.0
R1(config-if)#ip ospf 1 area 0
R1(config-if)#do show ip ospf interface tunnel 1
Tunnel1 is up, line protocol is down 
  Internet Address 20.20.20.1/24, Area 0 
  Process ID 1, Router ID 10.10.10.1, Network Type POINT_TO_POINT, Cost: 1000
  Topology-MTID    Cost    Disabled    Shutdown      Topology Name
        0           1000      no          no            Base
  Enabled by interface config, including secondary ip addresses
  Transmit Delay is 1 sec, State DOWN
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    oob-resync timeout 40
R1#show ip ospf interface lo0 
Loopback0 is up, line protocol is up 
  Internet Address 3.3.3.3/24, Area 0 
  Process ID 1, Router ID 10.10.10.1, Network Type LOOPBACK, Cost: 1
  Topology-MTID    Cost    Disabled    Shutdown      Topology Name
        0           1         no          no            Base
  Enabled by interface config, including secondary ip addresses
  Loopback interface is treated as a stub Host

  여기서 ‘Loopback’이라는 OSPF Network Type은 Cisco에서 만든 Network Type이다. OSPF RFC 문서에는 Loopback을 다음과 같이 정의하고 있다.

New state:  Loopback

  Action:  Since this interface is no longer connected to the
           attached network the actions associated with the
           above InterfaceDown event are executed.

   Loopback을 Network Type으로 정의하지 않고, DOWN, 2-WAY와 같이 interface의 상태로 정의해 놓았다. 그리고, Loopback이라는 상태는 ‘Interface가 더이상 어떠한 Network에도 연결되어 있지 않기 때문에 ‘InterfaceDown’ 상태처럼 동작한다’라고 되어 있다.

  ‘InterfaceDown’ 상태는 ‘Interface에 연결된 모든 Neighbor를 삭제(Kill)하고 OSPF에 대한 Timer를 중지한다’라고 되어 있다. 즉, Hello Packet 같은 것을 보내지 말라는 것이다.

  또한, Loopback 상태에 대한 특징을 다음과 같이 정의하고 있다.

If the state of the interface is Loopback, add a Type 3
                link (stub network) as long as this is not an interface
                to an unnumbered point-to-point network.  The Link ID
                should be set to the IP interface address, the Link Data
                set to the mask 0xffffffff (indicating a host route),
                and the cost set to 0.

  Network과 연결되어 있지 않지만, interface가 살아 있기 때문에 Link ID 정보를 전달하기 위하여 IP address가 존재하여야 하고, 해당 interface는 ‘Stub network’으로 추가된다. 그리고, IP address는 32bit Host route로 동작시키고 Cost는 ‘0’으로 계산하라고 되어 있다.

  그래서, Cisco는 Loopback이라는 새로운 개념의 Network Type을 만들었다. Loopback Network Type의 특징은 interface의 subnet과 상관없이 무조건 ’32 bit’ Host route로 전달되며 ‘Stub network’으로 표시된다.

R1(config)#int lo 0
R1(config-if)#ip add 10.10.10.1 255.255.255.0
R1(config-if)#ip ospf 1 area 
R1(config-if)#do show ip ospf database router 10.10.10.1

            OSPF Router with ID (10.10.10.1) (Process ID 1)

                Router Link States (Area 0)

  LS age: 34
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 10.10.10.1
  Advertising Router: 10.10.10.1
  LS Seq Number: 80000001
  Checksum: 0x8B49
  Length: 36
  Number of Links: 1

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 10.10.10.1
     (Link Data) Network Mask: 255.255.255.255
      Number of MTID metrics: 0
       TOS 0 Metrics: 1

  그런데, Loopback을 상태 정보가 아닌 OSPF Network Type으로 만들어서인지 Cisco는 RFC 문서는 Cost를 ‘0’으로 간주하라고 되어 있는데, Loopback의 Cost가 ‘1’로 되어 있는 것을 확인할 수 있다. 이는 Cisco 장비의 Loopback bandwidth가 8Gbps로 되어 있기 때문이다.

  만약에 Loopback interface에 subnet을 32 bit가 아닌 다른 값을 주었다면 ‘ip ospf network point-to-point’ 명령어를 사용하여 Network Type을 바꿔주면 interface의 subnet으로 OSPF Database에 들어가게 된다.

R1(config-if)#ip ospf network point-to-point 
R1(config-if)#do show ip ospf database router 10.10.10.1

            OSPF Router with ID (10.10.10.1) (Process ID 1)

                Router Link States (Area 0)

  LS age: 1
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 10.10.10.1
  Advertising Router: 10.10.10.1
  LS Seq Number: 80000002
  Checksum: 0x7F55
  Length: 36
  Number of Links: 1

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 10.10.10.0
     (Link Data) Network Mask: 255.255.255.0
      Number of MTID metrics: 0
       TOS 0 Metrics: 1