MikroTik RouterOS ile VRF (Virtual Routing and Forwarding) Kullanımı ve Konfigürasyonu
Aynı donanım üzerinde birden fazla sanal yönlendirme tablosu oluşturun ve IP çakışmalarını çözün
Tanıtım
Giriş
Virtual Routing and Forwarding (VRF), MikroTik RouterOS üzerinde aynı fiziksel cihaz üzerinde birden fazla sanal yönlendirme tablosu oluşturmanıza olanak tanıyan güçlü bir özelliktir. Bu özellik, özellikle BGP tabanlı MPLS VPN uygulamalarında, IP adres çakışmalarını çözmek ve farklı VPN ağlarını birbirinden izole etmek için kullanılır. VRF, OSI Layer 3 seviyesinde çalışarak, farklı ağlar arasında IP prefix’lerinin güvenli ve bağımsız bir şekilde paylaşılmasını sağlar.
VRF’ler, vrf-lite kurulumlarında veya multi-protocol BGP ile VPNv4 adres ailesi kullanılarak diğer yönlendiricilere ve hatta aynı cihazdaki farklı yönlendirme tablolarına rota dağıtımı yapılabilir. Bu sayede, birden fazla sanal ağın aynı donanım üzerinde güvenli ve verimli bir şekilde çalışması mümkün hale gelir. RouterOS’ta VRF oluşturmak için /ip vrf menüsü kullanılır ve her VRF’e otomatik olarak bir yönlendirme tablosu eşleştirilir.
Bu makalede, VRF’in temel çalışma mantığı, konfigürasyon adımları ve dikkat edilmesi gereken önemli noktalar detaylı bir şekilde ele alınacaktır.
Teknik Özellikler
VRF ile Kullanılan Parametreler ve Seçenekler
Aşağıdaki tabloda, RouterOS’ta VRF ile birlikte kullanılabilen servisler, protokoller ve özellikler yer almaktadır. Tabloda yer alan komutlar, ilgili VRF’e özel yapılandırma yapmanıza olanak tanır.
| Özellik | Destek | Açıklama |
|---|---|---|
| BGP | ✅ | BGP şablonlarını ve VPN’leri VRF’e atayabilirsiniz. Örnek: |
/routing bgp template add name=bgp-template1 vrf=vrf1
/routing bgp vpn add label-allocation-policy=per-vrf vrf=vrf1
``` |
| **E-posta (SMTP)** | ✅ | E-posta gönderme işlemlerini VRF üzerinden yapabilirsiniz.
```bash
/tool e-mail set address=192.168.88.1 vrf=vrf1
``` |
| **IP Servisleri** | ✅ | SSH, Telnet, API, Winbox, WWW, WWW-SSL gibi servisleri VRF’e atayabilirsiniz. FTP hariç.
```bash
/ip service set ssh vrf=vrf1
/ip service set api vrf=vrf1
``` |
| **L2TP Client** | ✅ | L2TP istemcisini VRF üzerinden yapılandırın.
```bash
/interface l2tp-client add connect-to=192.168.88.1@vrf1 name=l2tp-out1 user=l2tp-client
``` |
| **MPLS** | ✅ | MPLS LDP’yi VRF’e özel olarak yapılandırın.
```bash
/mpls ldp add vrf=vrf1
``` |
| **Netwatch** | ✅ | Ağ izleme işlemlerini VRF üzerinden yapın.
```bash
/tool netwatch add host=192.168.88.1@vrf1
``` |
| **NTP** | ✅ | NTP istemci ve sunucusunu VRF’e atayın.
```bash
/system ntp client set vrf=vrf1
/system ntp server set vrf=vrf1
``` |
| **OSPF** | ✅ | OSPF örneğini VRF’e atayın.
```bash
/routing ospf instance add disabled=no name=ospf-instance-1 vrf=vrf1
``` |
| **Ping** | ✅ | Ping işlemlerini VRF üzerinden yapın.
```bash
/ping 192.168.88.1 vrf=vrf1
``` |
| **RADIUS** | ✅ | RADIUS istemcisini VRF üzerinden yapılandırın.
```bash
/radius add address=192.168.88.1@vrf1
/radius incoming set vrf=vrf1
``` |
| **RIP** | ✅ | RIP örneğini VRF’e atayın.
```bash
/routing rip instance add name=rip-instance-1 vrf=vrf1
``` |
| **RPKI** | ✅ | RPKI doğrulamasını VRF’e atayın.
```bash
/routing rpki add vrf=vrf1
``` |
| **SNMP** | ✅ | SNMP’yi VRF üzerinden yapılandırın.
```bash
/snmp set vrf=vrf1
``` |
| **Tünel Arayüzleri** | ✅ | EoIP, IPIP, GRE, SSTP, OVPN, L2TP-ether ve VXLAN gibi tünel arayüzlerini VRF’e atayın.
```bash
/interface eoip add remote-address=192.168.1.1@vrf1
/interface vxlan add vni=10 vtep-vrf=vrf1
``` |
| **Fetch** | ✅ | Dosya indirme işlemlerini VRF üzerinden yapın.
```bash
/tool fetch address=10.155.28.236@vrf1 mode=ftp src-path=my_file.pcap
``` |
| **DNS** | ✅ (v7.21+) | DNS sorgularını VRF üzerinden yapın.
```bash
/ip dns set vrf=vrf1
/ip dns set servers=8.8.8.8@vrf1
``` |
| **DHCP Relay** | ✅ (v7.15+) | DHCP relay’i VRF’e atayın.
```bash
/ip dhcp-relay set dhcp-server-vrf=vrf1
``` |
| **Uzak Günlükleme** | ✅ (v7.19+) | Uzak günlüklemeyi VRF üzerinden yapın.
```bash
/system logging action add name=remote1 remote=192.168.1.1 target=remote vrf=vrf1
``` |
Teknik Detaylar
Teknik Detaylar
VRF’in Çalışma Mantığı
VRF, RouterOS üzerinde /ip vrf menüsü aracılığıyla oluşturulan sanal yönlendirme tablolarıdır. Her VRF’in kendi bağlantılı yönlendirme tablosu bulunur ve bu tablolar birbirinden bağımsız olarak çalışır. VRF’ler, aşağıdaki temel özelliklere sahiptir:
- Aynı donanım üzerinde birden fazla sanal yönlendirme tablosu oluşturulabilir.
- IP adres çakışmalarını ortadan kaldırır (örneğin, farklı VPN’lerde aynı IP aralığı kullanılabilir).
- Bağlantılı arayüzler otomatik olarak ilgili VRF’in yönlendirme tablosuna eklenir.
- En fazla 1024 adet VRF oluşturulabilir (RouterOS sınırı).
VRF Oluşturma ve Sıralama
VRF oluştururken sıralama önemlidir. RouterOS, VRF’lere arayüz ataması yaparken, ilk eşleşen VRF’e arayüzü atar (tıpkı firewall kurallarında olduğu gibi). Bu nedenle, VRF’lerin doğru sırada olması gerekir.
Aşağıdaki örnekte, main VRF’i tüm arayüzleri kapsarken, myVrf VRF’i sadece lo_vrf arayüzünü kapsar. Ancak, main VRF’i ilk sırada olduğundan, myVrf hiçbir arayüzü alamaz. Sorunu çözmek için VRF’lerin sırasını değiştirmek gerekir:
[admin@arm-bgp] /ip/vrf> print
Flags: X - disabled; * - builtin
0 * name="main" interfaces=all
1 name="myVrf" interfaces=lo_vrf
# Sıralama hatası nedeniyle myVrf hiçbir arayüzü alamıyor
[admin@arm-bgp] /ip/vrf> move 1 0
[admin@arm-bgp] /ip/vrf> print
Flags: X - disabled; * - builtin
0 name="myVrf" interfaces=lo_vrf
1 * name="main" interfaces=all
VRF’e Arayüz Atama
Bir arayüzü VRF’e atamak için aşağıdaki komut kullanılır:
/ip vrf add name=vrf1 interfaces=ether1
Arayüzün VRF’e atanması, bağlı olduğu bağlantılı rotaların otomatik olarak VRF’in yönlendirme tablosuna eklenmesini sağlar. Ancak, RouterOS servislerinin (SSH, API, DNS vb.) hangi VRF’e ait olduğunu açıkça belirtmek gerekir. Aksi takdirde, servisler varsayılan yönlendirme tablosunu kullanmaya devam eder.
VRF Destekleyen Servisler
RouterOS, birçok servis için VRF desteği sunar. Aşağıdaki komutlarla servislerin hangi VRF’e ait olduğunu belirtebilirsiniz:
# SSH servisini VRF1'e atama
/ip service set ssh vrf=vrf1
# API servisini VRF1'e atama
/ip service set api vrf=vrf1
# DNS sorgularını VRF1 üzerinden yapma (RouterOS v7.21+)
/ip dns set vrf=vrf1
/ip dns set servers=8.8.8.8@vrf1
VRF ile BGP ve MPLS Entegrasyonu
VRF’ler, BGP ve MPLS ile entegre çalışabilir. Örneğin, BGP ile VRF’ler arasında rota dağıtımı yapabilir veya MPLS LDP’yi VRF’e özel olarak yapılandırabilirsiniz:
# BGP şablonunu VRF1'e atama
/routing bgp template add name=bgp-template1 vrf=vrf1
# MPLS LDP'yi VRF1'e özel yapılandırma
/mpls ldp add vrf=vrf1
VRF Kullanırken Dikkat Edilmesi Gerekenler
- Sıralama: VRF’lerin doğru sırada olduğundan emin olun.
- Servis Konfigürasyonu: Servislerin hangi VRF’e ait olduğunu açıkça belirtin.
- Bağlantılı Rotalar: Arayüzlere VRF ataması yapıldığında, bağlantılı rotalar otomatik olarak eklenir.
- Sınırlar: RouterOS’ta en fazla 1024 VRF oluşturulabilir.
- Uyumluluk: RouterOS’un hangi versiyonunda hangi özelliklerin desteklendiğini kontrol edin (örneğin, DNS VRF desteği v7.21+ ile geldi).
Görseller