Перейти к содержанию

Поддержка изоляции трафика VRF Lite

Для настройки bgp пиринга, механизма bfd и заведения изолированных таблиц маршрутизации(VRF Lite) применяется софтверный маршрутизатор bird.

Заведение bgp пиринга

`
# Определение VRF в конфигурации Bird
vrf red {
    table red_table;            # Локальная таблица маршрутизации Bird для этого VRF
    protocol kernel {
        ipv4 {
            export all;         # Экспорт маршрутов из Bird в таблицу ядра, связанную с VRF
        };
        kernel table 100;       # Привязка к таблице маршрутизации ядра Linux (номер 100)
    }
    protocol bgp peer_with_router {
        local as 65000;
        neighbor 192.168.10.1 as 65001;
        ipv4 {
            import all;         # Импорт всех полученных BGP-маршрутов
            export none;
        };
        bfd on;
    }
}

protocol bfd {
    multihop {
       min rx interval 300 ms;
       min tx interval 300 ms;
       multiplier 3;
    };
}

Использование в поде

Чтобы подключить под к VRF, сначала необходимо определить дополнительный сетевой ресурс (NetworkAttachmentDefinition).
В его конфигурации указывается использование CNI VRF plugin и привязка к существующему интерфейсу:

apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
  name: vrf-red-net
spec:
  config: '{
    "cniVersion": "0.3.0",
    "type": "vrf",
    "vrf": {
        "name": "red",
        "table": 100
    },
    "ipam": {
        "type": "whereabouts",
        "range": "192.168.10.0/24"
    }
  }'

Теперь можно применить данный NAD к целевому поду

apiVersion: v1
kind: Pod
metadata:
  name: pod-within-vrf
  annotations:
    k8s.v1.cni.cncf.io/networks: vrf-red-net
spec: <pod-spec>