VRF

Vrf, Routerları sanal routerlara bölmek demek. Biz nasıl switche virtual lan'lar oluşturuyoruz. Bir swithcte bazı portları vlan1'e alıyoruz bazılarını vlan 2 ye vs alıyoruz. Vlan 1 dekiler sadece vlan 1 ile konuşuyorlar. Aynı şekilde her vlan kendi vlanları ile konuşuyorlar. Yani 2 fiziksel switch gibi davranıyor. Aynı switch içerisinde. Benzer mantığı routerda da yapalım demişler. Routerları sanal routerlara bölelim. Switchler mac adresi tablosu ile karar mekanizmasını oturtur ve mac adresi tablosunda mac adresi yazdığı zaman yanında vlan numarası da yazar ve adam bu tabloda aynı vlan numarasındakileri haberleştirir. Ya şu vlan 1 kısmı farklı bir mac adresi tablosu oluşturmuş gibi oluyor.

Vlan 1 ler için bir tablo vlan 2 ler için bir tablo ama switchte show mac address table dediğimiz zaman hepsini tek bir seferde gösterir. Routerdaki ise routing tablosu vardır. Sanal routerlar oluşturuyorsan burada 3 tane sanal router oluşturulmuş.Red,Green,Blue adında. Bu 3 tane sanal routerı. 3 ayrı routing tablosu olacak demek. Bir interfaceyi gidip o routera bağlıyorsun.

2 VRF oluşturmak aslında 2 tane sanal router oluşturmak anlamına geliyor. Tek bir router üzerinde. Logical olarak 2 tane. Bir router sanal bir şekilde bölündüğü anda her vrf için bir routing tablosu tutar. A routerın routing tablosuna bakacak olursak, 10.10.1 ,10.20.2, 10.20.20 ve 10.10.10 olmak üzere 4 satırdan oluşan bir routing tablosu olur. Vrf A ile Vrf B tamamen birbirinden bağımsızlar. A routerının routing satırında 10.30.3 lü network yani B'ye ait networkler olmayacak. VRF Ada bir vatandaş VRF B ye gidemeyecek. Eğer vrf olmasayda hepsi birbirine directly connected olacaktı ve birbirlerine gidebilirlerdi. Ancak gitmesini istemiyorsak Acces List vs yazmamız gerekiyordu. Başka türlü paket oraya gider. Vrf lite'nı yani MPLS'siz olanını Cisconun bütün Routerlar destekler. Routing içinde virtual routerlar elde ediyorsun ve bu sayede herkes kendi routing tablosundakilerle haberleşebiliyor. Başkasınkine gidemiyor. Vrf yaptığınız zaman aslında orjinal router duruyor arka planda routing tablosuna bakarsanız base routing tablosu çıkar. Bu topolojide boş çıkacaktır. İstersen ona da bazı networkler ekleyebilirsiniz.

Önce vrfleri tanıtıyoruz. A ve B diye 2 tane vrf oluşturduk. Şu anda hiçbir değeri yok hiçbir interface vrfe atanmamış durumda. Bundan sonra interfaceleri sanal routerlara veriyoruz. Serial 0/0/0'ı A routerına vermiş ve ip adresini yazmış. Serial 0/0/1 i A routerına vermiş aynı şekilde vs. İlk 2 interface A routerına son iki interface ise B routerına yollanmış.

Yani 1.0 dan gelen birisi asla 3.0 networküne gidemez.

10.10.10 networkünü Central bilmiyor static routing yapabilirsin öğrenmesi için. Ya da dinamik routing kullanabilirsin. Ben R1i ospf kullanarak Central'a öğretirsem bunun benim Sanal A routerımın routing tablosuna işlemesini isterim çünkü sanal A routerına yollayacak.Çünkü R1 ile R2 Vrf A ya ait. Centralda da konfigurasyonları ona göre yapmalısın.

address-family ipv4 vrf VRF-A bu şu demek, eigprden öğrendiğin networkleri A routerımın routing tablosuna yazacaksın demek. Ospf için ise şu şekilde.

Ospfden öğrendilklerimi B routerın routing tablosuna yazacaksın demek anlamına geliyor.

sh ip eigrp neighbors derseniz ana routerın eigrp komşuluklarına bakar. Ama orada bir konfig yapmadık ki, ben eigpr konfigurasyonunu A routerı için yaptım. O yüzden komutunda da vrf ile belirtmemiz gerekiyor. Eğer siz farklı virtual routerlar oluşturmak istiyorsanız interfaceleri o sanal routerlara atamak şeklinde gerçekleşiyor. Sen bir interfaceyi sanal bir routera atadığın anda artık standart sh ip route dediğiniz zaman yani global vrf instance baktığınız zaman artık o networkü orada göremezsiniz.

Vrf'ler hiçbir interfaceye atanmamış.

İnterfaceler vrf altına atanmışlar.

Bu adam aynı zamanda tek bir fiziseksel kablodan, sub interfaceler oluşturup bu vrfleri karşıya taşımak istemişler. Burada 3 kablo varmış gibi gözüküyor ama tek bir kablo var.

o da gig3/0. Eğer ben gig3/0'ı kırmızıya alırsam, kırmızı routerın interfacesi olur ve buradaki kırmızılar, diğer kırmızı ile konuşabilir. Ancak yeşil ve mavi geçemez o yüzden ne yapacağım. Nasıl vlan taşırken sub interface oluşturuyorduk. Buradaki mentalite de aynı şekilde.

