分类:Networking

Home / 分类:Networking

源地址小问题误解

2018-1-25 22:55:50 | Networking | 没有评论

今天一个同事搭环境,配组网,遇到个问题讨论了下,简单记录下

 

大概就如上图,最终想将两个Host三层互通,完成起来比较简单:

1:交换机2上创建一个Vlanif77,和左边Host同网段,同时Nic0放通vlan77,这样Host上添加一条静态路由,destination为右边Host网段,nexthop为2.3.4.1,走vlan 77二层就可以跳过去

2:由于三个交换机都只互连了一根线,那[……]

Read more

BGP简单测试

2017-12-4 01:37:10 | Networking | 没有评论

来菊厂PPT没学会,画图倒是有点沉迷,下面是一个随意构造的组网图,BGP不太熟,因为验证了BGP功能,测试记录一下

上面的实体都是物理交换机,某个功能能够使源端2.3.4.5和对端5.4.3.2进行互通,接着介绍下红框部分static和bgp模式下数据面走向

首先说明几个交换机:

1:交换机192.168.0.7

管理面IP这里没啥用,和数据面不是同一个物理口,仅仅为了登陆或者说明用;数据面2.[……]

Read more

社区Liberty版本Neutron VPNaaS:测试

2017-10-8 03:05:54 | Networking, OpenStack | 没有评论

先说一下测试思路,环境还是ALL-IN-ONE单节点openstack,两个不同的VPC,各自创建VPN服务,只需要各自VPC对应的VPN-Service里的出口网关IP地址能通即可;可vpn-service里出口IP默认是Router Gateway IP,而只需要将两个VPC的external网络都设置为同一网段,这样就能达到目标,详细步骤就是:

1:创建vpc-1和vpc-2

2:vpc-1[……]

Read more

社区Liberty版本Neutron VPNaaS:创建

2017-10-7 23:57:41 | Networking, OpenStack | 没有评论

社区的VPNaaS服务应该相对简单些,因为是两年前的版本,没有endpoint-group这种方式,router也是集中式,下面就按自己的思路创建一下vpn服务,大概分这几步:

1:VPC的创建

2:ikepolicy,ipsecpolicy

3:vpn-service的创建,外网IP如何分配暂时未知,具体再分析

4:ipsec vpn的创建

详细如下,服务基本可以正常创建出来

租户network[……]

Read more

VRRP

2017-9-30 23:55:10 | Networking | 没有评论

Virtual Router Redundancy Protocol,虚拟路由冗余协议,一个很大气的名字

正常情况下,假如HOST 10.0.0.2经过一个二层交换机,然后经过一个Router(假如只有R1,没有R2)出去;对于这种单点链路,假如 Router或者连接switch的接口故障,那么整条链路就出现事故,原因就是网关只有一个,没有冗余;此时可以添加一个Router,R1的GE0/0/1[……]

Read more

DEVSTACK里DVR和FIP

2017-8-28 01:07:26 | Networking | 没有评论

devstack默认还是集中式Router,虽然neutron能够创建分布式Router,但是没法绑到L3-Agent,这里可以修改一个地方的设置

# Distributed Virtual Router (DVR) configuration
# Can be:
# - ``legacy``   - No DVR functionality
# - ``dvr_snat`` - Control[......]

Read more

Vlanif

2017-8-16 23:50:07 | Networking | 没有评论

通常如果二层通过VLAN隔离之后,相互之间无法访问,想要VLAN之间互访,可以通过三层设备路由器实现

这里简单做一下配置即可:

交换机GE0/0/2和GE0/0/22两个口配置access类型,并且放通VLAN200

交换机GE0/0/3和GE0/0/33两个口配置access类型,并且放通VLAN300

Router的口GE0/0/2作为VLAN200网络的网关,GE0/0/3作为VLAN30[……]

Read more

VxLAN和VTEP

2017-7-31 00:30:19 | Networking | 没有评论

最近一直在熟悉VPN和专线相关业务,对于VxLAN和VTEP接触的较多

VxLAN封装转发二层报文,在二层报文添加了一个VxLAN Header,进而通过UDP封装来进行传输,具体的报文格式如下

这里重点关注的VxLAN封装部分的VXLAN header,其中有一个24位的VNI,可以对比VLAN ID,但VLAN的数量只有区区4096,而这里2^24数量来了个平方,使得划分网络的数目大大增加,[……]

Read more

社区Devstack打通网络折腾

2017-6-30 23:50:33 | Networking | 没有评论

虚拟机VMware Fusion,操作系统CentOS7.2,网络配置桥接

devstack搭建好单节点openstack之后,直接创建虚拟机

[lihui@openstack devstack]$ nova boot --flavor 1 --image 5291f14d-a20d-41c7-a809-87b0a02a2e40 --nic net-id=8f91ac0f-54e4-4bbb-8[......]

Read more

