Skip to the content.

Tìm hiểu network traffic flow trong Neutron sử dụng OpenvSwitch.

1. Mạng Provider

1.1. Kiến trúc các thành phần Openstack networking

Các ảnh trên không bao gồm controller node vì nó không xử lý luồng mạng của các máy ảo.

1.2. Luồng đi của mạng trong mô hình Provider.

Phần sau sẽ mô tả luồng đi của lưu lượng mạng trong hai kịch bản phổ biến là North-south và East-west. Lưu lượng mạng North-south di chuyển giữa máy ảo và mạng bên ngoài như là internet. Lưu lượng mạng East-west di chuyển giữa các máy ảo trong cùng hoặc khác mạng với nhau. Ở tất cả các kịch bản, hạ tầng mạng vật lý phụ trách switching và routing giữa mạng provider với mạng ngoài như Internet.

1.2.1 Kịch bản North-south

Máy ảo được đặt trong mạng provider và thực hiện gửi gói tin ra ngoài internet. Trong mô hình mạng sử dụng OVS(OpenvSwitch) vẫn sử dụng Linux bridge để áp dụng security group cho các máy ảo.

Các bước sau đây liên quan đến compute node:

  1. Interface của máy ảo(1) chuyển tiếp gói tin đến port của máy ảo(2) trên security group bridge thông qua veth pair.
  2. Các rule của security group(3) trên security group bridge xử lý việc liên quan đến tường lửa và theo dõi kết nối cho gói tin.
  3. Port của OVS trên security group bridge (4) chuyển tiếp gói tin đến port của security group bridge trên OVS integration bridge(5) thông qua veth patch.
  4. OVS Integration bridge thêm một VLAN tag nội bộ cho gói tin.
  5. Patch port int-br-provider trên OVS Integration bridge (6) chuyển tiếp gói tin đến port phy-br-provider trên OVS Provider bridge.
  6. OVS provider bridge đổi VLAN tag nội bộ sang VLAN tag 101 của hệ thống mạng.
  7. Port mạng trên OVS provider network chuyển tiếp gói tin đến interface vật lý(9).
  8. Interface vật lý chuyển tiếp gói tin cho switch ở hạ tầng mạng vật lý(10).

Các bước sau liên quan đến hạ tầng mạng vật lý.

  1. Switch gỡ Vlan tag 101 khỏi gói tin và chuyển tiếp nó đến router(11)
  2. Router định tuyến gói tin từ mạng provider(12) ra mạng ngoài(13) và chuyển tiếp gói tin đến switch(14)
  3. Switch chuyển tiếp gói tin ra mạng ngoài(15).
  4. Mạng ngoài nhận gói tin (16).

1.2.2. Kịch bản East-west: Hai máy ảo cùng mạng

Để mô tả rõ luồng đi của mạng giữa hay máy trong cùng một mạng, mô hình sử dụng ở đây là hai máy ảo cùng mạng nhưng nằm trên hai compute node khác nhau.

Các bước sau đây liên quan đến compute node 1:

  1. Interface của máy ảo(1) chuyển tiếp gói tin đến port của máy ảo(2) trên security group bridge thông qua veth pair.
  2. Các rule của security group(3) trên security group bridge xử lý việc liên quan đến tường lửa và theo dõi kết nối cho gói tin.
  3. Port của OVS trên security group bridge (4) chuyển tiếp gói tin đến port của security group bridge trên OVS integration bridge(5) thông qua veth patch.
  4. OVS Integration bridge thêm một VLAN tag nội bộ cho gói tin.
  5. Patch port int-br-provider trên OVS Integration bridge (6) chuyển tiếp gói tin đến port phy-br-provider trên OVS Provider bridge.
  6. OVS provider bridge đổi VLAN tag nội bộ sang VLAN tag 101 của hệ thống mạng.
  7. Port mạng trên OVS provider network chuyển tiếp gói tin đến interface vật lý(9).
  8. Interface vật lý chuyển tiếp gói tin cho switch ở hạ tầng mạng vật lý(10).

Các bước sau đây liên quan đến hạ tầng mạng vật lý:

  1. Switch chuyển hướng gói tin từ compute node 1 đến compute node 2.

