- 浏览: 1477804 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (691)
- linux (207)
- shell (33)
- java (42)
- 其他 (22)
- javascript (33)
- cloud (16)
- python (33)
- c (48)
- sql (12)
- 工具 (6)
- 缓存 (16)
- ubuntu (7)
- perl (3)
- lua (2)
- 超级有用 (2)
- 服务器 (2)
- mac (22)
- nginx (34)
- php (2)
- 内核 (2)
- gdb (13)
- ICTCLAS (2)
- mac android (0)
- unix (1)
- android (1)
- vim (1)
- epoll (1)
- ios (21)
- mysql (3)
- systemtap (1)
- 算法 (2)
- 汇编 (2)
- arm (3)
- 我的数据结构 (8)
- websocket (12)
- hadoop (5)
- thrift (2)
- hbase (1)
- graphviz (1)
- redis (1)
- raspberry (2)
- qemu (31)
- opencv (4)
- socket (1)
- opengl (1)
- ibeacons (1)
- emacs (6)
- openstack (24)
- docker (1)
- webrtc (11)
- angularjs (2)
- neutron (23)
- jslinux (18)
- 网络 (13)
- tap (9)
- tensorflow (8)
- nlu (4)
- asm.js (5)
- sip (3)
- xl2tp (5)
- conda (1)
- emscripten (6)
- ffmpeg (10)
- srt (1)
- wasm (5)
- bert (3)
- kaldi (4)
- 知识图谱 (1)
最新评论
-
wahahachuang8:
我喜欢代码简洁易读,服务稳定的推送服务,前段时间研究了一下go ...
websocket的helloworld -
q114687576:
http://www.blue-zero.com/WebSoc ...
websocket的helloworld -
zhaoyanzimm:
感谢您的分享,给我提供了很大的帮助,在使用过程中发现了一个问题 ...
nginx的helloworld模块的helloworld -
haoningabc:
leebyte 写道太NB了,期待早日用上Killinux!么 ...
qemu+emacs+gdb调试内核 -
leebyte:
太NB了,期待早日用上Killinux!
qemu+emacs+gdb调试内核
试验步骤:
1.创建内部网络
2.创建vm
3.创建路由
4.路由连接内部网络
5.创建外部网络
6.路由连接外部网络
7.测试vm ping baidu ,到此成功让vm访问互联网
8.创建floating ip,让互联网访问这台vm
注意,多观察
ip netns
brctl show的变化
★★★★★★★★★★★基础知识★★★★★★★★★★★★★★
三个概念:
1.网络,子网:
如果是内网对应命名空间,桥接,dnsmasq进程(dhcp的)
如果是外网没有命名空间,只有桥
2.port
3.路由
查看命名空间
ip netns
查看桥
brctl show
查看命名空间里的ip
ip netns exec <netns-name> ip a
★★★★★★★★★★★★创建内部网络★★★★★★★★★★★★:
neutron net-list
neutron net-create <网络名字>
创建子网
neutron subnet-create --name <子网名字> <网络名字> 网段
验证:
qdhcp- 开头的就是网络,后面跟网络id,
brctl show
桥上的tap<port-id>对应命名空间里的ns-<port-id>
ip netns exec <qdhcp-netid> ip a
brctl show
查看
是一个veth pair
ps -ef|grep dnsmasq
对应网络id
★★★★★★★★★★创建vm的方式:[]表示可选参数 <>表示参数替换
1.根据网络创建vm(这种方法了解,本试验不用):
nova boot [--availability-zone nova::网络节点] --image <镜像> --flavor <flavor> --nic net-id=<网络id> <vm-name>
注意这里,不能指定子网,如果是多个子网,会自动分配ip
2.如果想给vm指定ip: 创建port,给port指定ip ,指定port再创建vm(这种方法连接):
neutron port-create --fixed-ip subnet_id=<subnet-id>,ip_address=<子网内的ip> --name <port名字> <网络名字>
neutron port-list 查看已经有两个port了
一个是属于网络命名空间的,一个是空闲的,准备绑定到vm的,
ip netns
ip netns exec qdhcp-23fa78be-a22a-4946-b175-20b5e5b92b3c ip a
指定port创建vm:
nova boot --flavor 1 --image cirros --nic port-id=<port-id> <vm-name>
测试vm
进入vm:
ifconfig
★★★★★★★创建路由器★★★★★★★★★★
创建路由器:
neutron router-create --distributed=false <路由名字>
☆★linuxbridge支持非分布式路由,openvswitch支持分布式路由
网络子网添加到路由器上:
neutron router-interface-add <路由名字> <子网名字>
验证:
ip netns
qrouter-开头的是路由器,后面是router-id
ip netns exec qrouter-d62d8aca-0b9e-4e59-8c79-37aca9fe6696 ip a
路由ip 为10.1.0.1
console进入vm ping试验一下
★★★★★★★★★★★★★★
创建外部网络:
创建网络:
neutron net-create --shared <外网名字> --router:external=True --provider:network_type flat --provider:physical_network <★ml2配置的外网flat_networks的名字>
#neutron net-create --shared hello-public --router:external=True --provider:network_type flat --provider:physical_network provider
★
其中★★★★★一定要注意一下最后一个参数一定不要写错
网络节点的:
--provider:physical_network
vim /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2_type_flat]
flat_networks = hello-provider
vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
[linux_bridge]
physical_interface_mappings = hello-provider:eth0
改成其他的不好使
这两个配置文件一定要对应,
*似乎不好使
创建子网:
neutron subnet-create --name <子网名字> <网络名字> --allocation-pool start=<开始ip>,end=<截止ip> --gateway=网关ip --enable_dhcp=False <网段>
例如
★
注意:139是办公网段,一定要都ping一次,不要和其他人冲突了
★★★★★★★★★★★★★★★★外网接口添加到路由器上:
把外部网络的网关设置到路由器上
★
这步骤一定要检查网桥是否存在,如果
brctl show
没有路由器到外网的网桥,则没有建成功★★★★★
不要使用:
neutron router-interface-add <router-name> <外网子网名称>
neutron router-interface-add hello-router hello-subnet-public
neutron router-interface-delete hello-router hello-subnet-public
这个是内网绑定路由和网络使用的
验证:
qr-d0b3aac4-65@if23的ip为 192.168.139.114/20
如果使用了内网的绑定方式来绑定外网则得到
qr-d0b3aac4-65@if23的ip为 192.168.128.1/20
测试vm,
console连接进去,
如果网络不对,需要在vm里面重启网络或重启vm
测试是否能ping到百度
先ping 114.114.114.114
再ping baidu
★★★★★★★★创建floating ip★★★★★★★★★★
创建
nova get-vnc-console hello-vm novnc
连到vm,ifconfig是看不到115这个ip的,
但是从controller能ssh过来
如果不行就重启试试
#nova reboot hello-vm
★★★★★★★★★如果遇到问题★★★★★★★★★★★★★★★
如果不通的话,删掉外网,重新建
查看历史记录的时候带时间
export HISTTIMEFORMAT="%F %T `whoami` "
history
清理环境:
删除vm
删除网络和路由的连接,
外网用:
neutron router-gateway-clear <router-name> <net-name>
内网用
neutron router-interface-delete <ROUTER> <INTERFACE>
外网删除和路由的连接
内网删除和路由的连接
删除端口,网络,路由
neutron port-delete <port-name>
neutron net-delete <net-id>
再删网络和vm
########################调试脚本####mysql_openstack.sh #######################
./mysql_openstack.sh neutron
l2poplation
bridge fdb
ip neigh
1.创建内部网络
2.创建vm
3.创建路由
4.路由连接内部网络
5.创建外部网络
6.路由连接外部网络
7.测试vm ping baidu ,到此成功让vm访问互联网
8.创建floating ip,让互联网访问这台vm
注意,多观察
ip netns
brctl show的变化
★★★★★★★★★★★基础知识★★★★★★★★★★★★★★
三个概念:
1.网络,子网:
如果是内网对应命名空间,桥接,dnsmasq进程(dhcp的)
如果是外网没有命名空间,只有桥
2.port
3.路由
neutron net-list neutron subnet-list neutron port-list neutron router-list neutron router-port-list <router-id>
查看命名空间
ip netns
查看桥
brctl show
查看命名空间里的ip
ip netns exec <netns-name> ip a
★★★★★★★★★★★★创建内部网络★★★★★★★★★★★★:
neutron net-list
neutron net-create <网络名字>
neutron net-create hello-private
创建子网
neutron subnet-create --name <子网名字> <网络名字> 网段
neutron subnet-create --name hello-sub-private hello-private 10.1.0.0/28
验证:
neutron port-list ip netns
qdhcp- 开头的就是网络,后面跟网络id,
brctl show
桥上的tap<port-id>对应命名空间里的ns-<port-id>
ip netns exec <qdhcp-netid> ip a
brctl show
查看
是一个veth pair
ps -ef|grep dnsmasq
对应网络id
★★★★★★★★★★创建vm的方式:[]表示可选参数 <>表示参数替换
1.根据网络创建vm(这种方法了解,本试验不用):
nova boot [--availability-zone nova::网络节点] --image <镜像> --flavor <flavor> --nic net-id=<网络id> <vm-name>
nova boot --availability-zone nova::mcom2 --image cirros --flavor 1 --nic net-id=23fa78be-a22a-4946-b175-20b5e5b92b3c One
注意这里,不能指定子网,如果是多个子网,会自动分配ip
2.如果想给vm指定ip: 创建port,给port指定ip ,指定port再创建vm(这种方法连接):
neutron port-create --fixed-ip subnet_id=<subnet-id>,ip_address=<子网内的ip> --name <port名字> <网络名字>
neutron port-create --fixed-ip subnet_id=5bcc6a89-9d6e-4126-92f3-b6a12174c5a1,ip_address=10.1.0.6 --name hello-port hello-private
neutron port-list 查看已经有两个port了
一个是属于网络命名空间的,一个是空闲的,准备绑定到vm的,
ip netns
ip netns exec qdhcp-23fa78be-a22a-4946-b175-20b5e5b92b3c ip a
指定port创建vm:
nova boot --flavor 1 --image cirros --nic port-id=<port-id> <vm-name>
nova boot --flavor 1 --image cirros --nic port-id=b52bc9c9-e4c7-455b-aa55-5256a026aaea hello-vm
测试vm
openstack console url show hello-vm nova get-vnc-console hello-vm novnc
进入vm:
ifconfig
★★★★★★★创建路由器★★★★★★★★★★
创建路由器:
neutron router-create --distributed=false <路由名字>
neutron router-create --distributed=False hello-router
☆★linuxbridge支持非分布式路由,openvswitch支持分布式路由
网络子网添加到路由器上:
neutron router-interface-add <路由名字> <子网名字>
neutron router-interface-add hello-router hello-sub-private
验证:
ip netns
qrouter-开头的是路由器,后面是router-id
ip netns exec qrouter-d62d8aca-0b9e-4e59-8c79-37aca9fe6696 ip a
路由ip 为10.1.0.1
console进入vm ping试验一下
★★★★★★★★★★★★★★
创建外部网络:
创建网络:
neutron net-create --shared <外网名字> --router:external=True --provider:network_type flat --provider:physical_network <★ml2配置的外网flat_networks的名字>
#neutron net-create --shared hello-public --router:external=True --provider:network_type flat --provider:physical_network provider
★
neutron net-create --shared hello-public --router:external=True --provider:network_type flat --provider:physical_network hello-provider
其中★★★★★一定要注意一下最后一个参数一定不要写错
网络节点的:
--provider:physical_network
vim /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2_type_flat]
flat_networks = hello-provider
vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
[linux_bridge]
physical_interface_mappings = hello-provider:eth0
改成其他的不好使
这两个配置文件一定要对应,
*似乎不好使
创建子网:
neutron subnet-create --name <子网名字> <网络名字> --allocation-pool start=<开始ip>,end=<截止ip> --gateway=网关ip --enable_dhcp=False <网段>
例如
★
neutron subnet-create --name hello-subnet-public hello-public --allocation-pool start=192.168.139.114,end=192.168.139.116 --gateway=192.168.128.1 --enable_dhcp=False 192.168.128.0/20
注意:139是办公网段,一定要都ping一次,不要和其他人冲突了
★★★★★★★★★★★★★★★★外网接口添加到路由器上:
把外部网络的网关设置到路由器上
★
neutron router-gateway-set hello-router hello-public
这步骤一定要检查网桥是否存在,如果
brctl show
没有路由器到外网的网桥,则没有建成功★★★★★
不要使用:
neutron router-interface-add <router-name> <外网子网名称>
neutron router-interface-add hello-router hello-subnet-public
neutron router-interface-delete hello-router hello-subnet-public
这个是内网绑定路由和网络使用的
验证:
neutron net-list neutron subnet-list neutron port-list neutron router-list neutorn help|grep router neutron router-port-list <router-id> neutron router-port-list hello-router ip netns exec qrouter-d62d8aca-0b9e-4e59-8c79-37aca9fe6696 ip a
qr-d0b3aac4-65@if23的ip为 192.168.139.114/20
如果使用了内网的绑定方式来绑定外网则得到
qr-d0b3aac4-65@if23的ip为 192.168.128.1/20
测试vm,
console连接进去,
如果网络不对,需要在vm里面重启网络或重启vm
测试是否能ping到百度
先ping 114.114.114.114
vi /etc/resolv.conf servername 114.114.114.114
再ping baidu
★★★★★★★★创建floating ip★★★★★★★★★★
创建
neutron floatingip-create hello-public nova floating-ip-associate hello-vm 192.168.139.115
nova get-vnc-console hello-vm novnc
连到vm,ifconfig是看不到115这个ip的,
但是从controller能ssh过来
如果不行就重启试试
#nova reboot hello-vm
★★★★★★★★★如果遇到问题★★★★★★★★★★★★★★★
如果不通的话,删掉外网,重新建
neutron router-gateway-clear hello-router hello-public neutron net-delete hello-public
查看历史记录的时候带时间
export HISTTIMEFORMAT="%F %T `whoami` "
history
清理环境:
删除vm
nova delete <vm_name> neutron port-list neutron help|grep router neutron router-list neutron router-port-list <router-id> neutron help router-interface-delete
删除网络和路由的连接,
外网用:
neutron router-gateway-clear <router-name> <net-name>
内网用
neutron router-interface-delete <ROUTER> <INTERFACE>
外网删除和路由的连接
neutron router-gateway-clear hello-router hello-public
内网删除和路由的连接
neutron router-interface-delete hello-router hello-sub-private
删除端口,网络,路由
neutron port-delete <port-name>
neutron net-delete <net-id>
neutron router-delete hello-router
再删网络和vm
########################调试脚本####mysql_openstack.sh #######################
#!/bin/sh #for i in `awk ' {if(NR>4 && NR<40)print $2};' a.log ` mysql_user=root mysql_password=haoning mysql_host=mcon if [ "$1" = "" ] then echo "please use ./mysql_openstack.sh [dbname], for example: ./mysql_openstack.sh keystone"; echo "this will exit." exit 0; fi echo "use db " $1 for i in ` mysql -u$mysql_user -h$mysql_host -p$mysql_password $1 -e "show tables" |awk ' {if(NR>1)print $1};'` do if [ $i != "ml2_vxlan_allocations" ] then echo "mysql -u$mysql_user -h$mysql_host -p$mysql_password $1 -e \"select * from \`$i\`\""; mysql -u$mysql_user -h$mysql_host -p$mysql_password $1 -e "select * from \`$i\`"; fi done
./mysql_openstack.sh neutron
l2poplation
bridge fdb
ip neigh
发表评论
-
建立tap设备的c的代码
2019-01-08 19:09 473tapper.c #include <stdio.h& ... -
br0和tap0的互相影响
2019-01-02 19:17 814转载 http://www.cnblogs.com/wlei/ ... -
M版openstack(ovs,dvr,动态迁移)
2017-06-09 10:30 1788主要内容 1.先搭建三个节点的环境,dvr模式 2.建一个vm ... -
M版本的openstack的例子(linuxbridge)
2017-05-23 15:05 557做两个节点控制节点和计算节点 mcontroller521 ... -
vxlan多台主机的vm之间不同网段互通
2016-09-19 21:06 4373组播: 试验: 在三台机器上 192.168.139.251 ... -
vxlan多台主机的vm之间相同网段互通
2016-09-19 16:30 2239三台机器 建立namespace ... -
qemu用tap方式启动vm的网络试验(ip route)
2016-09-14 11:29 2806ip route add 192.168.8.0/24 via ... -
openstack的topo图
2016-09-07 14:07 630http://haoningabc.iteye.com/blo ... -
openstack的M版本安装
2016-08-17 13:33 1058参考 http://docs.openstack.org/mi ... -
can't initialize iptables table错误
2016-04-26 10:05 788can't initialize iptables table ... -
linux下TUN/TAP虚拟网卡的使用
2016-03-31 18:46 4882tun在网络层 tap在二层 ls ... -
openstack L版本(openvswitch的安装和应用)
2016-03-24 15:04 3020参考L版本的linuxbridge的安装方式 和k版本的ov ... -
openstack试验(linux vxlan)
2016-03-22 22:27 2726yum install centos-release-open ... -
backup a libvirt xml
2016-03-18 21:23 569<domain type='kvm' id='2'> ... -
neutron router试验
2016-03-17 20:41 965上接 http://haoningabc.iteye.com/ ... -
openstack L版本(使用linux bridge的vxlan)
2016-03-12 23:35 2378参考 http://docs.openstack.org/li ... -
openstack的L版本安装(flat网络)
2016-03-07 17:55 980参考http://docs.openstack.org ... -
openstack调试 数据库跟踪
2016-03-04 18:07 716查看openstack代码 openstack每个命令之后,数 ... -
neutron基础九(qemu nat网络)
2016-02-06 17:21 1621接上基础八,kvm透传nested忽略 1.在主机ce ... -
neutron基础八(qemu 桥接网络)
2016-02-06 13:13 1544qemu的桥接和nat的qemu启动命令是一样的,但是后续的脚 ...
相关推荐
### OpenStack M 版本离线搭建详解 #### 一、概述 OpenStack M 版本,即 OpenStack Mitaka 版本,是 OpenStack 的一个成熟版本之一,广泛应用于私有云建设和管理中。然而,在很多企业的环境中,出于安全考虑,内部...
Learning OpenStack Networking (Neutron)(2nd) 英文epub 第2版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书
openstack-Neutron深入理解.pdf
Whether you are new to OpenStack Networking (Neutron) or have experience, this book will provide you with the skills needed to successfully design, create, customize, and maintain the core network ...
### OpenStack M 版本搭建知识点详解 #### 一、OpenStack架构理解与设计 **OpenStack** 是一个开源的云计算管理平台项目,它提供了一系列的工具和服务来帮助组织搭建和管理自己的私有云和公有云基础设施。...
openstack网络,neutron初探,初步了解openstack的网络。
Learning OpenStack Networking (Neutron), 挺基础的,对于想学习openstack neutron的人是个很好入门资料。
手动安装openstack Mitaka版
深入理解Neutron-- OpenStack 网络实现- PDF版本 深入理解Neutron 中文版资源
OpenStack Neutron SDN 实现详解
OpenStack-Neutron原理详解.pdf
Title: Learning OpenStack Networking (Neutron) Author: James Denton Length: 300 pages Edition: 1 Language: English Publisher: Packt Publishing Publication Date: 2014-10-13 ISBN-10: 1783983302 ISBN-13:...
Learning OpenStack Networking (Neutron)(2nd) 英文mobi 第2版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书
很好的介绍OpenStack网络组建neutron的一本书,packtpub出版.
深入理解OpenStack Neutron 本资料共包含以下附件: 深入理解 Neutron -- OpenStack 网络实现openstack_understand_neutron.rar
单节点openstack-neutron搭建
OpenStack Neutron 原理详解
Learning OpenStack Networking (Neutron)(2nd) 英文无水印原版pdf 第2版 pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn...
该ppt是比较详细的openstack&neutron;的介绍,包含从底层到高级的详解。
英文版,详细描述了openstack的network组件neutron,推荐一看,非常详细,比中文版的好