概述
基于yoga版本学习neutron,通过源码、官方文档、部署环境进行学习
官方文档学习
概念
NAT network address transition
NTP network time protocol
DNS domain name system
NIC Network Interface Card
MAC Media Access Control
TCP Transmit Control Protocol
UDP User Datagram Protocol
ICMP Internet Control Messag Protocol
FQDN Fully qualified domain name 完全限定域名
安装
创db、导环境变量、创建neutron user、给neutron user添加admin role、创建neutron服务、创建neutron admin public internal endpoint
控制节点配置
有两种配置方案,provider network和self-service,前者直接用机器的网络和网卡,不需要创建什么东西,后者(self-network)扩展了provider network功能,使用了三层网络服务,虚机可挂在self-network上(仍然也可挂在provider network上),还提供了浮动ip。self-service network一般使用overlay 网络
overlay 网络一般使用vxlan,会在原有ip报文头部加一个overlay头部,在overlay转发包时就用这个overlay头进行转发
provider network
安装neutron linux模块neutron-server, neutron-plugin-ml2, neutron-openvswitch-agent, neutron-dhcp-agent, neutron-metadata-agent
basic server配置
[database]下connection,
Default.core_plugin = ml2(modular layer 2)
Default.transport_url = rabbit://xxx mq地址
Default.auth_strategy = keystone
keystone_authtoken
Default可以配置网络一些信息变更时是否通知nova,通知的话,还要配nova
core_plugin配置
[ml2] type_drivers=flat,vlan 使vlan和flat生效
[ml2] tenant_network_types = 配置空白可disable self-network
[ml2] mechanism_drivers = openvswitch 使用linux bridge
[ml2] extension_drivers = port_security
[ml2_type_flat] flat_networks = provider 配置provider虚拟网络作为一个flat network
openvswitch agent配置
openvswitch可以为虚机创建二层虚拟网络并操作安全组,配置文件在/etc/neutron/plugins/ml2/openvswitch_agent.ini
[ovs] bridge_mappings = provider:PROVIDER_BRIDGE_NAME map provider虚拟网络到provider物理网络
确保物理bridge已创建且已创了个port连到物理bridge
ovs-vsctl add-br PROVIDER_BRIDGE_NAME
ovs-vsctl add-port PROVIDER_BEIDGE_NAME PROVIDER_INTERFACE_NAME
配置安全组和firewall driver [securitygruop] enable_security_group = true; firewall_driver = openvswitch/iptables/hybrid
dhcp配置
配置linuxbridgedriver
[DEFAULT]
interface_driver = openvswitch
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true
创建provider network
在provider network中,创虚机时必须使用一个网络,网络包含dhcp server来为虚机提供ip地址
创建network,创建子网
self-network
安装neutron模块,neutron-server、neutron-plugin-ml2、neutron-openvswitch-agent、neutron-l3-agent、neutron-dhcp-agent、neutron-metadata-agent
neutron server配置
和provider network类似,self-network需要配置service-plugins为router
core_plugin配置
[ml2] type_drivers=flat, vlan, vxlan
[ml2] tenant_network_types = vxlan
[ml2] mechanism_drivers = openvswitch, l2population
[ml2_type_vxlan] vni_ranges = 1:1000
openvswitch agent配置
需配物理网络interface的local_ip来处理overlay网络
其他
和provider netwokr差不多,还要配置l3 agent的interface_driver为openvswitch
计算节点配置
networking guide
introduction
网络基础
以太网
mac地址是主机的独立标识,是被生产商硬编码在网卡里的。可以通过ip link show eth0查看网卡mac地址
以太网是二层的概念
ff:ff:ff:ff:ff:ff是二层广播地址
默认情况,网卡收到帧后会检查帧是否为网卡的mac地址,如果不是则丢弃帧,实际我们不期望这样,此时可以配置开启网卡的混杂模式,该模式可以让网卡收到的帧即使帧目标mac与网卡mac不一样也可以将帧转发给os,可以为混杂模式配置适当的网卡
交换机内部会有一个mac地址和交换机端口的mapping表,收到未知mac时,交换机会广播帧然后监控流量学习mac对应哪个port,学会了以后就不需要广播了,直接转发到对应port,学会的映射表会放到交换机一个叫FIB的表
vlan
vlan技术可以让一个交换机变得像多个独立工作的交换机一样,不同vlan看不到彼此的流量
vlan工作原理 将交换机各端口赋予对应的vlanid,当交换机转发帧到其他交换机时,只能转发到支持vlanid的端口,不会到其他端口
发送帧的交换机会给帧打上vlanid
可以转发所有vlanid的交换机口叫trunk口(中继端口),trunk口是连接其他交换机的口
如果要在物理交换机使用vlan实现openstack网络隔离,需要将交换机所有端口都设置为trunk口
子网和ARP
arping可以用来获取目标ip对应的mac,映射关系保存在arp缓存
dhcp
主机连到dhcp协议的网络可以自动获取分配的ip地址,获取到ip地址的主机叫dhcp client
dhcp client需要发现dhcp server,client通过对local network广播来发现server,所有client都可以看到广播发送的消息。由于local network广播仅限于local network无法broadcast到其他网络,所以DHCP server需要在local network范围内

