成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深入理解openstack之網絡設置探索

云計算 OpenStack
本文中,我們會通過一個稍微復雜(其實仍然相當基本)的use case(兩個網絡間路由)探索網絡的設置。 路由使用的組件與連通內部網絡相同,使用namespace創建一個隔離的container,允許subnet間的網絡包中轉。

前文中,我們學習了openstack網絡使用的幾個基本網絡組件,并通過一些簡單的use case解釋網絡如何連通的。本文中,我們會通過一個稍微復雜(其實仍然相當基本)的use case(兩個網絡間路由)探索網絡的設置。 路由使用的組件與連通內部網絡相同,使用namespace創建一個隔離的container,允許subnet間的網絡包中轉。

記住我們在***篇文章中所說的,這只是使用OVS插件的例子。openstack還有很多插件使用不同的方式,我們提到的只是其中一種。

Use case #4: Routing traffic between two isolated networks

現實中,我們會創建不同的網絡用于不同的目的。我們也會需要把這些網絡連接起來。因為兩個網絡在不同的IP段,我們需要router將他們連接起來。為了分析這種設置,我們創建另一個network(net2)并配置一個20.20.20.0/24的subnet。在創建這個network后,我們啟動一個Oracle Linux的虛擬機,并連接到net2。下圖是從OpenstackGUI上看到的網絡拓撲圖:

[[123668]]

進一步探索,我們會在openstack網絡節點上看到另一個namespace,這個namespace用于為新創建的網絡提供服務?,F在我們有兩個namespace,每個network一個。

  1. # ip netns list 
  2. qdhcp-63b7fcf2-e921-4011-8da9-5fc2444b42dd 
  3. qdhcp-5f833617-6179-4797-b7c0-7d420d84040c

可以通過nova net-list查看network的ID信息,或者使用UI查看網絡信息。

  1. # nova net-list 
  2. +--------------------------------------+-------+------+ 
  3. | ID                                   | Label | CIDR | 
  4. +--------------------------------------+-------+------+ 
  5. | 5f833617-6179-4797-b7c0-7d420d84040c | net1  | None | 
  6. | 63b7fcf2-e921-4011-8da9-5fc2444b42dd | net2  | None | 
  7. +--------------------------------------+-------+------+ 

我們新創建的network,net2有自己的namespace,這個namespace與net1是分離的。在namespace中,我們可以看到兩個網絡接口,一個local,一個是用于DHCP服務。

  1. # ip netns exec qdhcp-63b7fcf2-e921-4011-8da9-5fc2444b42dd ip addr 
  2. 1: lo:  mtu 65536 qdisc noqueue state UNKNOWN 
  3.     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
  4.     inet 127.0.0.1/8 scope host lo 
  5.     inet6 ::1/128 scope host 
  6.        valid_lft forever preferred_lft forever 
  7. 19: tap16630347-45:  mtu 1500 qdisc noqueue state UNKNOWN 
  8.     link/ether fa:16:3e:bd:94:42 brd ff:ff:ff:ff:ff:ff 
  9.     inet 20.20.20.3/24 brd 20.20.20.255 scope global tap16630347-45 
  10.     inet6 fe80::f816:3eff:febd:9442/64 scope link 
  11.        valid_lft forever preferred_lft forever 

net1和net2兩個network沒有被聯通,我們需要創建一個router,通過router將兩個network聯通。Openstack Neutron向用戶提供了創建router并將兩個或多個network連接的能力。router其實只是一個額外的namespace。使用 Neutron創建router可以通過GUI或者命令行操作:

  1. # neutron router-create my-router 
  2. Created a new router: 
  3. +-----------------------+--------------------------------------+ 
  4. | Field                 | Value                                | 
  5. +-----------------------+--------------------------------------+ 
  6. | admin_state_up        | True                                 | 
  7. | external_gateway_info |                                      | 
  8. | id                    | fce64ebe-47f0-4846-b3af-9cf764f1ff11 | 
  9. | name                  | my-router                            | 
  10. | status                | ACTIVE                               | 
  11. | tenant_id             | 9796e5145ee546508939cd49ad59d51f     | 
  12. +-----------------------+--------------------------------------+ 

現在我們將兩個netwrok通過router連接:

