2.7. OVN-Kubernetes 논리 아키텍처


OVN은 네트워크 가상화 솔루션입니다. 논리적 스위치와 라우터를 생성합니다. 이러한 스위치와 라우터는 상호 연결되어 네트워크 토폴로지를 생성합니다. 로그 수준을 2 또는 5로 설정하여 ovnkube-trace를 실행하면 OVN-Kubernetes 논리적 구성 요소가 노출됩니다. 다음 다이어그램은 OpenShift Container Platform에서 라우터와 스위치가 어떻게 연결되는지 보여줍니다.

그림 2.2. OVN-Kubernetes 라우터 및 스위치 구성 요소

패킷 처리에 관련된 주요 구성 요소는 다음과 같습니다.

게이트웨이 라우터
게이트웨이 라우터는 때때로 L3 게이트웨이 라우터라고도 불리며, 일반적으로 분산 라우터와 물리적 네트워크 사이에서 사용됩니다. 논리적 패치 포트를 포함한 게이트웨이 라우터는 물리적 위치(분산되지 않음) 또는 섀시에 바인딩됩니다. 이 라우터의 패치 포트는 ovn-southbound 데이터베이스( ovn-sbdb )에서 l3gateway 포트로 알려져 있습니다.
분산 논리 라우터
가상 머신과 컨테이너가 연결되는 분산된 논리적 라우터와 그 뒤에 있는 논리적 스위치는 각 하이퍼바이저에 효과적으로 상주합니다.
로컬 스위치에 가입하세요
로컬 스위치는 분산 라우터와 게이트웨이 라우터를 연결하는 데 사용됩니다. 분산 라우터에 필요한 IP 주소 수가 줄어듭니다.
패치 포트가 있는 논리 스위치
패치 포트가 있는 논리적 스위치는 네트워크 스택을 가상화하는 데 사용됩니다. 그들은 터널을 통해 원격 논리 포트를 연결합니다.
로컬넷 포트가 있는 논리 스위치
로컬넷 포트가 있는 논리적 스위치는 OVN을 물리적 네트워크에 연결하는 데 사용됩니다. 로컬넷 포트를 사용하여 패킷을 직접 연결된 물리적 L2 세그먼트에 브리징하여 원격 논리 포트를 연결합니다.
패치 포트
패치 포트는 논리적 스위치와 논리적 라우터 간, 그리고 피어 논리적 라우터 간의 연결을 나타냅니다. 단일 연결에는 각 연결 지점에 패치 포트 한 쌍이 있으며, 각 측면에 하나씩 있습니다.
l3게이트웨이 포트
l3gateway 포트는 게이트웨이 라우터에서 사용되는 논리적 패치 포트에 대한 ovn-sbdb 의 포트 바인딩 항목입니다. 이러한 포트는 게이트웨이 라우터 자체와 마찬가지로 섀시에 바인딩되어 있다는 사실을 나타내기 위해 패치 포트가 아닌 l3gateway 포트라고 불립니다.
로컬넷 포트
localnet 포트는 각 ovn-controller 인스턴스에서 로컬로 접근 가능한 네트워크에 연결할 수 있도록 하는 브리지 논리 스위치에 있습니다. 이는 논리적 스위치에서 물리적 네트워크로의 직접 연결을 모델링하는 데 도움이 됩니다. 논리적 스위치에는 하나의 로컬넷 포트만 연결할 수 있습니다.

2.7.1. 로컬 호스트에 네트워크 도구 설치

OpenShift Container Platform 클러스터 네트워크 문제를 디버깅하는 데 사용할 수 있는 도구 모음을 만들려면 로컬 호스트에 network-tools를 설치하세요.

프로세스

  1. 다음 명령을 사용하여 network-tools 저장소를 워크스테이션에 복제합니다.

    $ git clone git@github.com:openshift/network-tools.git
    Copy to Clipboard Toggle word wrap
  2. 방금 복제한 저장소의 디렉토리로 변경하세요.

    $ cd network-tools
    Copy to Clipboard Toggle word wrap
  3. 선택 사항: 사용 가능한 모든 명령을 나열합니다.

    $ ./debug-scripts/network-tools -h
    Copy to Clipboard Toggle word wrap

2.7.2. 네트워크 도구 실행

network-tools를 실행하여 논리적 스위치와 라우터에 대한 정보를 얻습니다.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • 클러스터 관리자 권한이 있는 사용자로 클러스터에 로그인했습니다.
  • 로컬 호스트에 네트워크 도구를 설치했습니다.

