4.7. VLAN 공급자 네트워크 패킷 흐름은 어떻게 작동합니까?

이 섹션에서는 VLAN 공급자 네트워크 구성이 있는 인스턴스에서 트래픽이 또는 인스턴스로 이동하는 방법에 대해 자세히 설명합니다.

VLAN 공급자 네트워크의 발신 트래픽 흐름

다음 다이어그램은 인스턴스를 떠나고 VLAN 공급자 외부 네트워크에 직접 들어오는 트래픽에 대한 패킷 흐름을 설명합니다. 이 예에서는 두 개의 VLAN 네트워크(171 및 172)에 연결된 두 개의 인스턴스를 사용합니다. br-ex 를 구성한 후 물리적 인터페이스를 추가하고 Compute 노드에 인스턴스를 생성하면 인터페이스 및 브리지의 결과 구성이 다음 다이어그램의 구성과 유사합니다.

VLAN 공급자 네트워크의 네트워크 트래픽 - 발신
  1. 인스턴스의 eth0 인터페이스를 나가는 패킷은 인스턴스에 연결된 linux bridge qbr-xx 에 도달합니다.
  2. qbr-xx 는 veth 쌍 qvbxx <ECDHE qvoxxx 를 사용하여 br-int 에 연결됩니다.
  3. qvbxx 는 linux bridge qbr-xx 에 연결되고 qvoxx 는 Open vSwitch 브리지 br-int 에 연결됩니다.

Linux 브리지의 qbr-xx 구성의 예.

이 예제에서는 두 개의 인스턴스와 해당 linux 브리지 두 개를 제공합니다.

# brctl show
bridge name	bridge id		STP enabled	interfaces
qbr84878b78-63		8000.e6b3df9451e0	no		qvb84878b78-63
							tap84878b78-63

qbr86257b61-5d		8000.3a3c888eeae6	no		qvb86257b61-5d
							tap86257b61-5d

br-intqvoxx 구성:

                options: {peer=phy-br-ex}
        Port "qvo86257b61-5d"
            tag: 3

            Interface "qvo86257b61-5d"
        Port "qvo84878b78-63"
            tag: 2
            Interface "qvo84878b78-63"

  • qvoxx 는 VLAN 공급자 네트워크와 연결된 내부 VLAN 태그로 태그가 지정됩니다. 이 예에서 내부 VLAN 태그 2는 VLAN 공급자 네트워크 provider-171 과 연결되고 VLAN 태그 3은 VLAN 공급자 네트워크 provider-172 와 연결됩니다. 패킷이 qvoxx 에 도달하면 패킷 헤더에 이 VLAN 태그가 추가됩니다.
  • 그런 다음 패킷이 patch-peer int- br-ex <octets phy-br-ex 를 사용하여 br-ex OVS 브리지로 이동합니다. br-int 의 patch-peer 예:
    Bridge br-int
        fail_mode: secure
       Port int-br-ex
            Interface int-br-ex
                type: patch
                options: {peer=phy-br-ex}

br-ex 의 패치 피어 구성 예:

    Bridge br-ex
        Port phy-br-ex
            Interface phy-br-ex
                type: patch
                options: {peer=int-br-ex}
        Port br-ex
            Interface br-ex
                type: internal
  • 이 패킷이 br-exphy-br-ex 에 도달하면 br-ex 내부의 OVS 흐름이 내부 VLAN 태그를 VLAN 공급자 네트워크와 연결된 실제 VLAN 태그로 교체합니다.

다음 명령의 출력은 phy -br-ex의 포트 번호가 4 임을 보여줍니다.

# ovs-ofctl show br-ex
 4(phy-br-ex): addr:32:e7:a1:6b:90:3e
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max

다음 명령은 VLAN 태그 2(dl_vlan=2)가 있는 phy-br-ex(in_port=4)에 도달하는 모든 패킷을 보여줍니다. Open vSwitch는 VLAN 태그를 171(actions=mod_vlan_vid:171,NORMAL)로 바꾸고 패킷을 물리적 인터페이스로 전달합니다. 또한 명령은 VLAN 태그 3(dl_vlan=3)이 있는 phy-br-ex(in_port=4)에 도달하는 모든 패킷을 표시합니다. Open vSwitch는 VLAN 태그를 172(actions=mod_vlan_vid:172,NORMAL)로 바꾸고 패킷을 물리적 인터페이스로 전달합니다. neutron-openvswitch-agent는 이러한 규칙을 추가합니다.

# ovs-ofctl dump-flows br-ex
NXST_FLOW reply (xid=0x4):
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=6527.527s, table=0, n_packets=29211, n_bytes=2725576, idle_age=0, priority=1 actions=NORMAL
 cookie=0x0, duration=2939.172s, table=0, n_packets=117, n_bytes=8296, idle_age=58, priority=4,in_port=4,dl_vlan=3 actions=mod_vlan_vid:172,NORMAL
 cookie=0x0, duration=6111.389s, table=0, n_packets=145, n_bytes=9368, idle_age=98, priority=4,in_port=4,dl_vlan=2 actions=mod_vlan_vid:171,NORMAL
 cookie=0x0, duration=6526.675s, table=0, n_packets=82, n_bytes=6700, idle_age=2462, priority=2,in_port=4 actions=drop
  • 그런 다음 이 패킷은 물리 인터페이스 eth1 로 전달됩니다.

VLAN 공급자 네트워크의 들어오는 트래픽 흐름

다음 예제 흐름은 공급자 네트워크 provider-171에 VLAN 태그 2를 사용하고 공급자 네트워크 provider-172의 경우 VLAN 태그 3을 사용하여 컴퓨팅 노드에서 테스트되었습니다. 흐름은 통합 브리지 br-int에서 포트 18을 사용합니다.

VLAN 공급자 네트워크에는 다른 구성이 필요할 수 있습니다. 또한 네트워크에 대한 구성 요구 사항은 서로 다른 두 개의 컴퓨팅 노드 간에 다를 수 있습니다.

다음 명령의 출력은 포트 번호 18과 함께 int-br-ex 를 보여줍니다.

# ovs-ofctl show br-int
 18(int-br-ex): addr:fe:b7:cb:03:c5:c1
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max

다음 명령의 출력에서는 br-int의 흐름 규칙을 보여줍니다.

# ovs-ofctl dump-flows br-int
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=6770.572s, table=0, n_packets=1239, n_bytes=127795, idle_age=106, priority=1 actions=NORMAL

 cookie=0x0, duration=3181.679s, table=0, n_packets=2605, n_bytes=246456, idle_age=0,
 priority=3,in_port=18,dl_vlan=172 actions=mod_vlan_vid:3,NORMAL

 cookie=0x0, duration=6353.898s, table=0, n_packets=5077, n_bytes=482582, idle_age=0,
 priority=3,in_port=18,dl_vlan=171 actions=mod_vlan_vid:2,NORMAL

 cookie=0x0, duration=6769.391s, table=0, n_packets=22301, n_bytes=2013101, idle_age=0, priority=2,in_port=18 actions=drop

 cookie=0x0, duration=6770.463s, table=23, n_packets=0, n_bytes=0, idle_age=6770, priority=0 actions=drop

들어오는 흐름 예

이 예에서는 다음 br-int OVS 흐름을 보여줍니다.

cookie=0x0, duration=3181.679s, table=0, n_packets=2605, n_bytes=246456, idle_age=0,
priority=3,in_port=18,dl_vlan=172 actions=mod_vlan_vid:3,NORMAL
  • 외부 네트워크에서 VLAN 태그 172가 있는 패킷은 물리적 노드의 eth1 을 통해 br-ex 브리지에 도달합니다.
  • 패킷은 patch-peer phy-br- ex <-> int-br-ex를 통해 br- int 로 이동합니다.
  • 패킷은 흐름의 기준(in_port=18,dl_vlan=172)과 일치합니다.
  • 흐름 작업(actions=mod_vlan_vid:3,NORMAL)은 VLAN 태그 172를 내부 VLAN 태그 3으로 바꾸고 패킷을 일반 계층 2 처리로 인스턴스로 전달합니다.