openstack使用dnsmasq实现dhcp,dhcp过程会写道syslog,可以在syslog查看到形如上述地址分配的记录
dhcp server用67端口,dhcp client用68端口
ip协议
ip协议决定了数据报怎么在主机间转发,ip协议依赖于路由器和网关。
路由器是连接至少两个网络的机器并且可以i将一个网络的数据报路由到另一个网络,路由器可以有多个ip地址,每个ip地址是路由器连接到的那个网络的接口地址
ip route show/ route -n/ netstat -rn三个命令都可查看本机路由表
路由表由子网和子网对应的网络地址构成的条目组成

dhcp server给client分配地址时一般会把网关地址带着分配的ip地址一起发给client
ip route get ip地址可看到某个ip地址会被路由到哪个设备
tcp/udp/icmp
tcp在client会由os随机分配一个端口,tcp连接终止后os收回端口,是可靠连接,会丢包重传,包检测等,但udp没有。udp和tcp可同时用一个端口
网络组件
switch(交换机):连接在同一个局域网的不同主机
router(路由器):可以沟通在不同网络中的主机
firewalls、load balancer
overlay(tunnel) protocol
隧道技术可用来在不兼容的网络之间传输数据报
Generic Routing Encapsulate(GRE)
VXLAN虚拟扩展局域网:是三层上实现了二层vlan原理的vxlan
NAT
一般nat由路由器实现,在openstack一般由服务器实现而不是路由器
SNAT,Source Network Address Transmission,常用来改变发送的ip数据报头的源ip地址,在私有和共有地址之间转换。SNAT在openstack中由路由器(常由server提供路由功能)实现,路由器会保存原有的私有ip地址。SNAT不光会改ip地址,也会改tcp和udp端口号
DNAT,Destination NAT,同SNAT
configuration
address scope
地址作用域用来避免子网中地址分配重叠,在地址作用域中分配的地址不会重叠
访问地址作用域
可以创建自己的地址作用域,管理员可以创建共享地址作用域,共享作用域可创建不同project的地址
对地址作用域的访问通过子网池实现,子网池可以在一个作用域内创建,或者修改归属到另一个作用域
多个子网池对owner来说地址范围相同,如果各子网池的owner在子网池创网络,可能会产生地址重叠,此时可将子网池放到地质作用域,作用域会对地址分配进行委派,防止地址重叠
路由器连到具有地址作用域和外网之间时,不需进行NAT,因为地址不重叠
创建地址作用域
创建ipv4或ipv6地址作用域 neutron address-scope-cr

最低0.47元/天 解锁文章
2084

被折叠的 条评论
为什么被折叠?