Birinci sub-interfaceyi kırmızıya, ikincisini yeşile, üçüncüsünü ise maviye atamış.

Subinterfaleri encapsulation dot1q diyerek vlan olarak etiketlemiş. encapsulation dot1q diyerek 100 ile etiketlemiş. 200 diyerek 200 ile etiketlemiş. 300 ile etiketlemiş. Bunun şöyle bir faydası var.

100 ile etiketlenmiş olanlar karşı tarafta da 100 etiketi ile gidecek bu şekilde anlamış olacak. Burada vlan etiketi kullanmasının sebebi farklı vlanları oluşturup, ucuna clientlar bağlamak değil. Ucunda bir switch yok zaten. Kırmızının trafiği karşı tarafta kırmızıya dahil olabilsin.

Routing tablosu boş çünkü tüm interfaceleri adam sanal routerlara verdi.

R1#sh ip int brief | exclude unassig
Interface                  IP-Address      OK? Method Status                Prot               ocol
FastEthernet0/0            12.0.0.1        YES manual up                    up                 
FastEthernet2/0            13.0.0.1        YES manual up                    up                 
FastEthernet4/0            14.0.0.1        YES manual up                    up                 

R2_RED#sh ip int brief | exclude un
Interface                  IP-Address      OK? Method Status                Prot     ocol
FastEthernet0/0            12.0.0.2        YES manual up                    up  
     
R3_GREEN#sh ip int brief | exclude un
Interface                  IP-Address      OK? Method Status                Prot                 ocol
FastEthernet0/0            13.0.0.2        YES manual up                    up   
                
R4_BLUE#sh ip int brief | exc un
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            14.0.0.2        YES manual up                    up  


Buradan bir defualt route yazalım 0.0.0.0 tanımladığın networkleri al burasını bir clint
gibi düşünüyoruz. Gateway e vs yolla dedik.  Tanımadığın networkleri direkt olarak 
gatewaye yolla demek.

R2_RED(config)#ip route 0.0.0.0 0.0.0.0 12.0.0.1
R4_BLUE(config)#ip route 0.0.0.0 0.0.0.0 14.0.0.1
R3_GREEN(config)#ip route 0.0.0.0 0.0.0.0 13.0.0.1


R2_RED#sh ip route | begin Gateway
Gateway of last resort is 12.0.0.1 to network 0.0.0.0

S*    0.0.0.0/0 [1/0] via 12.0.0.1
      12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        12.0.0.0/24 is directly connected, FastEthernet0/0
L        12.0.0.2/32 is directly connected, FastEthernet0/0
R2_RED#
Local olan kendi interfacenin ip adresi Default routamız çıktı ve 12li networkümüz tanıyor
connected durumda.


R2_RED#ping 13.0.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 13.0.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/29/52 ms
R2_RED#ping 14.0.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 14.0.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/37/44 ms
R2_RED#


DiÄŸerlerinede gidebiliyor.

Åžuanda bir vrf yok herkes birbiri ile konuÅŸabiliyor.


R1(config)#ip vrf RED
R1(config)#ip vrf GREEN
R1(config)#ip vrf BLUE

R1#sh ip vrf
  Name                             Default RD          Interfaces
  BLUE                             <not set>
  GREEN                            <not set>
  RED                              <not set>
R1#

R1#sh ip route | begin Gateway
Gateway of last resort is not set

      12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        12.0.0.0/24 is directly connected, FastEthernet0/0
L        12.0.0.1/32 is directly connected, FastEthernet0/0
      13.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        13.0.0.0/24 is directly connected, FastEthernet2/0
L        13.0.0.1/32 is directly connected, FastEthernet2/0
      14.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        14.0.0.0/24 is directly connected, FastEthernet4/0
L        14.0.0.1/32 is directly connected, FastEthernet4/0
R1#

sh ip route dediğimizde hepsini görüyoruz. Bunları interface altına atamamız gerekiyor.
R1(config)#interface fa0/0
R1(config-if)#ip vrf forwarding RED
% Interface FastEthernet0/0 IPv4 disabled and address(es) removed due to enabling VRF RED

R1#sh running-config int fa0/0
Building configuration...

Current configuration : 84 bytes
!
interface FastEthernet0/0
 ip vrf forwarding RED
 no ip address
 duplex half
end

//Gördüğünüz gibi ip adresi uçtu dedi buradan görebilirsiniz Vrf'e atadığınız anda 
ip adresini oradan atıyor bir karmaşa olmasın diye.


R1(config)#interface fa0/0
R1(config-if)#ip add 12.0.0.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#end
R1#sh ip vrf
  Name                             Default RD          Interfaces
  BLUE                             <not set>
  GREEN                            <not set>
  RED                              <not set>           Fa0/0
R1#
R1#sh ip route | begin Gateway
Gateway of last resort is not set

      13.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        13.0.0.0/24 is directly connected, FastEthernet2/0
L        13.0.0.1/32 is directly connected, FastEthernet2/0
      14.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        14.0.0.0/24 is directly connected, FastEthernet4/0
L        14.0.0.1/32 is directly connected, FastEthernet4/0
R1#


R1#sh ip vrf interface
Interface              IP-Address      VRF                              Protocol
Fa0/0                  12.0.0.1        RED                              up
R1#


R2_RED#ping 13.0.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 13.0.0.2, timeout is 2 seconds:
.UUUU
Success rate is 0 percent (0/5)
R2_RED#


R1#sh ip route vrf RED

Routing Table: RED
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        12.0.0.0/24 is directly connected, FastEthernet0/0
L        12.0.0.1/32 is directly connected, FastEthernet0/0
R1#


R3_GREEN#ping 14.0.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 14.0.0.2, timeout is 2 seconds:
!!!!!

R1(config)#interface fastEthernet 2/0
R1(config-if)#ip vrf forwarding GREEN
% Interface FastEthernet2/0 IPv4 disabled and address(es) removed due to enabling VRF GREEN
R1(config-if)#ip add 13.0.0.1 255.255.255.0

R1(config)#interface fa4/0
R1(config-if)#ip vrf forwarding BLUE
% Interface FastEthernet4/0 IPv4 disabled and address(es) removed due to enabling VRF BLUE
R1(config-if)#ip add 14.0.0.1 255.255.255.0
R1(config-if)#no shut


R1#sh ip route | begin Gateway
Gateway of last resort is not set

R1#sh ip route vrf BLUE | begin Gateway
Gateway of last resort is not set

      14.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        14.0.0.0/24 is directly connected, FastEthernet4/0
L        14.0.0.1/32 is directly connected, FastEthernet4/0
R1#

Subinterface kullanarak tek bir kablo üzerinden vrfleri geçirebiliriz. Vlan etiketi ile karşı routera taşıyoruz ve hangi vrfteyse ona gitmesini sağlıyoruz.


R1(config)#interface fa6/0
R1(config-if)#no shut
*Jan 15 15:06:41.191: %LINK-3-UPDOWN: Interface FastEthernet6/0, changed state to up
*Jan 15 15:06:42.191: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet6/0, changed state to up

R1(config)#interface fastEthernet 6/0.100
R1(config-subif)#ip vrf forwarding RED
R1(config-subif)#ip add 151.0.0.1 255.255.255.0
% Configuring IP routing on a LAN subinterface is only allowed if that
subinterface is already configured as part of an IEEE 802.10, IEEE 802.1Q,
or ISL vLAN.

R1(config-subif)#
ip adresi vermek istiyorsanız onu mutlaka bir vlana atamanız gerekiyor.
Subinterface vlan etiketsiz oluÅŸmuyor.
Vlan olmazsa trafik izolasyonu yapamazsın.

//Vlan 100 olan 100lü ip olsun dedik.

R1(config-subif)#encapsulation dot1Q 100
R1(config-subif)#ip add 100.0.0.1 255.255.255.0

interface FastEthernet6/0.100
 encapsulation dot1Q 100
 ip vrf forwarding RED
 ip address 100.0.0.1 255.255.255.0
!

vlan 100: 100.0.0.0/24 

R1(config)#interface fastEthernet 6/0.200
R1(config-subif)#ip vrf forwar
R1(config-subif)#ip vrf forwarding GREEN


R1#sh ip route vrf RED | begin Gateway
Gateway of last resort is not set

      12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        12.0.0.0/24 is directly connected, FastEthernet0/0
L        12.0.0.1/32 is directly connected, FastEthernet0/0
      100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        100.0.0.0/24 is directly connected, FastEthernet6/0.100
L        100.0.0.1/32 is directly connected, FastEthernet6/0.100
R1#



R5(config)#ip vrf RED
R5(config-vrf)#exit
R5(config)#ip vrf GREEN
R5(config-vrf)#exit
R5(config)#interface fastEthernet 0/0.100
R5(config-subif)#ip vrf forwarding RED
R5(config-subif)#encapsulation dot1Q 100
R5(config-subif)#ip add 100.0.0.5 255.255.255.0
R5(config-subif)#no shut
R5(config)#interface fastEthernet 0/0.200
R5(config-subif)#ip vrf forwarding GREEN
R5(config-subif)#encapsulation dot1Q 200



R5#sh ip int brief
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            unassigned      YES unset  up                    up
FastEthernet0/0.100        100.0.0.5       YES manual up                    up
FastEthernet0/0.200        unassigned      YES unset  up                    up


Portun açık olması gerekiyor her zaman.

R5#sh ip route vrf RED | begin Gateway
Gateway of last resort is not set

      100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        100.0.0.0/24 is directly connected, FastEthernet0/0.100
L        100.0.0.5/32 is directly connected, FastEthernet0/0.100
R5#ping vrf RED 100.0.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 100.0.0.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 12/29/48 ms
R5#

R5#sh running-config interface fa4/0
Building configuration...

Current configuration : 94 bytes
!
interface FastEthernet4/0
 ip vrf forwarding RED
 no ip address
 shutdown
 duplex half
end

R5(config)#interface fa4/0
R5(config-if)#ip add 21.0.0.5 255.255.255.0
R5(config-if)#no shut
R5(config-if)#
*Jan 15 16:31:05.835: %LINK-3-UPDOWN: Interface FastEthernet4/0, changed state to up
*Jan 15 16:31:06.835: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet4/0, changed state to up
R5(config-if)#no shut


R5(config)#interface fa2/0
R5(config-if)#ip vrf forwarding GREEN
R5(config-if)#ip add 31.0.0.5 255.255.255.0
R5(config-if)#no shut
*Jan 15 16:32:17.391: %LINK-3-UPDOWN: Interface FastEthernet2/0, changed state to up
*Jan 15 16:32:18.391: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet2/0, changed state to up

R5#sh ip route vrf RED | begin Gateway
Gateway of last resort is not set

      21.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        21.0.0.0/24 is directly connected, FastEthernet4/0
L        21.0.0.5/32 is directly connected, FastEthernet4/0
      100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        100.0.0.0/24 is directly connected, FastEthernet0/0.100
L        100.0.0.5/32 is directly connected, FastEthernet0/0.100
R5#

RED ve GREEN networklerini hangi vrf altındaysa onu öğretmemiz gerekiyor.


R1(config)#ip route vrf RED 21.0.0.0 255.255.255.0 100.0.0.5

R1#sh ip route vrf RED | begin Gateway
Gateway of last resort is not set

      12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        12.0.0.0/24 is directly connected, FastEthernet0/0
L        12.0.0.1/32 is directly connected, FastEthernet0/0
      21.0.0.0/24 is subnetted, 1 subnets
S        21.0.0.0 [1/0] via 100.0.0.5
      100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        100.0.0.0/24 is directly connected, FastEthernet6/0.100
L        100.0.0.1/32 is directly connected, FastEthernet6/0.100

R1#ping vrf RED 21.0.0.5
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 21.0.0.5, timeout is 2 seconds:
!!!!!


R5#sh ip route vrf RED
Gateway of last resort is not set

      21.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        21.0.0.0/24 is directly connected, FastEthernet4/0
L        21.0.0.5/32 is directly connected, FastEthernet4/0
      100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        100.0.0.0/24 is directly connected, FastEthernet0/0.100
L        100.0.0.5/32 is directly connected, FastEthernet0/0.100
R5#

R5#ping vrf RED 100.0.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 100.0.0.1, timeout is 2 seconds:
!!!!!

R21_RED(config)#interface fa0/0
R21_RED(config-if)#ip add 21.0.0.21 255.255.255.0
R21_RED(config)#ip route 0.0.0.0 0.0.0.0 21.0.0.5

R21_RED#sh ip route
Gateway of last resort is 21.0.0.5 to network 0.0.0.0

S*    0.0.0.0/0 [1/0] via 21.0.0.5
      21.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        21.0.0.0/24 is directly connected, FastEthernet0/0
L        21.0.0.21/32 is directly connected, FastEthernet0/0
R21_RED#


R21_RED#ping 21.0.0.5
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 21.0.0.5, timeout is 2 seconds:
!!!!!

R5(config)#ip route vrf RED 12.0.0.0 255.255.255.0 100.0.0.1

R5#sh ip route vrf RED

      12.0.0.0/24 is subnetted, 1 subnets
S        12.0.0.0 [1/0] via 100.0.0.1
      21.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        21.0.0.0/24 is directly connected, FastEthernet4/0
L        21.0.0.5/32 is directly connected, FastEthernet4/0
      100.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C        100.0.0.0/24 is directly connected, FastEthernet0/0.100
L        100.0.0.5/32 is directly connected, FastEthernet0/0.100
R5#


R2_RED#ping 21.0.0.21
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 21.0.0.21, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 36/93/136 ms
R2_RED#

R2_RED#traceroute 21.0.0.21
Type escape sequence to abort.
Tracing the route to 21.0.0.21
VRF info: (vrf in name/id, vrf out name/id)
  1 12.0.0.1 116 msec 20 msec 16 msec
  2 100.0.0.5 76 msec 104 msec 64 msec
  3 21.0.0.21 80 msec 72 msec 12 msec
R2_RED#


R1#traceroute vrf RED 21.0.0.21
Type escape sequence to abort.
Tracing the route to 21.0.0.21
VRF info: (vrf in name/id, vrf out name/id)
  1 100.0.0.5 104 msec 32 msec 20 msec
  2 21.0.0.21 48 msec 36 msec 28 msec
R1#

DK 20den itibaren

Mpls yapan routerlara LSR denilir. Label switching router.Bize hiçbir zaman mpls etiketi ile bilgi gelmez. En sondaki Edge LSR routerı mpls etiketini söker ve bize öyle verir. Burdaki mpls bulutuna giriş routerına ingress lsr deniliyor. İngress paketin içeri girmesi demek. Egress çıkış demek.

Mpls vpden bunlar farklı isimler alacaklar. Bunlar düz mpls de verilen isimler. Bu cihazlar aradaki ip adresi vs hiçbir şeye bakmıyor. Etikete bakıyor. Etikete göre yolluyorlar. Etiket 20 ise ethernet1 den yollar. etiket 30 ise ethernet2 den yolla vs. gibi. Karşı tarafın bildiği etiketi.Karşı taraf bana söylüyor zaten bana 10 networkünü yollamamı istiyorsan, 20 ile etiketle öyle yolla diyor.

R1 ile R2 yi bağlayan network ne 10 networkü R2 ile ile R3 ü bağlayan ne 20 networkü bu adamlar birbilerine bu networkü öğretiyorlar. Ospf, ISIS ile öğretiyorlar. önce kendileri aralarında öğretiyorlar. ospf düzgün cost değerleri atanırsa, ilk tercih ettiği yolu geri dönüşte de aynı kalitede olacağı için buradan tercih etme olasılığı yüksektir.

