1.3. BGP 광고 및 트래픽 리디렉션
RHOSP(Red Hat OpenStack Platform) 동적 라우팅을 사용하는 배포에서 네트워크 트래픽은 공개된 경로를 사용하여 VM, 로드 밸런서 및 부동 IP(FIP)로 이동합니다. 트래픽이 노드에 도착한 후 OVN BGP 에이전트는 RHEL(Red Hat Enterprise Linux) 커널 네트워킹을 사용하여 트래픽을 OVS 공급자 브릿지(br-ex)로 리디렉션하는 IP 규칙, 경로 및 OVS 흐름 규칙을 추가합니다.
네트워크 경로를 광고하는 프로세스는 OVN BGP 에이전트에서 Free Range Routing (FRRouting, 또는 FRR)을 트리거하여 연결된 경로를 직접 광고하고 철회합니다. OVN BGP 에이전트는 이러한 단계를 수행하여 B gp-nic 인터페이스에 추가할 때마다 IP 주소가 광고되도록 FRR을 올바르게 구성합니다.
FRR은 VTY 쉘을 실행하여 FRR 소켓에 연결합니다.
$ vtysh --vty_socket -c <command_file>VTY 쉘은 다음 명령이 포함된 파일을 전달합니다.
LEAK_VRF_TEMPLATE = ''' router bgp {{ bgp_as }} address-family ipv4 unicast import vrf {{ vrf_name }} exit-address-family address-family ipv6 unicast import vrf {{ vrf_name }} exit-address-family router bgp {{ bgp_as }} vrf {{ vrf_name }} bgp router-id {{ bgp_router_id }} address-family ipv4 unicast redistribute connected exit-address-family address-family ipv6 unicast redistribute connected exit-address-family ...VTY 쉘이 전달하는 명령은 다음을 수행합니다.
-
기본적으로
bgp_vrf라는 VRF를 생성합니다. 더미 인터페이스 유형을 VRF와 연결합니다.
기본적으로 dummy 인터페이스의 이름은
bgp-nic입니다.- OVS 공급자 브릿지에 IP 주소를 추가하여 ARP(Address Resolution Protocol) 및 NDP( Neighbor Discovery Protocol)가 활성화되어 있는지 확인합니다.
-
기본적으로
Zebra 데몬은 로컬 인터페이스에서 추가 및 삭제될 때 VM 및 로드 밸런서의 IP 주소를 모니터링하고 Zebra는 경로를 알리고 삭제합니다.
FRR은
재배포 연결옵션을 사용할 수 있도록 구성되어 있기 때문에 경로를 광고하고 철회하는 것은 더미 인터페이스인bgp-nic로부터 경로를 노출하거나 제거하는 것으로 구성됩니다.참고테넌트 네트워크에 연결된 VM 노출은 기본적으로 비활성화되어 있습니다. RHOSP 구성에서 활성화되어 있는 경우 OVN BGP 에이전트는 neutron 라우터 게이트웨이 포트를 노출합니다. OVN BGP 에이전트는 테넌트 네트워크의 VM으로 이동하는 트래픽을
섀시리디렉션 논리 라우터 포트(CR-LRP)를 호스팅하는 노드를 통해 OVN 오버레이로 삽입합니다.- FRR은 VM 또는 로드 밸런서를 호스팅하는 노드 또는 OVN 라우터 게이트웨이 포트가 포함된 노드에 IP 주소를 노출합니다.
OVN BGP 에이전트는 RHEL 커널 네트워킹 및 OVS를 사용하여 OVN 오버레이로 트래픽을 리디렉션하는 데 필요한 구성을 수행한 다음 FRR이 적절한 노드에 IP 주소를 노출합니다.
OVN BGP 에이전트가 시작되면 다음 작업을 수행합니다.
- ARP 및 NDP를 활성화하기 위해 OVS 공급자 브릿지에 IP 주소를 추가합니다.
/etc/iproute2/rt_tables의 각 OVS 공급자 브릿지의 라우팅 테이블에 항목을 추가합니다.참고RHEL 커널에서 라우팅 테이블의 최대 수는 231입니다. 이렇게 하면 공급자 네트워크의 수가 2,147,483,648(231 )으로 제한됩니다.
- VLAN 장치를 브리지에 연결하고 VLAN 공급자 네트워크에서만 ARP 및 NDP를 활성화합니다.
- OVS 공급자 브릿지에서 추가 OVS 흐름을 정리합니다.
일반 재동기화 이벤트 또는 시작 중에 OVN BGP 에이전트는 다음 작업을 수행합니다.
라우팅 테이블에 특정 경로를 적용하는 IP 주소 규칙을 추가합니다.
다음 예에서 이 규칙은 OVS 공급자 브릿지와 연결됩니다.
$ ip rule 0: from all lookup local 1000: from all lookup [l3mdev-table] *32000: from all to IP lookup br-ex* # br-ex is the OVS provider bridge *32000: from all to CIDR lookup br-ex* # for VMs in tenant networks 32766: from all lookup main 32767: from all lookup defaultOVS 공급자 브리지 라우팅 테이블에 IP 주소 경로를 추가하여 트래픽을 OVS 공급자 브리지 장치로 라우팅합니다.
$ ip route show table br-ex default dev br-ex scope link *CIDR via CR-LRP_IP dev br-ex* # for VMs in tenant networks *CR-LRP_IP dev br-ex scope link* # for the VM in tenant network redirection *IP dev br-ex scope link* # IPs on provider or FIPsIPv4 또는 IPv6의 사용 여부에 따라 다음 방법 중 하나를 사용하여 OVS 공급자 브리지(
br-ex)를 통해 트래픽을 OVN으로 라우팅합니다.IPv4의 경우 OVN 라우터 게이트웨이 포트인
CR-LRP에 대한 정적 ARP 항목을 추가합니다. OVN은 L2 네트워크 외부의 ARP 요청에 응답하지 않기 때문입니다.$ ip nei ... CR-LRP_IP dev br-ex lladdr CR-LRP_MAC PERMANENT ...IPv6의 경우 NDP 프록시를 추가합니다.
$ ip -6 nei add proxy CR-LRP_IP dev br-ex
대상 MAC 주소가 OVS 공급자 브릿지의 MAC 주소(
action=mod_dl_dst:OVN_PROVIDER_BRIDGE_MAC,NORMAL)로 변경되도록 OVS 공급자 브릿지의 새 흐름을 추가하여 OVN오버레이에서 커널 네트워킹으로 트래픽을 보냅니다.$ sudo ovs-ofctl dump-flows br-ex cookie=0x3e7, duration=77.949s, table=0, n_packets=0, n_bytes=0, priority= 900,ip,in_port="patch-provnet-1" actions=mod_dl_dst:3a:f7:e9:54:e8:4d,NORMAL cookie=0x3e7, duration=77.937s, table=0, n_packets=0, n_bytes=0, priority= 900,ipv6,in_port="patch-provnet-1" actions=mod_dl_dst:3a:f7:e9:54:e8:4d,NORMAL