查看subnet的ID:

  1. # neutron subnet-list 
  2. +--------------------------------------+------+---------------+------------------------------------------------+ 
  3. | id                                   | name | cidr          | allocation_pools                               | 
  4. +--------------------------------------+------+---------------+------------------------------------------------+ 
  5. | 2d7a0a58-0674-439a-ad23-d6471aaae9bc |      | 10.10.10.0/24 | {"start""10.10.10.2""end""10.10.10.254"} | 
  6. | 4a176b4e-a9b2-4bd8-a2e3-2dbe1aeaf890 |      | 20.20.20.0/24 | {"start""20.20.20.2""end""20.20.20.254"} | 
  7. +--------------------------------------+------+---------------+------------------------------------------------+ 

將subnet 10.10.10.0/24添加到router:

  1. # neutron router-interface-add fce64ebe-47f0-4846-b3af-9cf764f1ff11 subnet=2d7a0a58-0674-439a-ad23-d6471aaae9bc 
  2. Added interface 0b7b0b40-f952-41dd-ad74-2c15a063243a to router fce64ebe-47f0-4846-b3af-9cf764f1ff11. 

將subnet 20.20.20.0/24添加到router:

  1. # neutron router-interface-add fce64ebe-47f0-4846-b3af-9cf764f1ff11 subnet=4a176b4e-a9b2-4bd8-a2e3-2dbe1aeaf890 
  2. Added interface dc290da0-0aa4-4d96-9085-1f894cf5b160 to router fce64ebe-47f0-4846-b3af-9cf764f1ff11. 

此時,我們在查看網絡拓撲會發現兩個網絡被router打通:

[[123669]]

 

我們還可以發現兩個網絡接口連接到router,作為各自subnet的gateway。

我們可以看到為router創建的namespace。

  1. 我們還可以發現兩個網絡接口連接到router,作為各自subnet的gateway。 
  2.  
  3. 我們可以看到為router創建的namespace。  

我們進入namespace內部可以看到:

  1. # ip netns exec qrouter-fce64ebe-47f0-4846-b3af-9cf764f1ff11 ip addr   
  2. 1: lo:  mtu 65536 qdisc noqueue state UNKNOWN   
  3.     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00   
  4.     inet 127.0.0.1/8 scope host lo   
  5.     inet6 ::1/128 scope host   
  6.        valid_lft forever preferred_lft forever   
  7. 20: qr-0b7b0b40-f9:  mtu 1500 qdisc noqueue state UNKNOWN   
  8.     link/ether fa:16:3e:82:47:a6 brd ff:ff:ff:ff:ff:ff   
  9.     inet 10.10.10.1/24 brd 10.10.10.255 scope global qr-0b7b0b40-f9   
  10.     inet6 fe80::f816:3eff:fe82:47a6/64 scope link   
  11.        valid_lft forever preferred_lft forever   
  12. 21: qr-dc290da0-0a:  mtu 1500 qdisc noqueue state UNKNOWN   
  13.     link/ether fa:16:3e:c7:7c:9c brd ff:ff:ff:ff:ff:ff   
  14.     inet 20.20.20.1/24 brd 20.20.20.255 scope global qr-dc290da0-0a   
  15.     inet6 fe80::f816:3eff:fec7:7c9c/64 scope link   
  16.        valid_lft forever preferred_lft forever   

我們看到兩個網絡接口,“qr-dc290da0-0a“ 和 “qr-0b7b0b40-f9。這兩個網絡接口連接到OVS上,使用兩個network/subnet的gateway IP。

  1. # ovs-vsctl show 
  2. 8a069c7c-ea05-4375-93e2-b9fc9e4b3ca1 
  3.     Bridge "br-eth2" 
  4.         Port "br-eth2" 
  5.             Interface "br-eth2" 
  6.                 type: internal 
  7.         Port "eth2" 
  8.             Interface "eth2" 
  9.         Port "phy-br-eth2" 
  10.             Interface "phy-br-eth2" 
  11.     Bridge br-ex 
  12.         Port br-ex 
  13.             Interface br-ex 
  14.                 type: internal 
  15.     Bridge br-int 
  16.         Port "int-br-eth2" 
  17.             Interface "int-br-eth2" 
  18.         Port "qr-dc290da0-0a" 
  19.             tag: 2 
  20.             Interface "qr-dc290da0-0a" 
  21.                 type: internal 
  22.         Port "tap26c9b807-7c" 
  23.             tag: 1 
  24.             Interface "tap26c9b807-7c" 
  25.                 type: internal 
  26.         Port br-int 
  27.             Interface br-int 
  28.                 type: internal 
  29.         Port "tap16630347-45" 
  30.             tag: 2 
  31.             Interface "tap16630347-45" 
  32.                 type: internal 
  33.         Port "qr-0b7b0b40-f9" 
  34.             tag: 1 
  35.             Interface "qr-0b7b0b40-f9" 
  36.                 type: internal 
  37.     ovs_version: "1.11.0" 

我們可以看到,這些接口連接到”br-int",并打上了所在network對應的VLAN標簽。這里我們可以通過gateway地址(20.20.20.1)成功的ping通router namespace:

[[123670]]

我們還可以看到IP地址為20.20.20.2可以ping通IP地址為10.10.10.2的虛擬機:

[[123671]]

兩個subnet通過namespace中的網絡接口互相連通。在namespace中,Neutron將系統參數net.ipv4.ip_forward設置為1。命令查看如下:

  1. # ip netns exec qrouter-fce64ebe-47f0-4846-b3af-9cf764f1ff11 sysctl net.ipv4.ip_forward 
  2. net.ipv4.ip_forward = 1 

我們可以看到namespace中的系統參數net.ipv4.ip_forward被設置,這種設置不會對namespace外產生影響。

總結

創建router時,Neutron會創建一個叫qrouter-的namespace。subnets通過OVS的br-int網橋上的網絡接口接入 router。網絡接口被設置了正確的VLAN,從而可以連入它們對應的network。例子中,網絡接口qr-0b7b0b40-f9的IP被設置為 10.10.10.1,VLAN標簽為1,它可以連接到“net1”。通過在namespace中設置系統參數net.ipv4.ip_forward為 1,從而允許路由生效。

本文介紹了如何使用network namespace創建一個router。下一篇文章中,我們會探索浮動IP如何使用iptables工作。這也許更復雜但是依然使用這些基本的網絡組件。

原文出自: http://blog.csdn.net/halcyonbaby/article/details/41604459

 

責任編輯:Ophira 來源: 追尋神跡的博客
相關推薦

2014-12-04 14:01:54

openstacknetworkneutron

2014-12-01 15:38:33

openstacknetworkneutron

2016-09-01 12:37:13

OpenStack虛擬機Metadata

2014-11-27 15:32:31

openstacknetworkovs

2021-02-17 11:25:33

前端JavaScriptthis

2022-04-24 10:42:59

Kubernete容器網絡Linux

2022-09-05 22:22:00

Stream操作對象

2017-05-22 16:00:14

2017-05-04 15:36:54

Openstack Q實現實踐

2018-12-27 12:34:42

HadoopHDFS分布式系統

2019-03-18 09:50:44

Nginx架構服務器

2012-08-31 10:00:12

Hadoop云計算群集網絡

2012-11-08 14:47:52

Hadoop集群

2013-07-31 10:04:42

hadoopHadoop集群集群和網絡

2016-12-08 15:36:59

HashMap數據結構hash函數

2020-07-21 08:26:08

SpringSecurity過濾器

2010-06-01 15:25:27

JavaCLASSPATH

2024-04-07 00:04:00

Go語言Map

2023-11-30 09:45:38

Java工具

2020-09-23 10:00:26

Redis數據庫命令
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品久久久久久国产 | 99久久精品视频免费 | 亚洲日韩第一页 | 在线观看亚洲 | 成人免费淫片aa视频免费 | 日本一二三区电影 | 欧美精品一区在线观看 | 91久久精品国产91久久性色tv | 欧美一级视频 | 视频在线h| a欧美| 毛片免费在线 | 亚州综合在线 | 精品国产亚洲一区二区三区大结局 | 成人在线视频免费播放 | 日韩和的一区二区 | a在线视频| 日韩在线观看 | 日韩精品一区二区三区 | 日本一区二区三区精品视频 | 日本免费在线 | 久久综合伊人 | 国产精品无码专区在线观看 | 中文字幕一区二区三区不卡 | 五十女人一级毛片 | 亚洲欧美v| 成人av一区二区亚洲精 | 成年无码av片在线 | 日韩一区二区三区在线视频 | 热re99久久精品国产99热 | 国产精品完整版 | 四虎成人免费视频 | 国产在线a | 国产在线高清 | 日韩精品一区二区三区免费观看 | 欧美区日韩区 | 国产一区二区三区精品久久久 | 91国内精品久久 | 在线观看免费av网 | 国产成人网 | 国产精品视频免费观看 |