Mpls de bir networkte nereden gideceği kararını ospf'in routing tablosuna bakarak öğreniyor. Ben 10 lu networkü biliyormuşum diyor routing tablosunda. 10 networküne routing nereden gidiyor giga0/0dan tamam 10 networkünü aldım. Buna kafamdan bir etiket numarası belirledim. 20 olarak. Hemen tablomu oluşturdum. 20 etiketi giga 0/0dan gider tablom hazır. Milletin bana 20 etiketi ile yollaması lazım işte burada LDP devreye giriyor ve millete öğretiyorum. Diyorumki arkadaşım bana 20 ile yolla bana 20 ile yollarsan ben 10 networküne ulaştırırım. Öğrenme mekanizması bittikten sonra bir daha network ile ilişkimiz yok. Adam ilk router hariç kimse routing tablosuna bakmıyor ilk router doğru etiketi çakıyor bir sonraki routera yolluyor. Etiketi çakıyor yolluyor şeklinde gidiyor. Bir etiket numarası belirleniyor.

Yukaradaki topolojide 10 networkü var bu 10 networkünü ospf ile herkese öğretti. Diğer routerlara da R1 R2 R3 R4 R5 hepsi 10 networkünü biliyor ve 10 networküne giriş için bir etiket belirledi. Örnek olarak R5 routerı bir etiket belirledi diyorki 10 networküne yollamamı istiyorsan etiketi 23 ile bana yolla dedi

Bunu LDP ile R4'e öğretti. R4 dediki 10 networküne gideceksem, ben 23 ile R5 routerına yani burası mesala gig0/0 olsun buraya yollayacam dedi. Bu arada R4 de 10 networkü için bir etiket belirledi. 65 olarak belirlemiş dediki 65 ile etiketlersen ben 10 networküne ulaştırırım. R3 routerıda bir etiket belirledi 11 olarak ve gitti LDP ile R2 ye öğretti. Dediki 11 ile etiketlersen, ben bunu 10 networküne ulaştırırım. Gitti R2 de R1 routerına yolladı. R2 routerıda bir etiket belirledi. R1 e söyledi. R1 dediki 87 ile yollarsan, ben 10 networküne ulaştırırım dedi. R1 routerı da öğrenmiş oldu. Uçtan uca herkes artık 10 networküne yollamak istediğinde hangi label'a çakacağını öğrenmiş oldu.

İlk başta bu adam bakıyor. 10 networküene gitmek istiyor 10 networkü mpls bulutunda o zaman etiket tablosuna bakacağım diyor. Etiket tablosunda öğrenmiş 87 ile R2'ye yollarsam 10 networküne gidecek 87'yi ekledi. R1 routerı R2 ye yolladı. Bu aradaki İntermediate routerlar bir daha routing tablosuna bakmıyor. 87 ile geleni ben 11 ile etiketleyip R3 e yollarsam, paket gider. R3 ise ben 11 ile geleni ben 65 ile yollarsam paket gider. R4 ise ben 65 ile geleni 23 ile yollarsam paket gider R5 ise 23 ile gelen 10 netwokrüne gelmiştir diyor. 10 networkü benim üzerimde artık bir etiket yapıştırmayacağım label'ı söküp atıyorum. Hemen routing tabloma bakıyorum FIB dediği routing tablosu. 10 networkü Directly connected networkmüş ben onu buradan yolladım. Bu kadar Yani herkes önce tüm networkleri öğreniyor. Mpls devredeyse bunlar için herkes kendi üzerindeki Connected networkler için etiketlerini belirliyor herkes birbirine öğretiyor etiketlerini uçtan uca hedefe gidene kadar etiket sökülüyor takılıyor en nihayetinde son router etiketi söküyor ve teslim ediyor. Aradaki routerlar bir daha hiç routing tablosuna bakmıyor. Edge routerlar routing tablosuna bakmak zorundalar.

TTL başlığı zaten 3.katman başlığında var.Niye bir daha label içinde de bir tane daha TTL değeri var. İp headerına bakmadığı için. Aradaki routerlar ip headerina bakmıyorlar onlarla işleri yok artık. O yüzden bir loop olmasın diye bir TTL değeri var. Sonsuza kadar dönmesin diye eklenmiş. Kaynak router bir şekilde bir network bilgisini öğreniyor. Bu network bilgisi localinde bir ip bilgisi verilmiş de olabilir. Herkes birbirine atadığı etiket bilgilerini birbirleriyle paylaşıyorlar. Bunu da sağlayan LDP denilen bir protokol ve aslında bir tablo oluşuyor routing tablosu gibi bir LDP tablosu oluşuyor.

LDP protokolünde bir hello mekanizması var. Aynı standart bir routing protokolündeki gibi. Birbirlerine ben yaşıyorum LDP ayakta diye paket yolluyorlar. Bunun için Multicast adresi 224.0.0.2 yi kullanıyorlar. 224.0.0.2 adresi ortamdaki tüm routerlar demek. Yani generic bir adres LDP'ye özel değil. Routerlar bu paketleri dinliyorlar diyebiliriz. 224.0.0.1 ise ortamdaki tüm cihazlar pc, ,router vs demek aslında broadcast gibi bir şey. Broadcasten bir farkı var. Broadcasti switch geçirir. Ama multicasti switch geçirmeyebilir. TCP 646 kullanıyor. Birbirlerine multicast ile haberleşip komşuluk kuruyorlar. Kendilerine ait bir LDP id'leri seçiyorlar. yani router id ile aynı şey gibi. Seçim mekanizması birebir aynı. Neden router id dememişler. Çünkü 3. katmanı kullanmıyor kendisine ait bir katmanı var. Yani her router mpls çalışmak zorunda değil. O yüzden LDP id demişler. Nasıl seçiliyor Yönetici elle verebilir. ikinci olarak loopback interface varsa en büyük loopback adresidir. yoksa aktif olan en büyük ip adresidir. Karşılıklı Tcp sessionu oturtacaklar TCP sessionu da bgp ye benzer bir mentalite var. Bir taraf syn yollayacak diğer taraf ise syn-ack yollayacak. İkisinin birbirine yollaması diye bir mekanizma yok. Tcp kullanıyorsan tcp nin mentalitesi bu. Bir taraf client diğer taraf server olmak zorunda yoksa çift session açarsın. Gerek yok tek session açacak şekilde yüksek ldp id'sine sahip olan routerın sessionu ayakta kalıyor oradan bir daha tcp 646 dan konuşup bu ldp ile bilgileri paylaşmayı sağlıyorlar.

Burada örnek olara 22 etiketi ile gelen 21 etiketi ile değiştirilip, gig 0/0 dan yollanacak.

Penultimate == köprüden önceki son çıkış demek. Yani son routera geldiği zaman, etiketi biz koymayalım etiketi söküp atalım.çünkü son router ne yapacak, etikete bakacak, etiketi sökecek, stnadart routing tablosuna bakacak. Önce label tablosuna bakacak oradan belirliyecek sonra labeli sökecek sonra routing tablosuna bakacak ve çıkartacak. Diğer routerlar sadece label tablosuna bakarken, R5 routerı iki kere look up yapıyor önce label ile geldiği için labela bakıyor sonra labeli söküp routing tablosuna bakıyor. Sonra ulaştırıyor. Edge olan routerlar buna çözüm olarak iki kere lookup yapmasın artık ulaşılan en son noktada 10 networkün bağlı olduğu hizmet veren router komşu routera şöyle bir anons yapıyor. LDP ile. Diyorki 10.0.0.0'a gelirken pop et diyor. Yani etiketsiz bir şekilde bana yolla diyor. çünkü buradan sonra ne yapıyor 10 networküne gitmek istiyorsa, R1 87 ile etiketliyor. R2 11 ile etiketliyor R3 65 ile etiketliyor R4 ise pop ediyor. çünkü R5 routerı bana diyorki 10 networküne ulaştıracaksan ben son noktayım bana hiçbir etiketsiz bunu yolla diyor etiketsiz geldiği için bu adamın artık label ile işi yok. Bu arkadaş standart routing tablosundan paketi hedefe ulaştırıyor. Buna da penultimate hop popping deniliyor.

Şubeleri birbirine bağlamak istiyoruz. Eski teknolojileri kullanıyorsanız şubeleri birbirine bağlamak istiyorsanız. Eskiden frame relay vardı. Ya da metro ethernet var. Metro ethernetin eksileri, vlan sayısı kısıtlı, load balancing yaptırtımıyor. Loop riski var. Farklı teknolojileri sokamıyorsun ikinci katmanın belirli ethernet olmak durumunda. Müşteri sayısı kısıtlı 4096 tane vlan var .

Bizim derdimiz buradaki A şirketinin A şirketi şubelerinin bağlantı yapmasını sağlamak. Bunu yaparken ben hep layer 2 teknolojilerini kullandım. İşte metro ethernette layer2 teknolojisi vs. Ben bunu daha akıllı olan load balancing yapabilen loop riski olmayan ve ikinci katman protokollerinden bağımsız olan routerlara yaptırtıyım. Şöyle bir sorun var. Routerlar ip adreslere bakıyorlar. İp adreslerine bakarken bugün şirketlerin çoğu içerde aynı ip adresleri seçiyorlar.

İki şirkette de private ip adresleri aynı olabilir yani gelen paket A şirketine mi gidecek yoksa B şirketine mi gidecek asıl mesele burası.Yani standart routera bırakırsan, routerın baktığı adresler logical adresler ve unique adresler değiller. Trafiklerin birbiriyle izole olması gerekiyor. Vrf denilen kavram ile biz bir routerı virtual routerlara bölüyorduk ve routerların birden fazla routing table'ı oluyordu ve birbirleriyle asla paylaşmıyorlardı. Yani kenar noktalarda müşteriye hizmet veren noktalarda vrf yapman yeterli oluyor ancak, peki A vrf'i hiç kimse ile karışmadan haberleşmek zorunda. Trafiği izole etmemiz lazım bir etiket koyalım. Mpls etiketi koyalım. Mpls etiketi 20 bit olduğu için çok yüklü bir sayıda taşınabilir. Mpls de herkes her network için kendi etiketini belirliyor.

Bir mpls bulutu oluşturuyorlar. Bir şirketin bir bağlantısını alıp diğer şubesine ulaştırmak mpls'in amacı.İzole bir şekilde sanki kiralık devre yapmışssın gibi. Bu operasyonu 3. katmanda yapsınki 3. katmanın avantajlarını kullanalım. 3.katman kullanıyorsak benim bir routerım olmak zorunda. Benim burada 10.0.0.0 networküm var. Diğer tarafta da benim bir routerım var ve 20.0.0.0 networküm var. Ben bu 10 networkünden 20 networkünü konuşturacağım. İlk başta benim router ile ISP'nin routerı bağlayacağız çünkü routerlar ile haberleşiyorlar. Müşteri routerına CE yani customer edge denilmiş. Yani müşterinin son cihazı bu bir firewalda olabilir farketmez. Layer 3 bir cihaz. Bu routerı karşılayan müşterinin doğrudan bağlandığı routera da PE deniliyor. Provider edge router. Müşteriye hizmet veren, müşteriye bağlanan router demek .Type 4 routerı gibi düşünebiliriz. Aslında mplsin edge routerları bunlar mplsin sonlanıp, artık etiketin sökülüp teslim edildiği routerlar. Arada müşteriye hizmet vermeyen routerlara da P router deniliyor. Provider router. Yani ISP'nin kendi routerları. Vrf A ve vrf B diye ayırdık yani routingleri izole olmuş oluyor.

