SDN软件定义网络

目录

SDN理解

网络测试命令

高级命令(netperf,iperf,postmen)netperf:

iperf:

tcpdump:

开源软件和协议OVS

什么是OVS

源码安装

常用命令

实现VLAN隔离和互通

mininet

mininet是什么

mn命令的用法,

修改host的ip,

测试联通

利用Python创建主机,交换机,连线

OpenDayLight

是什么:

源码安装部署

modular按照顺序部署

下发流表,1.0和1.3版本有什么区别

厂商SDN:VxLAN,EVPN

VxLAN:

静态隧道,

集中网关:

EVPN

BGP基本配置:

建立EBGP

IBGP邻居,


单选20,判断10:SDN基础常识
问答20:对SDN一些理解,开放题型,常识问题
实验50:vxlan,bgp程序命令填空,
ovs,minninet安装部署流程

SDN理解

 
即软件定义网络,通过网络设备控制面与数据面分离
实现网络流量的灵活控制,api接口——网络可编程化

网络测试命令

Wirshark抓包工具的使用Expression过滤器,正则表达式

高级命令(netperf,iperf,postmen)
netperf:

网络性能测量工具,主要TCP或UDP传输
netserver -p 9999
netperf -H ip -p 9999 -- -m 1024
netperf -t UDP_STREAM -H ip -p 9999 -- -m 1024
与iperf相比netperf可以指定具体协议,但是iperf显示的信息更为具体


iperf:

网络性能测试工具,可以测试TCP和UDP带宽质量。
也可以通过UDP测试报告网丢包率或者发包性能
iperf -s服务器
iperf -c客户机
iperf -u udp协议
iperf -t 测试时长
iperf -i 间隔时长
iperf -p端口号
iperf -s -u
iperf -c ip -p 9999 -u -t 60 -i 2 -n 5M


tcpdump:

抓包工具
-l 要抓包的网卡,默认为第一块
-w 保存下来,扩展名必须是.pcap
-r 要读的文件,扩展名必须是.pcap
tcpdump -l ens33 -w jpz.pcap
常用网络命令ifconfig,ip,netstate
ip -s link list查看路由信息
netstat:显示网络状态
-a 显示所有链接和监听端口
-t 显示tcp协议的
-u 显示udp协议的
-l 显示所有监听的端口


开源软件和协议
OVS


什么是OVS


支持多层数据转发的高质量虚拟交换机,相比传统交换机具有很好的编程扩展性,
同时具备传统交换机实现的网络隔离和数据转发功能,
OVS提供了两种在虚拟化环境中远程管理的协议:一个是OpenFlow,通过流表来管理交换机的行为,
一个是OVSDB管理协议,用来暴露交换机的端口状态。
其中OpenFlow协议可用于定于SDN网络,实现网络转发平面和控制平面分离
代码编写的虚拟交换机,二层网络,

源码安装


apt-get install -y dh-autoreconf
git clone https://github.com/openvswitch/ovs.git
cd ovs
./boot.sh
./configure
make && make install
ovs-vsctl --no-wait init
export PATH=$PATH:/usr/local/share/openvswitch/scripts
ovs-ctl start

常用命令


ovs-vsctl show
ovs-vsctl add-br br0
ovs-vsctl del-br br0
ovs-vsctl add-port br0 eth0
ove-vsctl port-to-br eth0
ovs-vsctl del-port br0 eth0


实现VLAN隔离和互通


创虚拟交换机ovs-vsctl add-br jpzbr0
容器连交换机ovs-docker add-port jpzbr0 eht0 vm01 --ipaddress=ip/24
交换机互联
ovs-vsctl add-port jpzbr0 patch_to_jpzbr1
ovs-vsctl set interface patch_to_jpzbr1 type=patch
ovs-vsctl set interface patch_to_jpzbr0 options:peer=patch_to_jpzbr1
设置vlan隔离
ovs-docker set-valn jpzbr0 eth0 vm01 100
设置通过运行的vlan
ovs-vsctl set port patch_to_jpzbr1 VLAN_mode=trunk
ovs-vsctl set port patch_to_jpzbr0 trunk 100,200

mininet


mininet是什么


SDN网络模拟器,用真实的内核,交换机和应用程序代码,创建逼真虚拟网络,
下载包,cd进去./install.sh -a


mn命令的用法,


拓扑:single,linear,tree,star,
mn --topo linear,3 --switch ovsk 
mn --topo tree,depth=2,fanout=8 --switch ovsk
mn --custom file.py --topo mytopo


修改host的ip,


ifconfig h1-eth0 0
ip addr add 192.168.220.10/24 brd + dev h1-eth0
ifconfig


测试联通


h1 ping 192.168.220.20 -c 3
pingall


利用Python创建主机,交换机,连线


创建gedit 2.py &
#!/usr/bin/env python
from mininet-net import Mininet
 net = Mininet(link=TCLink)
 c1 = net.addController()
 h1 = net.addHost('h1')
 h2 = net.addHost('h2')
 sw = net.addSwitch('sw')
 net.addLink(h1,r)
 net.addLink (h2,r)
 h1.setIP('ip')
 net.start()
 net.pingALL()
 net.stop()
执行python 2.py

OpenDayLight


是什么:

是一个模块化的开放平台
定制自动维护运行任何规模的网络,
比OVS和mininet都好,提供了一整套SDN平台


源码安装部署


下载软件包
解压:Unzip 
cd进去,./bin/karaf


modular按照顺序部署


feature:install odl-restconf
feature:install odl-l2switch-switch
feature:install odl-openflowplugin-all
feature:install odl-dlux-all
feature:install odl-mdsal-all
feature:install odl-adsal-northbound


下发流表,1.0和1.3版本有什么区别


1.0只支持单流表,处理数据包流程相对简单
1.3支持多流表匹配,一个交换机有多个流表,
数据包处理过程相对复杂

厂商SDN:VxLAN,EVPN


VxLAN:

虚拟可扩展局域网


静态隧道,


只能实现同vlan互通,隧道在leaf节点建立
portswitch
commit
int g1/0/2.10 mode l2
encaps dot1q vid 10
q
bridge-domain 1010
arp broad-suppre enable
vxlan vni 1010
commit
q
int nve1
source 3.3.3.3
vni 1010 head-end peer-list 4.4.4.4
commit
q


集中网关:


leaf和spine节点做隧道,保证不同vlan互通
bridge domain 30
vxlan vni 3030
commit
q
int Vbdif 30
ip addr ip
熟悉两种实验的核心配置

EVPN


EVPN以太网VPN,结合VXLAN技术实现再IP层上的隧道封装,作为路由的控制平面
VxLAN是一个大二层网络(广播风暴)
在VxLAN里,互访使用ARP协议请求MAC地址
引入EVPN
改进BGP协议,传递路由
路由是特殊路由:IP地址+mac地址
优点,用处:云主机(虚拟机)迁移不改变IP和mac


BGP基本配置:


建立EBGP


bgp 300
router-id 33.33.33.33
peer ip as-number 100


IBGP邻居,


peer 4.4.4.4 as-number 100
peer 2.2.2.2 connect-interface LoopBooK0
使用network或import传递路由
peer 4.4.4.4 as-number 300
peer 4.4.4.4 connectinterface LoopBack0
peer 4.4.4.4 next-hop-local