Các bước sau đây liên quan đến compute node 2:

  1. Interface vật lý(12) chuyển tiếp gói tin đến network port(13) trên OVS provider bridge.
  2. Patch port phy-br-provider(14) trên OVS provider bridge chuyển tiếp gói tin đến patch port int-br-provider(15) trên OVS Integration bridge.
  3. OVS integration bridge đổi VLAN tag 101 thành VLAN tag nội bộ.
  4. Port của security group bridge(16) trên OVS integration bridge chuyển tiếp gói tin đến port của OVS(17) trên security group bridge thông qua veth pair.
  5. Các rule của security group(18) trên security group bridge xử lý việc liên quan đến tường lửa và theo dõi kết nối cho gói tin.
  6. Port của máy ảo trên security group bridge (19) chuyển gói tin đến interface trên máy ảo nhận (20).

1.2.3. Kịch bản East-West: Hai máy ảo khác mạng.

Ở kịch bản này, hai máy ảo với hai mạng khác nhau được đặt cùng trên một compute node.

Các bước sau đây liên quan đến compute node 1:

  1. Interface của máy ảo(1) chuyển tiếp gói tin đến port của máy ảo(2) trên security group bridge thông qua veth pair.
  2. Các rule của security group(3) trên security group bridge xử lý việc liên quan đến tường lửa và theo dõi kết nối cho gói tin.
  3. Port của OVS trên security group bridge (4) chuyển tiếp gói tin đến port của security group bridge trên OVS integration bridge(5) thông qua veth patch.
  4. OVS Integration bridge thêm một VLAN tag nội bộ cho gói tin.
  5. Patch port int-br-provider trên OVS Integration bridge (6) chuyển tiếp gói tin đến port phy-br-provider trên OVS Provider bridge.
  6. OVS provider bridge đổi VLAN tag nội bộ sang VLAN tag 101 của hệ thống mạng.
  7. Port mạng trên OVS provider network chuyển tiếp gói tin đến interface vật lý(9).
  8. Interface vật lý chuyển tiếp gói tin cho switch ở hạ tầng mạng vật lý(10).

Các bước sau liên quan đến hạ tầng mạng vật lý:

  1. Switch gỡ Vlan tag 101 khỏi gói tin và chuyển tiếp nó đến router(11).
  2. Router định tuyến gói tin từ mạng Network 1(vlan 101)(12) đến network 2(vlan 102) (13) và chuyển tiếp gói tin đến switch(14).
  3. Switch thêm VLAN tag 102 cho gói tin và chuyển về compute node 1(15).

Các bước sau liên quan đến compute node:

  1. Interface vật lý(16) chuyển tiếp gói tin đến network port(17) trên OVS provider bridge.
  2. Patch port phy-br-provider(19) trên OVS provider bridge chuyển tiếp gói tin đến patch port int-br-provider(19) trên OVS Integration bridge.
  3. OVS integration bridge đổi VLAN tag 102 thành VLAN tag nội bộ.
  4. Port của security group bridge(20) trên OVS integration bridge gỡ Vlan tag nội bộ và chuyển tiếp gói tin đến port của OVS(21) trên security group bridge thông qua veth pair.
  5. Các rule của security group(22) trên security group bridge xử lý việc liên quan đến tường lửa và theo dõi kết nối cho gói tin.
  6. Port của máy ảo trên security group bridge (23) chuyển gói tin đến interface trên máy ảo nhận (24)

2. Self-service

2.1. Kiến trúc kết nối và các thành phần.

2.2. Một số quy ước trong Neutron OVS

2.3Luồng đi của mạng trong mô hình Self-service.

Phần sau sẽ mô tả luồng đi của lưu lượng mạng trong hai kịch bản phổ biến là North-south và East-west. Lưu lượng mạng North-south di chuyển giữa máy ảo và mạng bên ngoài như là internet. Lưu lượng mạng East-west di chuyển giữa các máy ảo trong cùng hoặc khác mạng với nhau. Ở tất cả các kịch bản, hạ tầng mạng vật lý phụ trách switching và routing giữa mạng provider với mạng ngoài như Internet.

Kịch bản North-South 1: Máy ảo với địa chỉ Ip cố định.

Trong mô hình này, Network node sẽ thực hiện SNAT để gửi các traffig của máy ảo ra internet.

