Instância de roteamento virtual (VRF-Lite)
Leia este tópico para entender a implementação de instâncias de roteamento virtual no JCNR.
As instâncias de roteamento virtual permitem que os administradores dividam o roteador nativo de nuvem em vários roteadores virtuais independentes, cada um com sua própria tabela de roteamento. Dividir um dispositivo em muitas instâncias de roteamento virtual isola o tráfego que viaja pela rede sem exigir que vários dispositivos segmentem a rede. Você pode usar instâncias de roteamento virtual para isolar o tráfego do cliente em sua rede e vincular instâncias específicas do cliente a interfaces de propriedade do cliente. O roteamento e encaminhamento virtual (VRF) é frequentemente usado em conjunto com subinterfaces de Camada 3, permitindo que o tráfego em uma única interface física seja diferenciado e associado a vários roteadores virtuais. Cada subinterface lógica da Camada 3 pode pertencer a apenas uma instância de roteamento. Analise o tópico instâncias de roteador virtual para obter mais informações.
Configuração
Você pode criar uma instância de roteamento virtual no roteador nativo de nuvem por meio de um manifesto de definição de anexo de rede (NAD). Aqui está um exemplo de NAD para criar uma bluenet
instância de roteamento de roteador virtual:
apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: blue spec: config: '{ "cniVersion":"0.4.0", "name": "blue-net", "plugins": [ { "type": "jcnr", "args": { "instanceName": "bluenet", "instanceType": "virtual-router" }, "kubeConfig":"/root/.kube/config" } ] }'
Observe que está instanceType
definido para virtual-router
. Consulte casos de uso de roteador nativos da nuvem e visão geral da configuração para obter mais informações sobre o NAD.
Aqui está uma configuração de exemplo para um podblue
pod com uma interface (192.168.11.10/24)
anexada à rede (a blue
saída é aparada para brevidade):
apiVersion: v1 kind: Pod metadata: name: podblue annotations: k8s.v1.cni.cncf.io/networks: | [ { "name": "blue", "interface":"net1", "cni-args": { "interfaceType":"veth", "dataplane":"dpdk", "mac":"aa:bb:cc:dd:ee:10", "ipConfig":{ "ipv4":{ "address":"192.168.11.10/24", "gateway":"192.168.11.1", "routes":["192.168.11.0/24"] }, "ipv6":{ "address":"abcd::192.168.11.10/112", "gateway":"abcd::192.168.11.1", "routes":["abcd::192.168.11.0/112"] } } } } ] spec: ...
Conforme você aplica o NAD e o pod se manifesta usando o kubectl apply -f manifest
comando, a instância de roteamento e bluenet.inet.0
a bluenet
tabela de roteamento são criadas no controlador de roteador nativo de nuvem. Você pode configurar o roteador nativo de nuvem para permitir a comunicação de podblue
pods na rede remota.
Use o recurso de configuração para configurar os pods cRPD.
Aqui está um exemplo de configuração cRPD:
Configure a interface de malha local e o protocolo BGP:
set interfaces ens2f0 unit 0 family inet address 10.10.10.11/24 set protocols bgp group overlay type internal set protocols bgp group overlay local-address 10.10.10.11 set protocols bgp group overlay local-as 64520 set protocols bgp group overlay neighbor 10.10.10.12 peer-as 64520
onde
10.10.10.12/24
está o endereço IP do roteador bgp peer ou vizinho.Exporte as
inet
rotas usando o protocolo BGP:set policy-options policy-statement send_direct term 1 from protocol direct set policy-options policy-statement send_direct term 1 then accept set policy-options policy-statement send_direct term reject then reject set protocols bgp group overlay export send_direct
Vaze as rotas da instância de
bluenet
roteamento para adefault
instância de roteamento:set groups cni routing-instances bluenet routing-options interface-routes rib-group inet blue_to_inet set routing-options rib-groups blue_to_inet import-rib bluenet.inet.0 set routing-options rib-groups blue_to_inet import-rib inet.0
Vaze apenas as rotas BGP que correspondem ao
bluenet
prefixo192.168.12.0
da instância deinet.0
roteamento, onde192.168.12.0/24
está a rede de pod remota:set policy-options policy-statement inet_to_blue term from_bgp from instance master set policy-options policy-statement inet_to_blue term from_bgp from protocol bgp set policy-options policy-statement inet_to_blue term from_bgp from route-filter 192.168.12.0/24 orlonger set policy-options policy-statement inet_to_blue term from_bgp then accept set policy-options policy-statement inet_to_blue term reject then reject set routing-options rib-groups inet_to_blue import-rib inet.0 set routing-options rib-groups inet_to_blue import-rib bluenet.inet.0 set routing-options rib-groups inet_to_blue import-policy inet_to_blue set groups cni routing-instances bluenet routing-options instance-import inet_to_blue
O roteador nativo de nuvem oferece suporte a vazamento de rotas entre instâncias de roteamento de roteador virtual para rotas com interface, recebimento, resolução e next-hops de mesa.