What is Forwarding Address in OSPF and how it is works?

CCIE အတွက်OSPF ကိုလေ့လာတဲ့အခါမှာ Forwarding Address ဟာ နားလည်ရခက်တဲ့ ခေါင်းစဉ်တွေထဲမှာ ပါပါတယ်။

သူ့ကို အဓိက သုံးရခြင်းကတော့ sub-optimal routing ဆိုတဲ့ အခြေအနေကို ကျော်လွှားဖို့ နဲ့ ၊
Multiple ABR Router တွေကနေ တူညီတဲ့ LSA Update တွေကို တခြား OSPF Router တွေဆီကို ထပ်ခါထပ်ခါ ပြန်ပို့တာကနေ ရှောင်လွှဲချင်လို့ပဲ ဖြစ်ပါတယ်။

(Sub-optimal routing ဆိုတာ တခြားမဟုတ်ပါဘူး… သွားချင်တဲ့နေရာကို အတိုဆုံးလမ်းကြောင်းကနေသွားလို့ရပါလျက်နဲ့ မသွားပဲ တခြားနေရာက ပတ်သွားတာကို sub-optimal routing လို့ခေါ်တာပဲ ဖြစ်ပါတယ်။)

Forwarding Address ကို ASBR က တခြား OSPF Router တွေဆီကို ပုံစံ (၂) မျိုးနဲ့ Announce လုပ်ပါတယ်။
Zero Address “0.0.0.0” နဲ့ Non-zero address ဆိုပြီးတော့ပါ။

ပိုရှင်းသွားအောင် အောက်က ပုံကိုကြည့်ပါ။


ပုံမှာ RIP ကနေ OSPF နဲ့ OSPF ကနေ RIP ကို အပြန်အလှန် Redistribute လုပ်ထားတယ်။ ဒီမှာတော့ R3 တလုံးထဲကနေပဲ ASBR အလုပ်ကို လုပ်ခိုင်းထားပါတယ်။
(Configuration တွေကိုတော့ ကိုယ့်ဖာသာပဲ လုပ်ကြည့်ပါ။ ဒီမှာ ကျတော်မတင်ပေးတော့ပါဘူး ပို့စ်အရမ်းရှည်သွားမှာစိုးလို့ပါ။)

အခု ကျတော်တို့ OSPF ရဲ့ Forwarding Address အကြောင်းကို ပြောမှာဖြစ်လို့ OSPF Area ဖက်က Route တွေအကြောင်းကိုပြောရအောင်။

ASBR က သူ့တာဝန်အတိုင်း သူ့ဆီဝင်လာတဲ့ Redistributed External Route တွေ (ဒီမှာတော့ RIP Route တွေပေါ့) ကို OSPF Domain ထဲကို flooding လုပ်တာပေါ့။ 
R2 နဲ့ R4 ကနေ R1 ရဲ့ Loopback ဖြစ်တဲ့ 1.1.1.0 ကို သွားတဲ့ လမ်းကြောင်း နဲ့ Forwarding Address ကိုကြည့်ပါမယ်။

R2#show ip route 1.1.1.0
Routing entry for 1.1.1.0/24
  Known via "ospf 1", distance 110, metric 20, type extern 2, forward metric 1
  Last update from 192.168.23.3 on FastEthernet1/1, 00:04:59 ago
  Routing Descriptor Blocks:
  * 192.168.23.3, from 0.0.0.3, 00:04:59 ago, via FastEthernet1/1
      Route metric is 20, traffic share count is 1
R2#

R2#show ip ospf database external 1.1.1.0

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

                Type-5 AS External Link States

  Routing Bit Set on this LSA in topology Base with MTID 0
  LS age: 142
  Options: (No TOS-capability, DC, Upward)
  LS Type: AS External Link
  Link State ID: 1.1.1.0 (External Network Number )
  Advertising Router: 0.0.0.3
  LS Seq Number: 80000001
  Checksum: 0xB1E8
  Length: 36
  Network Mask: /24
        Metric Type: 2 (Larger than any link state path)
        MTID: 0
        Metric: 20
        Forward Address: 0.0.0.0
        External Route Tag: 0