프로세스

  1. 다음 명령을 실행하여 라우터를 나열하세요.

    $ ./debug-scripts/network-tools ovn-db-run-command ovn-nbctl lr-list
    Copy to Clipboard Toggle word wrap

    출력 예

    944a7b53-7948-4ad2-a494-82b55eeccf87 (GR_ci-ln-54932yb-72292-kd676-worker-c-rzj99)
    84bd4a4c-4b0b-4a47-b0cf-a2c32709fc53 (ovn_cluster_router)
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 실행하여 localnet 포트를 나열하세요.

    $ ./debug-scripts/network-tools ovn-db-run-command \
    ovn-sbctl find Port_Binding type=localnet
    Copy to Clipboard Toggle word wrap

    출력 예

    _uuid               : d05298f5-805b-4838-9224-1211afc2f199
    additional_chassis  : []
    additional_encap    : []
    chassis             : []
    datapath            : f3c2c959-743b-4037-854d-26627902597c
    encap               : []
    external_ids        : {}
    gateway_chassis     : []
    ha_chassis_group    : []
    logical_port        : br-ex_ci-ln-54932yb-72292-kd676-worker-c-rzj99
    mac                 : [unknown]
    mirror_rules        : []
    nat_addresses       : []
    options             : {network_name=physnet}
    parent_port         : []
    port_security       : []
    requested_additional_chassis: []
    requested_chassis   : []
    tag                 : []
    tunnel_key          : 2
    type                : localnet
    up                  : false
    virtual_parent      : []
    
    [...]
    Copy to Clipboard Toggle word wrap

  3. 다음 명령을 실행하여 l3gateway 포트를 나열하세요.

    $ ./debug-scripts/network-tools ovn-db-run-command \
    ovn-sbctl find Port_Binding type=l3gateway
    Copy to Clipboard Toggle word wrap

    출력 예

    _uuid               : 5207a1f3-1cf3-42f1-83e9-387bbb06b03c
    additional_chassis  : []
    additional_encap    : []
    chassis             : ca6eb600-3a10-4372-a83e-e0d957c4cd92
    datapath            : f3c2c959-743b-4037-854d-26627902597c
    encap               : []
    external_ids        : {}
    gateway_chassis     : []
    ha_chassis_group    : []
    logical_port        : etor-GR_ci-ln-54932yb-72292-kd676-worker-c-rzj99
    mac                 : ["42:01:0a:00:80:04"]
    mirror_rules        : []
    nat_addresses       : ["42:01:0a:00:80:04 10.0.128.4"]
    options             : {l3gateway-chassis="84737c36-b383-4c83-92c5-2bd5b3c7e772", peer=rtoe-GR_ci-ln-54932yb-72292-kd676-worker-c-rzj99}
    parent_port         : []
    port_security       : []
    requested_additional_chassis: []
    requested_chassis   : []
    tag                 : []
    tunnel_key          : 1
    type                : l3gateway
    up                  : true
    virtual_parent      : []
    
    _uuid               : 6088d647-84f2-43f2-b53f-c9d379042679
    additional_chassis  : []
    additional_encap    : []
    chassis             : ca6eb600-3a10-4372-a83e-e0d957c4cd92
    datapath            : dc9cea00-d94a-41b8-bdb0-89d42d13aa2e
    encap               : []
    external_ids        : {}
    gateway_chassis     : []
    ha_chassis_group    : []
    logical_port        : jtor-GR_ci-ln-54932yb-72292-kd676-worker-c-rzj99
    mac                 : [router]
    mirror_rules        : []
    nat_addresses       : []
    options             : {l3gateway-chassis="84737c36-b383-4c83-92c5-2bd5b3c7e772", peer=rtoj-GR_ci-ln-54932yb-72292-kd676-worker-c-rzj99}
    parent_port         : []
    port_security       : []
    requested_additional_chassis: []
    requested_chassis   : []
    tag                 : []
    tunnel_key          : 2
    type                : l3gateway
    up                  : true
    virtual_parent      : []
    
    [...]
    Copy to Clipboard Toggle word wrap

  4. 다음 명령을 실행하여 패치 포트를 나열하세요.

    $ ./debug-scripts/network-tools ovn-db-run-command \
    ovn-sbctl find Port_Binding type=patch
    Copy to Clipboard Toggle word wrap

    출력 예

    _uuid               : 785fb8b6-ee5a-4792-a415-5b1cb855dac2
    additional_chassis  : []
    additional_encap    : []
    chassis             : []
    datapath            : f1ddd1cc-dc0d-43b4-90ca-12651305acec
    encap               : []
    external_ids        : {}
    gateway_chassis     : []
    ha_chassis_group    : []
    logical_port        : stor-ci-ln-54932yb-72292-kd676-worker-c-rzj99
    mac                 : [router]
    mirror_rules        : []
    nat_addresses       : ["0a:58:0a:80:02:01 10.128.2.1 is_chassis_resident(\"cr-rtos-ci-ln-54932yb-72292-kd676-worker-c-rzj99\")"]
    options             : {peer=rtos-ci-ln-54932yb-72292-kd676-worker-c-rzj99}
    parent_port         : []
    port_security       : []
    requested_additional_chassis: []
    requested_chassis   : []
    tag                 : []
    tunnel_key          : 1
    type                : patch
    up                  : false
    virtual_parent      : []
    
    _uuid               : c01ff587-21a5-40b4-8244-4cd0425e5d9a
    additional_chassis  : []
    additional_encap    : []
    chassis             : []
    datapath            : f6795586-bf92-4f84-9222-efe4ac6a7734
    encap               : []
    external_ids        : {}
    gateway_chassis     : []
    ha_chassis_group    : []
    logical_port        : rtoj-ovn_cluster_router
    mac                 : ["0a:58:64:40:00:01 100.64.0.1/16"]
    mirror_rules        : []
    nat_addresses       : []
    options             : {peer=jtor-ovn_cluster_router}
    parent_port         : []
    port_security       : []
    requested_additional_chassis: []
    requested_chassis   : []
    tag                 : []
    tunnel_key          : 1
    type                : patch
    up                  : false
    virtual_parent      : []
    [...]
    Copy to Clipboard Toggle word wrap

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat