国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

深入理解openstack之public network

云計算 OpenStack
在上一篇文章中,我們介紹了openstack中的路由,了解到openstack如何通過namespace實現的router將兩個network連通。本文中,我們進一步分析路由功能,說明實現內部internal network和public network的路由(而不僅僅是internal network之間),和neutron如何將浮動IP配置給虛擬機,從而實現public network與虛擬機的連通。

在上一篇文章中,我們介紹了openstack中的路由,了解到openstack如何通過namespace實現的router將兩個 network連通。本文中,我們進一步分析路由功能,說明實現內部internal network和public network的路由(而不僅僅是internal network之間)。

我們還會分析neutron如何將浮動IP配置給虛擬機,從而實現public network與虛擬機的連通。

Use case #5: Connecting VMs to the public network

所謂“public network”,指openstack部署環境以外的網絡。這個網絡可以是datacenter中的另一個網絡、internet、或者一個不被openstack控制的私有網絡。

與public network通信,我們需要在openstack中創建一個network并設置為public。這個network用于虛擬機與public network通信。虛擬機不能直接連接到這個新創建的屬性為public的network,所有網絡流量必須使用openstack創建的router 從private network路由到public network。在openstack中創建public network,我們只需要使用neutron net-create 命令,并將router:external設置為True。

在我們的例子中,public newtork叫做“my-public”。

  1. # neutron net-create my-public --router:external=True 
  2. Created a new network: 
  3. +---------------------------+--------------------------------------+ 
  4. | Field                     | Value                                | 
  5. +---------------------------+--------------------------------------+ 
  6. | admin_state_up            | True                                 | 
  7. | id                        | 5eb99ac3-905b-4f0e-9c0f-708ce1fd2303 | 
  8. | name                      | my-public                            | 
  9. | provider:network_type     | vlan                                 | 
  10. | provider:physical_network | default                              | 
  11. | provider:segmentation_id  | 1002                                 | 
  12. | router:external           | True                                 | 
  13. | shared                    | False                                | 
  14. | status                    | ACTIVE                               | 
  15. | subnets                   |                                      | 
  16. | tenant_id                 | 9796e5145ee546508939cd49ad59d51f     | 
  17. +---------------------------+--------------------------------------+ 

在我們的環境中,控制節點的eth3是一個沒有綁定IP的網卡。我們使用它接入外部public network。因此我們將eth3加入OVS網橋"br-ex",Neutron會將虛擬機向外部網絡的發送的網絡包路由到這個bridge。

  1. # ovs-vsctl add-port br-ex eth3 
  2. # ovs-vsctl show 
  3. 8a069c7c-ea05-4375-93e2-b9fc9e4b3ca1 
  4.     Bridge br-ex 
  5.         Port br-ex 
  6.             Interface br-ex 
  7.                 type: internal 
  8.         Port "eth3" 
  9.             Interface "eth3" 

我們在eth3上創建了一個IP范圍是180.180.180.0/24的public network。這個public network存在于datacenter中,通過gateway 180.180.180.1可以連接到datacenter網絡。為了將這個網絡與Openstack環境相連,我們需要在“my-public"這個 network,上創建一個有相同IP范圍的subnet,并告訴neutron這個network的gateway。

  1. # neutron subnet-create my-public 180.180.180.0/24 --name public_subnet --enable_dhcp=False --allocation-pool start=180.180.180.2,end=180.180.180.100 --gateway=180.180.180.1 
  2. Created a new subnet: 
  3. +------------------+------------------------------------------------------+ 
  4. | Field            | Value                                                | 
  5. +------------------+------------------------------------------------------+ 
  6. | allocation_pools | {"start""180.180.180.2""end""180.180.180.100"} | 
  7. | cidr             | 180.180.180.0/24                                     | 
  8. | dns_nameservers  |                                                      | 
  9. | enable_dhcp      | False                                                | 
  10. | gateway_ip       | 180.180.180.1                                        | 
  11. | host_routes      |                                                      | 
  12. | id               | ecadf103-0b3b-46e8-8492-4c5f4b3ea4cd                 | 
  13. | ip_version       | 4                                                    | 
  14. | name             | public_subnet                                        | 
  15. | network_id       | 5eb99ac3-905b-4f0e-9c0f-708ce1fd2303                 | 
  16. | tenant_id        | 9796e5145ee546508939cd49ad59d51f                     | 
  17. +------------------+------------------------------------------------------+ 

然后,我們需要將router接入我們新創建的public network,使用下列命令創建:

  1. # neutron router-gateway-set my-router my-public 
  2. Set gateway for router my-router 

注意:我們在兩種情況下使用術語“public network",一個是datacenter中真實的public network,為了區分我們把它(180.180.180.0/24)叫做"external public network"。另一個是openstack中我們使用的"public network",我們稱之為“my-public"的接口網絡。我們還涉及兩個”gateways“,一個是外部Public network用的gateway(180.180.180.1),另一個是router中的gateway接口(180.180.180.2)。

執行上述的操作后,router上(之前已經擁有兩個網絡接口,連接兩個不同的internal network)增加了第三個網絡接口(被稱作gateway)。router可以有多個網絡接口,連接普通的internal subnet或者作為gateway連入“my-public"網絡。一個經常犯的錯誤是,試圖以通常網絡接口的方式接入public network,操作可能成功,但是卻并不能與外部網絡連通。在我們創建一個public network,subnet并接入router,網絡拓撲看起來是這樣的:

進入router的namespace中,我們看到其中增加了一個180.180.180.0/24網段IP的網絡接口,IP為180.180.180.2:

  1. # ip netns exec qrouter-fce64ebe-47f0-4846-b3af-9cf764f1ff11 ip addr 
  2. 22: qg-c08b8179-3b:  mtu 1500 qdisc noqueue state UNKNOWN                                                       
  3.     link/ether fa:16:3e:a4:58:40 brd ff:ff:ff:ff:ff:ff 
  4.     inet 180.180.180.2/24 brd 180.180.180.255 scope global qg-c08b8179-3b 
  5.     inet6 2606:b400:400:3441:f816:3eff:fea4:5840/64 scope global dynamic 
  6.        valid_lft 2591998sec preferred_lft 604798sec 
  7.     inet6 fe80::f816:3eff:fea4:5840/64 scope link 
  8.        valid_lft forever preferred_lft forever 
  9. .

在這里router的gateway地址180.180.180.2與虛擬機是聯通的,虛擬機可以ping到它。我 們也能從虛擬機ping到外部網絡的gateway180.180.180.1以及這個gateway所連的網絡。如果我們查看router namespace,發現iptables的NAT talbe中有以下兩行規則。

  1. # ip netns exec qrouter-fce64ebe-47f0-4846-b3af-9cf764f1ff11 iptables-save 
  2. -A neutron-l3-agent-snat -s 20.20.20.0/24 -j SNAT --to-source 180.180.180.2 
  3. -A neutron-l3-agent-snat -s 10.10.10.0/24 -j SNAT --to-source 180.180.180.2 
  4.   

因此,從net1或net2向外網發出的網絡包,其源IP地址會被修改為180.180.180.2。我們可以在虛擬機中ping外網的某個地址,看下請求包的IP地址是否是這個IP地址。

namespace中的路由表會把所有外部流量路由到外網的gateway(180.180.180.1)。

  1. #  ip netns exec  qrouter-fce64ebe-47f0-4846-b3af-9cf764f1ff11 route -n 
  2. Kernel IP routing table 
  3. Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 
  4. 0.0.0.0         180.180.180.1   0.0.0.0         UG    0      0        0 qg-c08b8179-3b 
  5. 10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 qr-15ea2dd1-65 
  6. 20.20.20.0      0.0.0.0         255.255.255.0   U     0      0        0 qr-dc290da0-0a 
  7. 180.180.180.0   0.0.0.0         255.255.255.0   U     0      0        0 qg-c08b8179-3b 

虛擬機中發出的流向public network的請求,會被NAT映射為源地址為180.180.180.2,然后發給public network的gateway。同樣,我們可以看到在namespace中ip forward功能是啟動的。

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

Use case #6: Attaching a floating IP to a VM

現在,虛擬機可以訪問public network。下一步,我們嘗試允許外部客戶訪問Openstack環境中的虛擬機,通過floating IP可以完成這個功能。 Floating IP由外部網絡提供,用戶可以將它設置給虛擬機,從而允許外部客戶接入虛擬機。

創建Floating IP,***步是按照上一個usecase的講解,將虛擬機連入外部網絡。第二步時使用命令行,產生一個浮動IP。

  1. # neutron floatingip-create public 
  2. Created a new floatingip: 
  3. +---------------------+--------------------------------------+ 
  4. | Field               | Value                                | 
  5. +---------------------+--------------------------------------+ 
  6. | fixed_ip_address    |                                      | 
  7. | floating_ip_address | 180.180.180.3                        | 
  8. | floating_network_id | 5eb99ac3-905b-4f0e-9c0f-708ce1fd2303 | 
  9. | id                  | 25facce9-c840-4607-83f5-d477eaceba61 | 
  10. | port_id             |                                      | 
  11. | router_id           |                                      | 
  12. | tenant_id           | 9796e5145ee546508939cd49ad59d51f     | 
  13. +---------------------+--------------------------------------+ 

根據"my-public" network的能力,用戶可以創建很多這樣的IP。將浮動IP與虛擬機關聯,可以通過命令行或者GUI完成。下圖是GUI的例子:

在router namespace中我們可以看到,新增加了3跳iptabales規則:

  1. 在router namespace中我們可以看到,新增加了3跳iptabales規則: 

這些規則主要是對Floating IP進行NAT操作。對于router收到的目的地址為180.180.180.3的請求,會被轉換成目標地址為20.20.20.2。反之亦然。綁定Floating IP后,我們可以連接到虛擬機。需要確認安全組規則已經被設置,從而允許這樣連接:

  1. 這些規則主要是對Floating IP進行NAT操作。對于router收到的目的地址為180.180.180.3的請求,會被轉換成目標地址為20.20.20.2。反之亦然。 
  2.  
  3. 綁定Floating IP后,我們可以連接到虛擬機。需要確認安全組規則已經被設置,從而允許這樣連接:  

這兩條規則,允許ping和ssh。

Iptables是一個復雜而強大的工具。如果想更好的理解iptables規則,可以查看iptables的幫助文件。

Summary

本文介紹了如何將openstack環境中的虛擬機與public network連通。通過namespace和routing table,虛擬機不僅能在openstack環境內的不同網絡間實現消息路由,還能與外部網絡連通。

本 文是這個系列文章的***一篇。網絡是opesntack最復雜的部分,是理解openstack的一個關鍵。閱讀這四篇文章,對理解和分析 openstack各種網絡拓撲是很好的入門。使用我們提到的這些內容,可以更好的理解諸如Firewall as a service、Load Balance as a service、Metadata service這些網絡概念。基本的學習方式是,進入namespace中,看究竟是如何利用Linux網絡能力實現這些功能的。

我們在最 開始說過,這些use case中我們只是使用了openstack眾多網絡配置方法的一種。我們的例子都是用了open vswitch 插件,可以獨立于網絡設備使用。通過與這里的例子對比,有助于分析其他的插件和功能。很多情況下,商業插件會使用open vswitch/bridges/namespace以及一些類似的方法和原理。

本系列文章的目的,在于讓大多數用戶了解 oepnstack網絡。文章中自下而上,使用一下簡單的usecase,試著分析了openstack network 的整個結構以及如何工作的。與網上的其他一些資料不同,我們沒有介紹各種openstack網絡agent以及他們的功能,而是講了他們做什么以及如何做 的。下一步,你可以查閱這些資料,試著了解不同的agents是如何實現這些功能的。

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

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

2014-12-01 15:38:33

openstacknetworkneutron

2014-12-03 13:10:10

openstacknetworkneutron

2016-09-01 12:37:13

OpenStack虛擬機Metadata

2021-02-17 11:25:33

前端JavaScriptthis

2017-05-04 15:36:54

Openstack Q實現實踐

2014-11-27 15:32:31

openstacknetworkovs

2018-12-27 12:34:42

HadoopHDFS分布式系統

2019-03-18 09:50:44

Nginx架構服務器

2022-09-05 22:22:00

Stream操作對象

2016-12-08 15:36:59

HashMap數據結構hash函數

2020-07-21 08:26:08

SpringSecurity過濾器

2010-06-01 15:25:27

JavaCLASSPATH

2025-06-05 05:51:33

2020-09-23 10:00:26

Redis數據庫命令

2019-06-25 10:32:19

UDP編程通信

2017-01-10 08:48:21

2017-08-15 13:05:58

Serverless架構開發運維

2025-05-06 00:43:00

MySQL日志文件MIXED 3

2024-02-21 21:14:20

編程語言開發Golang

2009-09-25 09:14:35

Hibernate日志
點贊
收藏

51CTO技術棧公眾號

日韩一级大片在线| 亚洲美女在线国产| 91免费视频网站| 综合在线影院| 欧美日本一道本在线视频| 日本调教视频在线观看| 91视频精品在这里| 国产成人生活片| 六月婷婷色综合| 欧美xxxx黑人又粗又长精品| 你懂的成人av| 91麻豆蜜桃| 亚洲性视频h| 国产精品一区二区三区观看| 欧美二区视频| 国产精品有限公司| 亚洲黄色三级| 日本一区不卡| 韩日av一区二区| 国产又粗又猛又爽又黄的网站| 国产一区二区影院| 婷婷五月综合缴情在线视频| 91在线观看污| 福利在线一区二区三区| 国产精品国产三级国产普通话三级| jizz欧美激情18| 国产精品久久久久久久久久免费看| 国产主播在线资源| 天天操天天综合网| 国产永久av在线| 日韩欧美一级二级| 国产精品蜜芽在线观看| 国产亚洲福利一区| 亚洲午夜精品| 国产成人精品久久| 亚洲欧美综合国产精品一区| 国产女人水真多18毛片18精品| 亚洲中午字幕| 女人床在线观看| 国产精品女上位| 在线播放免费| 精品久久久久香蕉网| videos性欧美另类高清| 欧美日韩爱爱视频| 日韩高清欧美| 久久伦理网站| 国产资源在线一区| 欧美大尺度做爰床戏| 亚洲va欧美va人人爽午夜 | 日韩电影在线观看永久视频免费网站 | 国产视频久久久| 国产美女亚洲精品7777| 8050国产精品久久久久久| 一区二区三区网站| 水蜜桃在线免费观看| 国产精品毛片久久久久久| 国产乱视频在线观看| 在线亚洲欧美视频| 999久久久精品国产| 日本久久高清视频| 午夜精品久久久久久久久| av日韩亚洲| 成人激情春色网| 日韩成人一区二区三区在线观看| 国产精品久久久久77777丨| 久久精品国产成人| 成人激情开心网| 日本一区免费看| 久久久久久毛片| 成人精品一区| 久久精品国产91精品亚洲 | 日韩欧美黄色影院| 亚洲五码在线| 久久久久久久久一区| 91毛片在线观看| 免费a在线观看| 一区二区三区视频在线| 99精品在线免费在线观看| 国产免费内射又粗又爽密桃视频| 亚洲美女一区二区三区| av在线资源| 成人免费视频网| 久久综合九色综合久久久精品综合| 高清美女视频一区| 91极品视频在线| 国产乱子伦视频一区二区三区| 亚洲精品视频在线免费| 久久亚洲精品网站| 免费在线看成人av| 免费播放片a高清在线观看| 欧美黑人性猛交| 韩国精品久久久| 巨骚激情综合| 91精品国产高清久久久久久91| 日韩av高清在线观看| 一区 二区 三区| 欧美日韩福利电影| 麻豆精品久久精品色综合| 黄页网址大全在线观看| 久久国产色av| 国产在线精品免费| 麻豆视频在线免费观看| 国产成人精品久久二区二区91| 不卡欧美aaaaa| 久草在线视频资源| 国产精品国模大尺度私拍| 成人欧美一区二区三区小说| 色婷婷综合久久久中字幕精品久久 | 一区二区三区在线播放欧美| 激情久久中文字幕| 在线视频毛片| 欧美中文在线视频| 久久久久九九视频| 亚洲精品国产嫩草在线观看| 午夜一区二区三区| 欧美精品 国产精品| 欧美精品国产| 一起操在线观看| 国产精品美女在线| 亚洲人成网站精品片在线观看| 免费看一区二区三区| 日韩精品―中文字幕| 一区二区三区 在线观看视| 久热成人在线视频| av电影在线地址| 亚洲一区二区三区免费看| 日韩一区二区三区电影| 午夜亚洲视频| 亚洲电影视频在线| 色视频一区二区三区| 日韩欧美国产精品| 日韩激情在线观看| 色在线中文字幕| 日本a在线天堂| 国产一区二区三区在线免费观看| 激情都市一区二区| 日韩精品美女| 国内自拍中文字幕| 一区二区三区国产在线观看| 福利一区二区在线观看| 久久精品嫩草影院| 农村妇女精品一二区| 神马久久久久久| 2020国产精品| 农村少妇一区二区三区四区五区 | 欧美高清视频| 日本日本精品二区免费| 欧美成人一区二区| 国产美女av一区二区三区| 天天做天天躁天天躁| 亚洲午夜精品一区 二区 三区| 精品视频一二三| 日韩一区二区影院| 日韩电影免费在线看| av2020不卡| 欧美aaa在线观看| 亚洲香蕉av在线一区二区三区| 狠狠色综合色综合网络| 九色成人搞黄网站| 亚洲精品乱码久久久久久自慰| 久久99亚洲精品| 国产精品久久免费看| 国产探花在线精品| 视频在线不卡| 欧美人与物videos另类| 亚洲男人的天堂在线| 久久综合丝袜日本网| 亚洲a级精品| 成人免费一区二区三区视频网站| 日本一区不卡| 综合136福利视频在线| 国产精品久久久久久亚洲伦| 亚洲精品在线观看91| 性欧美猛交videos| 国产91在线免费| 成人www视频在线观看| 欧美一区二区三区免费大片| 国产91丝袜在线18| 精品美女久久| av影院在线免费观看| 九色porny自拍| 国产视频一区二区三区四区| 一本色道久久综合狠狠躁篇的优点 | 国产日本欧洲亚洲| 久久视频国产| 国产一线二线在线观看| 久久久999视频| 成人h视频在线观看播放| 亚洲激情在线观看视频免费| www.日韩在线| 91视频一区| 国产一区一一区高清不卡| 国产污污在线观看| 久久免费视频2| 国产精品嫩草影院一区二区| 日韩av中文字幕在线| 一卡二卡三卡日韩欧美| 国产精品一区二区久激情瑜伽 | 91福利电影| 日韩动漫在线观看|