R2#
R2#traceroute 1.1.1.1
Type escape sequence to abort.
Tracing the route to 1.1.1.1
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.23.3 20 msec 8 msec 16 msec
  2 172.16.123.1 4 msec 28 msec 8 msec
R2#


R4#show ip route 1.1.1.0
Routing entry for 1.1.1.0/24
  Known via "ospf 1", distance 110, metric 20, type extern 2, forward metric 2
  Last update from 192.168.24.2 on GigabitEthernet0/0, 00:04:14 ago
  Routing Descriptor Blocks:
  * 192.168.24.2, from 0.0.0.3, 00:04:14 ago, via GigabitEthernet0/0
      Route metric is 20, traffic share count is 1
R4#

R4#show ip ospf database external 1.1.1.0

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

                Type-5 AS External Link States

  Routing Bit Set on this LSA in topology Base with MTID 0
  LS age: 400
  Options: (No TOS-capability, DC, Upward)
  LS Type: AS External Link
  Link State ID: 1.1.1.0 (External Network Number )
  Advertising Router: 0.0.0.3
  LS Seq Number: 80000001
  Checksum: 0xB1E8
  Length: 36
  Network Mask: /24
        Metric Type: 2 (Larger than any link state path)
        MTID: 0
        Metric: 20
        Forward Address: 0.0.0.0
        External Route Tag: 0

R4#

R4#traceroute 1.1.1.1
Type escape sequence to abort.
Tracing the route to 1.1.1.1
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.24.2 8 msec 20 msec 8 msec
  2 192.168.23.3 16 msec 24 msec 28 msec
  3 172.16.123.1 48 msec 40 msec 12 msec
R4#

R2 နဲ့ R4 ရဲ့ Output တွေကို ကြည့်တာနဲ့ R1 loopback ကို ရောက်ဖို့ R3 ကိုဖြတ်သွားနေရတာကို တွေ့ရမှာပါ။
တကယ်တော့ ဒါဟာ Optimal Routing မဟုတ်ပါဘူး။ တကယ်ဆိုရင် R2 ကဖြတ်သွားရင် လမ်းကြောင်းပိုတိုမှာပဲဖြစ်ပါတယ်။
ဒီတော့ ပိုတိုတဲ့လမ်းကြောင်းကို ရွေးဖို့ အတွက် ကျတော်တို့ Forwarding Address ကို Zero Forwarding Address “0.0.0.0” ကနေ Non-zero Forwarding Address ဖြစ်အောင် လုပ်ယူရပါမယ်။

ဒီမှာ ပြောစရာရှိလာပါတယ်။
Non-zero Forwarding Address ဖြစ်ဖို့အတွက် အောက်ပါအချက်တွေနဲ့ ကိုက်ညီဖို့လိုပါတယ်။
၁) ASBR ရဲ့ next hop interface ဟာ OSPF process enable လုပ်ထားရပါမယ်။
၂) Passive interface မဖြစ်ရပါဘူး။
၃) Point-to-point interface လည်းမဟုတ်ရပါဘူး။
၄) Point-to-multipoint လည်းမဟုတ်ရပါဘူး။
၅) Interface ရဲ့ IP address ဟာ OSPF network process ရဲ့ range ထဲမှာ ပါရပါမယ်။

ဒီအချက် (၅) ချက်လုံးနဲ့ ကိုက်ညီမှ non-zero forwarding address  ကို set လုပ်လို့ရပါတယ်။ 
မကိုက်ညီခဲ့ရင်တော့ zero forwarding address “0.0.0.0” ကိုပဲ ရနေမှာပါ။
ကဲ… ဒီတော့ ကျတော် ASBR R3 ရဲ့ Fa1/0 interface ကို OSPF Area 0 ထဲ ထည့်ကြည့်ပြီး R2 နဲ့ R4 တို့ရဲ့ Routing table ကို ပြန်ကြည့်ကြည့်မယ်ဗျာ။

R3(config)#int fa1/0
R3(config-if)#ip ospf 1 area 0