Mpls bulutu oluşturacağım. Mpls bulutu için ne yapmak gerekiyor. Önce mpls bulutundaki tüm routerlarlar birbirlerine tüm networkleri öğretmeleri lazım. Bunun içinde ISP'ler ISIS kullanıyorlar. Daha sonrasında bunların etiket belirleyip, etiketlerini paylaşması için LDP protokolünü devreye almam lazım. Burada da mpls bulutu oluşsun.

4.adım olarak 10 networkünün 20 netwokrünü bilmesi için ya statik routing ya da dinamik routing yapılması lazım. Genelde müşteriler ile ISP arasında statik routing kuruluyor. Yani sen servis sağlayıcıya söylüyorsun benim iç ağımda 20 networkü var. Sen PE routerında 20 networkü için yönlendirme yap diyoruz. Şimdi bu 20 networkünü 10 networküne ulaşması için yani bir tarafına PE1(10) ve diğer tarafına PE2(20) dersek PE1, 20 ye gitmesini istiyorsa bir şekillde PE2 ye ulaşması lazım. Bu adama ben 20 networkünü öğretmem lazım. Burada ise Multiprotocol ibgp kullanılıyor (MPiBg) çünkü bir tane bulut var 65000 gibi bir tane private AS seçiyorlar. MPLS'e özel bir tane private bir bgp domaini oluşturuyorlar. Kendi içinde ibgp kullanıyor. Bgp'nin şöyle bir güzelliği vardı. Bgp bir networkü diğer routera öğretecekse arada birden fazla router olabilir. Bgp 8 hop ilerdeki bir routera network öğretebilir. Bgp ile PE1 ile PE2 arasında bir bgp komşuluğu kurayım ve diyimki ben de 20 networkü var 20 networküne müşteriyi ulaştırmak istiyorsan bana yolla. Bu arada hiçbir P routerda yani ara routerda backbone routerda bgp konfigurasyonu yapmıyorsun. Hiçbiri 20 networkü hakkında bilgi sahibi olmuyor. Sadece haberleşecek 2 edge provider arasında bgp konuşuluyor. PE1 ile PE2 arasında.

ISP'nin başka bir müşterisi olsun örnek olarak B. Bu B müşteri de aynı şekilde 10 netwokrünü kulalnıyor olabilir ya da 20 farketmez. A ve B müşterileri diyorki 10 ve 20 networkünü bana yolla diyorlar. Biz burada vrf yaptık iyi güzelde bu vrf işlemini ben bgp ile nasıl taşıyacağım. Bu networkler birbirine girer. Bunları birbirinden izole etmem lazım. Bir vrf bilgisi eklenebilirdi ama ismine bunu koymamışlar. Route distinguisher demişler.

PE routerda vrf tanımlıyoruz. İç ağın çalışması için R2,R3,R4 de igp çalışıyor. Ospf ya da ISIS müşterinin bu networkünü öğrenmesi için, CE ile PE router arasında static tanımlama var ya da dinamik routing var. PE müşterinin routing tablosunu öğrendiğinde mp-bgp ile PE'ler arasında öğretiyoruz. Örnek olarak PE_R5 in networkü 50.0.0.0 olsun PE_1 de neighbor 50.0.0.0 diyerek bildiğimiz bgp konfigurasyonu yapıyoruz. PE_1 ile PE_5 sadece bgp komşuluk kuruyor. Aradakilerin bgp ile alakası yok. aradakiler 192.168.networkünü hiç bilmiyor öğrenmiyor bile. Bunlar mpls de etiketleyip yollayacak. Amaç mpls networkleri birbirleri ile karışmasın unique olsun.

İp adresinin önüne birbirlerinden müşterileri ayıracak ve bunun karşı tarafta vrf A'ya ait olduğunu belirtecek bir ifade olacaktır.

A şirketinin PE routerında bir vrf oluşturduk vrf'e öğreteceğin network karışmasın diye bir ayraç koyuyoruz. Sayısal değer.

rd 65000:100 ile kalmıyor. Sonrasında benim networküm anons çıkılırken, 65000:100 ile route-distinguisher etiketi koy ve öyle export et. Mp-bgp ile öğretilen bir network 65000:100'e sahipse, benim routing tabloma ekle diye. 2 tane ayrı satır ekliyor. Bunun yapmasının nedeni, daha da esnek olsun. Şöyle yapabiliyorsun, başka bir route distinguisherdan gelen networkü de öğren.

istisnalar hariç senin şirketinin networkünü öğren ve senin şirketinin networkünü öğrettir. Asıl amaç. Yani senin sayısal değerin kaç ise import ve export ettiğin sayısal değerler aynıdır. Ama mesala ISP'nin her şirkete yaptığı bir anons olsun. iptv yayını yapıyor multicast bunları basıyor. Bu mpls hattından bunu da vermek istiyor. Böyle şeyler için kullanılabilir.