OpenStack初始化网络

2017-2-26 13:41:00 | Networking, OpenStack | 没有评论

新创建一个租户,始终记住,租户不能干什么,它抽象的仅仅是一些资源的集合

~$ keystone tenant-create --name tenant_lihui
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+[......]

Read more

Neutron里OpenvSwitch Security Group的神奇BUG

2017-1-10 23:45:50 | Networking | 没有评论

在测试云网络OVS安全组的过程中,遇到了一些奇怪的问题,其中最神奇的当属下面一个

简单说下基于OpenvSwitch的安全组,实质上就是一个firewall,只不过是基于ovs的,也就是针对PORT的,但是也分ingress和egress,这里可以对应iptables里的INPUT和OUTPUT链,需要切记的是ingress的限制是白名单,也就是添加一条规则,表明了允许该规则的包能够进来,而egr[……]

Read more

Neutron Port之binding_failed

2016-12-14 01:37:41 | Networking | 没有评论

Neutron Port在使用过程中,甚至在带网络创建虚拟机的时候,有时候会出现binding_failed的问题,当然如果是创建虚拟机的时候出现,虚拟机状态就会使ERROR,如果仅仅是PORT的binding:vif_type字段变成binding_failed,那么连通性就会出现问题,总的来说这都是出现问题,正常情况下原因有很多,比如Open vSwitch agent没有alive,或者没有[……]

Read more

VIF Broadcast报文限速减少广播攻击

2016-12-11 23:55:03 | Networking | 没有评论

对于云环境里,如果是租户私有资源,同一广播域里出现大量广播包也不会对其他租户产生影响,因为相互隔离,而对于flat网络比如外网来说,由于是公用资源,假如出现持续广播报文,那么对同一广播域里其它用户的使用就会带来影响,比如出现以下报文

23:17:50.701992 fa:17:00:00:00:0a > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800),[......]

Read more

在做高并发性能测试的时候,虚拟机数量100+,但是在执行自动化脚本过程中,在连通OpenVPN的前提下,部分虚拟机是无法连通的,但是很奇怪的是都是同一段Network,而且之前进行测试的时候比较正常,可能中间做了其它相关的操作导致

场景,在节点机上调用API接口创建云主机,启动OpenVPN进程,进而连接私有网络,结果却是10.177.80.xx段能够连上,10.177.81.xx段无法连上

$[......]

Read more

IP Forward

2016-11-19 19:35:30 | Networking | 没有评论

通常所说的DNAT,SNAT等包的转发,都必须要Linux内核IP Forward打开生效才能进行,再比如OpenStack里租户私有网络到了网关然后进行转换也是一样的道理,这里就通过一个小例子,仿照L3 namespace来验证下IP Forward的使能,大致流程

1:虚拟机里带一个公网IP

2:创建一个network namespace

3:创建一对veth设备,将namespace和虚拟机[……]

Read more

虚拟机通过L3agent访问外网的流程测试

2016-11-13 23:30:52 | Networking | 没有评论

已经初始化过的租户,创建一台虚拟机,只带内网(私有网)作为源HOST,目标HOST找一个外网IP即可,最好能够自行抓包

SRC:192.168.65.125
DST:2.106.123.234

Step1:

SRC端发送ICMP包,DST进行抓包

~$ sudo tcpdump -i eth1 icmp and dst host 2.106.123.234
tcpdump: verbose[......]

Read more

安全组创建规则

2016-11-13 00:14:55 | Networking | 没有评论

两条Linux命令的事,却要写这么冗长的脚本,就当测试HTTP RESTful API好了

#!/usr/bin/env python

import requests
import json
import sys

#source information
os_username = ''
os_password = ''
os_tenant_name = 'Project_%s' %os_us[......]

Read more

iptables SNAT

2016-10-24 02:22:09 | Networking | 没有评论

Neutron里私有网络想通到外网,就在租户network namespace里做了iptables的NAT,这部分是十分必要弄清楚的,网络的一切都是抓包决定,做一个小测试

先创建一台VM,但是只有私有网络,也就是内网

接着创建一个namespace

lihui@2016 ~# ip netns add lihui_namespace
lihui@2016 ~# ip netns list

创[……]

Read more

如何确认节点上PORT的数目

2016-10-21 00:31:03 | Networking | 没有评论

在OpenStack云网络的一些验证工作的时候,经常会有一些临界值相关的,对性能影响极大

最近就有这样一种场景,在一个计算节点上,flat网络没有任何PORT,此时重启OpenvSwitch服务,再来创建该网络下的PORT,可以发现其网络使能性能十分缓慢,往往在用户使用的时候容易感知,当FIX了之后,验证需要测试这种场景,那么需要找一个PORT相对较少的计算节点,将它们都清空,然后来进行重启,验证[……]

Read more

SNAT小虚惊一场

2016-10-12 21:05:44 | Networking | 没有评论

最近有点着迷iptables,各种用法都想试试

虚拟机里一个内网IP,一个float IP

root@iptables:~# ip a
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope[......]

Read more

Iptables小述

2016-10-5 21:33:40 | Networking | 没有评论

最近在看Neutron里路由服务的时候,租户内部网络假如没有独立外网的时候,需要通过router来进行转发,而这里的实现其实是通过iptables来NAT映射出去,这部分NAT用法不是太熟,大部分iptables都是围绕filter来用,因此有必要再了解下iptables的一些基本用法

通常我们都是直接调用iptables命令来修改防火墙规则,可见我们修改规则这部分是工作在用户态当中,这本身也并不[……]

Read more

Iptables Filter

2016-10-4 23:23:31 | Networking | 没有评论

filter功能就是比较常用的,ACCEPT,DROP,REJECT,定义了哪些允许哪些不允许

首先一个普通的debian操作系统,关掉所有防火墙规格

root@iptables:~# iptables -L -v
Chain INPUT (policy ACCEPT 147K packets, 18M bytes)
 pkts bytes target     prot opt in[......]

Read more

组播

2016-10-4 16:23:24 | Networking | 没有评论

组播用D类地址,IP地址第一个字节以1110开头,大概换算一下就是:

11100000 ~ 11101111,也就是224 ~ 239,范围就是224.0.0.0 ~ 239.255.255.255

组播报文的源IP地址不会出现D类地址,目的IP地址才会,由于组播目的地址不仅仅唯一,是一组地址,所有的信息接收者都加到了一个组里,一旦加入之后,流向组地址的数据立即开始向接收者传输,组中的所有成员就能[……]

Read more

Unicast,Multicast,Broadcast

2016-10-4 00:02:12 | Networking | 没有评论

1.单播:网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话,那么用网络技术的术语来描述就是“单播“,此时信息的接收和传递只在两个节点之间进行。单播在网络中得到了广泛的应用,网络上绝大部分的数据都是以单播的形式传输的,只是一般网络用户不知道而已。例如,你在收发电子邮件、浏览网页时,必须与邮件服务器、Web服务器建立连接,此时使用的就是单播数据传输方式。但是通常使用“点对点通信[……]

Read more

Neutron日常

2016-10-1 17:33:01 | Networking | 没有评论

Neutron管理下面的实体:

网络:隔离的 L2 域,可以是虚拟、逻辑或交换。
子网:隔离的 L3 域,IP 地址块。其中每个机器有一个 IP,同一个子网的主机彼此 L3 可见。
端口:网络上虚拟、逻辑或交换端口。 所有这些实体都是虚拟的,拥有自动生成的唯一标示id,支持CRUD功能,并在数据库中跟踪记录状态。

网络
隔离的 L2 广播域,一般是创建它的用户所有。用户可以拥有多个网络。网络是最基础的,[……]

Read more

GRE br-int

2016-10-1 17:07:33 | Networking | 没有评论

社区的实现图,网上到处可以找到,就不涉及到版权问题了

 

 

 

 

 

 

 

左边计算节点的qbr-xxx就是额外添加的Linux Bridge,这里的两台虚拟机VM1和VM2,它们的网卡连接到物理机的TAP设备上,然后通过veth pair(A-B)连接到qbr的端口[……]

Read more

LXC私有网络不通方法分析

2016-9-18 21:31:03 | Networking | 没有评论

今天有一个LXC私有网络到外网不通,首先简单看了下L3 agent的绑定情况,是没有问题的,并且同租户其它KVM虚拟机私有网络都是无误的,更加确认了应该是LXC自身的问题

其实,一开始PORT的State为BUILD,我没有放在心上

查看namespace里,LXC里ping网关,根本收不到任何包

~$ sudo ip netns exec qrouter-8e8268bf-0202-4401-[......]

Read more

OVS和Neutron对于网卡设备的分析

2016-9-7 01:10:18 | Networking | 没有评论

通常在测试过程中,会有PORT,TAP设备等概念,记录一下从Neutron和OpenvSwitch的角度分析的结果

首先,neutron接口查看一个普通的port

$ neutron port-show 198173a6-f20c-4d84-af4c-e07ad3508544
+-----------------------+-----------------------------------[......]

Read more

网络分层

2016-9-4 22:13:51 | Networking | 没有评论

看到一段感觉写得不错的分层小述,手敲一遍:

当网卡接收到数据后,硬件网卡会给CPU发硬中断,CPU在指令周期内指示操作系统软件从网卡缓冲区取走数据,然后操作系统将数据交给TCP/IP栈(内核态的一个进程)来处理,在处理过程中,通过解析二层网络数据帧头中的MAC地址来决定在二层网络中的转发,如需三层网络转发就继续由TCP/IP栈来解析三层网络数据包头中的IP地址来决定三层网络中的转发,以此类推;二层[……]

Read more