R2#show ip route 1.1.1.1
Routing entry for 1.1.1.0/24
  Known via "rip", distance 120, metric 1
  Redistributing via rip
  Last update from 172.16.123.1 on FastEthernet1/0, 00:00:02 ago
  Routing Descriptor Blocks:
  * 172.16.123.1, from 172.16.123.1, 00:00:02 ago, via FastEthernet1/0
      Route metric is 1, traffic share count is 1
R2#
R2#show ip ospf database external 1.1.1.0

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

                Type-5 AS External Link States

  LS age: 1203
  Options: (No TOS-capability, DC, Upward)
  LS Type: AS External Link
  Link State ID: 1.1.1.0 (External Network Number )
  Advertising Router: 0.0.0.3
  LS Seq Number: 80000007
  Checksum: 0x2536
  Length: 36
  Network Mask: /24
        Metric Type: 2 (Larger than any link state path)
        MTID: 0
        Metric: 20
        Forward Address: 172.16.123.1
        External Route Tag: 0

R2#


R2#traceroute 1.1.1.1
Type escape sequence to abort.
Tracing the route to 1.1.1.1
VRF info: (vrf in name/id, vrf out name/id)
  1 172.16.123.1 16 msec 28 msec 40 msec
R2#

R4#show ip route 1.1.1.1
Routing entry for 1.1.1.0/24
  Known via "ospf 1", distance 110, metric 20, type extern 2, forward metric 3
  Last update from 192.168.24.2 on GigabitEthernet0/0, 03:10:32 ago
  Routing Descriptor Blocks:
  * 192.168.24.2, from 0.0.0.3, 03:10:32 ago, via GigabitEthernet0/0
      Route metric is 20, traffic share count is 1
R4#
R4#
R4#show ip ospf database external 1.1.1.0

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

                Type-5 AS External Link States

  Routing Bit Set on this LSA in topology Base with MTID 0
  LS age: 1307
  Options: (No TOS-capability, DC, Upward)
  LS Type: AS External Link
  Link State ID: 1.1.1.0 (External Network Number )
  Advertising Router: 0.0.0.3
  LS Seq Number: 80000007
  Checksum: 0x2536
  Length: 36
  Network Mask: /24
        Metric Type: 2 (Larger than any link state path)
        MTID: 0
        Metric: 20
        Forward Address: 172.16.123.1
        External Route Tag: 0

R4#
R4#traceroute 1.1.1.1
Type escape sequence to abort.
Tracing the route to 1.1.1.1
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.24.2 12 msec 28 msec 40 msec
  2 172.16.123.1 68 msec 72 msec 76 msec
R4#

Non-Zero Forwarding Address ကိုတွေ့ရမှာဖြစ်ပြီး R2 ကနေ R1 loopback ကို တိုက်ရိုက်သွားနိုင်သလို၊ R4 ကနေ R1 loopback ကိုသွားရင်လည်း အရင်လို R3 ကနေဖြတ်စရာမလိုပဲ R2 ကနေသွားနိုင်တာကို တွေ့ရပါမယ်။

Forwarding Address အကြောင်းပြောတဲ့အခါ NSSA Forwarding Address နဲ့ Non-NSSA Forwarding Addrssing ဆိုပြီး (၂) မျိုးပြောမှ ပြည့်စုံမှာပါ။

NSSA Forwarding Address ကတော့ သူ့ရဲ့ Type-7 LSA ထဲမှာ Non-zero Forwarding Address ကို အမြဲထည့်ပြီး Announce လုပ်မှာဖြစ်ပြီး၊ ABR ကနေ type 7 translate suppress-fa ဆိုတဲ့ command နဲ့ Forwarding Addressing ကို suppress လုပ်လိုက်မှ zero forwarding address ကို ပြောင်းသွားမှာဖြစ်ပါတယ်။

Non-NSSA Forwarding Address ကတော့ အပေါ်က ကျတော်ရှင်းပြတဲ့ Lab ကိုပြောတာပါပဲ။

ကဲ…ဒါပါပဲဗျာ။

ပျော်ရွှင်ပါစေဗျာ။
(Be knowledgeable, pass it on then)