Các bước sau liên quan đến compute node:

  1. Interface của máy ảo(1) chuyển tiếp gói tin đến port của máy ảo(2) trên security group bridge thông qua veth pair.
  2. Các rule của security group(3) trên security group bridge xử lý việc liên quan đến tường lửa và theo dõi kết nối cho gói tin.
  3. Port của OVS trên security group bridge (4) chuyển tiếp gói tin đến port của security group bridge trên OVS integration bridge(5) thông qua veth patch.
  4. OVS Integration bridge thêm một VLAN tag nội bộ cho gói tin.
  5. OVS Integration bridge đổi Vlan ID nội bộ thành một tunnel ID nội bộ.
  6. Patch port(6) của OVS Integration bridge chuyển tiếp gói tin đến patch port(7) cảu OVS Tunnel bridge.
  7. OVS Tunnel bridge(8) gói gói tin với VNI 101.
  8. Interface vật lý(9) dùng cho mạng overlay chuyển tiếp gói tin đến network node thông qua mạng overlay(10).

Các bước sau liên quan đến Network node:

  1. Interface vật lý(11) dùng cho mạng overlay nhận và chuyển tiếp gói tin đến OVS Tunnel Bridge(12).
  2. OVS Tunnel Bridge gỡ gói tin để biết VNI của gói tin và thêm một Tunnel ID nội bộ cho nó.
  3. OVS Tunnel Bridge đổi tunnel ID nội bộ thành Vlan ID nội bộ.
  4. Patch port(13) của OVS Tunnel Bridge chuyển tiếp gói tin đến patch port(14) của OVS Integration bridge.
  5. Port của OVS Integration bridge(15) sử dụng cho mạng selfservice xóa Vlan tag nội bộ và chuyển tiếp gói tin đến interface mạng self-service trên Router namespace.
    • Với địa chỉ IPv4 thì router sẽ thực hiện SNAT, thay đổi địa chỉ Ip nguồn của gói tin thành địa chỉ Ip của router trên mạng provider, sau đó gửi đến địa chỉ gateway của mạng provider thông qua default gateway interface(17) của router.
    • Với IPv6, router không thực hiện SNAT mà thay vào đó định tuyến gói tin để gửi đến địa chỉ Ip next hop thông qua default gateway interface(17) của router.
  6. Router chuyển tiếp gói tin đến port cho mạng Provider(18) trên OVS Integration bridge.
  7. OVS Integration bridge thêm Vlan tag nội bộ vào gói tin.
  8. Patch port int-br-provider(19) của OVS Integration bridge chuyển tiếp gói tin cho patch port phy-br-provider(20) của OVS Provider Bridge.
  9. OVS Provider bridge đổi Vlan tag nội bộ thành Vlan 101 tag của hạ tầng mạng vật lý.
  10. Port mạng(21) của OVS Provider bridge chuyển tiếp gói tin đến interface vật lý(22) của mạng provider.
  11. Interface vật lý chuyển tiếp gói tin đến hạ tầng mạng vật lý.(23)

Kịch bản North-South 2: Máy ảo với địa chỉ floating IPv4.

Khi máy ảo sử dụng địa chỉ floating IP, network node sẽ thực hiện SNAT cho kết nối từ máy ảo ra ngoài và DNAT cho các kết nối từ ngoài vào máy ảo thông quan địa chỉ floating.

Trường hợp gói tin được gửi từ máy ảo ra ngoài sẽ giống với kịch bản North-south 1, chỉ khác là khi SNAT thì router sẽ sửa địa chỉ nguồn của gói tin thành địa chỉ floating IP của máy ảo chứ không sử dụng địa chỉ mạng provider của router.

Trường hợp này là gói tin sẽ được gửi từ một máy ở mạng ngoài đến máy ảo.

Các bước liên quan network node:

  1. Từ mạng ngoài (1 ) gửi packet vào provider physical interface (2)
  2. Provider physical interface chuyển tiếp packet đến OVS provider bridge(3).
  3. OVS Provider bridge đổi VLAN 101 tag của mạng provider và thay bằng VLAN ID nội bộ.
  4. OVS provider bridge patch port(4) sẽ forward packet sang OVS integration bridge patch port(5)
  5. OVS integration bridge provider-network port(6) sẽ bỏ VLAN tag nội bộ và chuyển gói tin đến router namepsace(7). Router sẽ thực hiện DNAT để đổi địa chỉ Ip đích của gói tin là floating IP thành địa chỉ Ip của máy ảo và gửi gói tin đến gateway mạng self-service thông qua port mạng self-service(8) trên router.
  6. Router chuyển tiếp các gói tin sang OVS integration bridge (9)
  7. Tại OVS intergration bridge sẽ thêm các VLAN ID nội bộ, sau đó sẽ tìm Tunnel ID tương ứng
  8. OVS intergration bridge ( 10 ) chuyển các packet tới OVS tunnel bridge ( 11 )
  9. OVS tunnel bridge (12) gói các gói tin với VNI 101 và gửi nó đến physical interface.
  10. Physical interface sẽ cho phép các overlay network ( 13 ) gửi các packet đến compute node qua mạng overlay(14)