Mpls de routerlar etiketlere bakıyorlardı. PE_1 routerı, 20 nolu networkün PE_2 de olduğunu biliyor. Ben zaten burada bgp konfigurasyonu yaptım ve benim neighborum PE_2nin bu ip adresi. Bu router artık buna yollarken, mpls etiketi koyuyor. PE_2 nin iç tarafındaki bacağının networkü 30.0.0.3 olsun 3.katman başlığında hedef 20 networkü yer alıyor. PE routerı vrf Anın routing tablosuna bakıyor PE_2 deymiş diyor. PE_2 nin ip adresi 30.0.0.3. Buraya ulaşmam için kullanmam gereken etiket ne ? 30 mpls etiketi. Bu mpls etiketini yerleştiriyor. 30 etiketini diğer PE router 50 yapıyor ondan sonraki diğer router örnek olarak 60 yapıyor. Sonrasında PE_2 ye yolluyor. Hiç kimse bir daha 3. katman başlığına bakmadığı için, hiç sorun yok. Bu paket geldi ama routing tablosuna mı geldi vrf 'e mi geldi ? hangi vrf'e geldi vs. Nerden bilecek PE_2 bunu. Eğer mpls,vpn kullanıyorsanız PE_1 routerı 20 nolu networkü PE_2 de olduğunu biliyor. Zaten ben burada BGP konfigurasyonu yaptım ve dedimki benim neighbor'ım PE_2 nin bu ip adresi dedim. Mpls etiketi olarak 30 y yapıştıyor ekstra bir de vpn label yapıştırıyor. En son noktada bu 30 sökülüyor. Tamamda bu paket benim routing tablomamı geldi. Bu paket bir vrf'e mi geldi. Bu paket hangi vrf'e geldi. Nerden bilecek PE_2 bunu.

Route distinguisher bir işe yaramıyor. Route distinguisher, routing tabloları olsun diye kullanıldı zaten. O işini bitirdi ben artık routing tablosuna bakıp paketi yolluyorum ve paketin 3. katman başlığında 20 yazıyor. Route-distinguisher yazmıyorki, route distinguisher sadece bgp den alıp, doğru vrf tablosunda kullanmak üzere kullanılıyor. Ama nihayetinde bana bir paket geldi burada pop edildi. 20 networkü hangi vrf e gidecek bu. Nereden bileceğim ben 20 li networkte bir sürü şirket olabilir. Eğer mpls vpn kullanıyorsanız PE_1 routerı PE_2 ye ulaşması gereken, mpls etiketini yerleştiriyor.(mpls label). Ama bu routerın bunun hangi vrf'e geldiğini PE_2 router anlaması için de 20 networkünü öğrenmişti ya PE_1. Mp-bgp ile öğrenmişti. Artık buna bir etiket belirliyor.Başka bir etiket. 20 networküne gitmek için paketin arkasına bir etiket daha çakıyor. Sonra ip başlığı yazıyor.

Routing tablosunda bir şey yoksa çöpe gider. mpls label 30 , vpn label 50 bu 50 etiketi güzargah boyunca hiç değiştirilmiyor. Bu 50 vpn'e özel bir etiket. 30 ise mplse özel etiket sürekli değiştiriliyor. Amacı hedefteki PE routerı, hangi vrf'e gittiğini anlasın.

Burada PE router bgp ile öğretirken, aynı zamanda etiket numarasını da öğretiyor. Yani bir route distinguisher ile bunun bir Vrf A ya ait olduğunu, ve bunun etiket numarasının 50 olduğunu da öğretiyor bu saatten sonra bir paket 50 etiketi ile PE_2 ye geldiği anda bu A şirketinin paketidir diyor ve paketi müşterisine ulaştırıyor.

Route distinguisher =>Sayısal bir değer. İki formatı var. İP adresi iki nokta üst üste vpn numarası belirtebilirsin. Bgp otonom numarası üst üste vpn numarası belirtebilirsin. Unique olması lazım. Çakışmaması lazım . Bu route distinguisher sayısını belirtiyorsun daha sonra yaptığın vrf altında belirtiyorsun. Senin route distinguisgerın 65000:300 dür diye ve diyorsunki, sana 65000:300 vrf etiketi ile gelen bir network bilgisi gelirse vrf A ya aittir. sende kendini 65000:300 ile öğret.

ip vrf CustomerA rd 65000:300 // bu ibare ile öğrenilmiş network bilgisini kendi routing tablona öğret.Başkasına da bu ibareyi ekleyerek network bilgisini öğret diyoruz. route-target export 65000:300 //sana 65000:300 ile vrf etiket gelirse vrf A'ya aittir. route-target import 65000:300 // Sen kedini 65000:300 ile öğret.

Kısaca route distinguisher şirketlerin karışmasını engelliyor. Yani PE de oluşturduğum bir distinguisheri bunu Bgp ile ip adresinin önünde distinguisger olacak şekilde öğretiyor. 65000:300:20.0.0.0 networkünü öğretiyormuş gibi oluyor.Buna vpnv4 deniliyor. Bgp nin altında.

PE routerım CE den 20 networkünü ospf ve statik routing ile öğrendi Daha sonra ospfi bgp ye redistributte ettim. Önüne route distinguisher ekleyerek bunu PE2 ye öğrettim. PE2nin bunun vrf A ya ait olduğunu anladı ve onu routing tablosuna işledi. Onu da bgp anonsunu ospfe redistribute ettirtip, burdan da müşterinin routerına öğretirdi.

Segment routing de LDP kalkıyor ve etiket öğretme operasyonunu ospfe yüklemişler. Daha sadeleşmiş bir çalışma.

Last updated