Trên Compute Node :

  1. Physical interface ( 15 ) sẽ chuyển tiếp các gói tin đến OVS tunnel bridge(16).
  2. OVS tunnel bridge gỡ đóng gói VNI và xác định Tunnel ID nội bộ thích hợp.
  3. OVS tunnel bridge đổi tunnel ID nội bộ với VLan tag nội bộ.
  4. OVS tunnel bridge patch-int port ( 17 ) sẽ chuyển các packet sang OVS ingrateion bridge patch-tun port(18)
  5. OVS integration bridge loại bỏ VLAN tag nội bộ.
  6. OVS integration bridge (19) gửi gói tin đến Security group bridge(20) thông qua một đường veth pair.
  7. Securtiy group sẽ thực hiện filtering ( 21 )
  8. Port của máy ảo trên security bridge(22) sẽ chuyển tiếp goi tin đến interface của máy ảo(23).

Kịch bản East-west 1: Các máy ảo cùng mạng

2.4 : Đông - Tây : các instance khác mạng

Trên Compute Node :

  1. Instance interface ( 1 ) forward packet đến Linux Bridge port ( 2 ) thông qua veth pair
  2. Security group ( 3 ) sẽ đảm nhiệm filter các packet
  3. Linux bridge port ( 4 ) sẽ forward packet đến OVS integration ( 5 ) thông qua veth pair
  4. OVS integration bridge sẽ thêm VLAN ID vào các packet
  5. OVS integration bridge thay đổi các VLAN ID thành Tunnel ID
  6. OVS integration bridge patch-tun ( 6 ) forward packet tới OVS tunnel bridge ( 7 ) patch-int
  7. OVS tunnel bridge ( 8 ) gán VNI vào các packet
  8. Underlay network ( 9 ) sẽ cho phép overlay network gửi các packet đến network node ( 10 )

Trên Network Node

  1. Underlay network interface ( 11 ) cho phép overlay network forward packet tới OVS tunnel bridge ( 12 )
  2. OVS tunnel bridge loại bỏ VNI và tag Tunnel ID cho packet
  3. OVS tunnel bridge loại bỏ tag Tunnel ID bằng VLAN ID
  4. OVS tunnel bridge patch port ( 13 ) forward packet tới OVS integration bridge patch-tun ( 14 )
  5. OVS intergation bridge ( 15 ) xóa bỏ VLAN ID các packet và forward lên interface của self-service router ( 15 )
  6. Router forward packet sang next-hop , gateway của mạng thứ 2 thông qua router interface( 17 )
  7. Router forward packet đến OVS integration bridge port self-service ( 2 )
  8. OVS integration bridge patch-tun ( 19 ) forward packet sang OVS tunnel bridge patch-ini patch port ( 20 )
  9. OVS tunnel bridge ( 21 ) tag VNI cho các packet
  10. Underlay network ( 22 ) sẽ cho phép overlay network ( 23 ) forward packet về compute node

Trên Compute Node

  1. Underlay network ( 24 ) cho phép overlay network forward packet ( 25 ) tới các OVS Tunnel Bridge
  2. OVS Tunnel Bridge gở bỏ VNI và tag Tunnel ID
  3. OVS Tunnel Bridge thay thế Tunnel ID thay thế bằng VLAN ID
  4. OVS Tunnel Bridge port ( 26 ) forward packet tới OVS integration bridge sử dụng patch port ( 27 )
  5. OVS integration sẽ remove VLAN trên các packet
  6. OVS integration bridge port ( 28 ) forward packet tới tới Linux Bridge ( 29 ) sử dụng veth pair
  7. Security group ( 30 ) sẽ filer các packet
  8. Linux Bridge ( 31 ) sẽ forward packet tới các instance interface ( 32 ) sử dụng veth pair

Nguồn tài liệu: