SDN
SDN Introducción
SDN a la red definida por software, literalmente, toda la red se convertirá en SDN (NE solo) abrir en la dirección vertical, la normalización, programable, de modo que sea más fácil de usar, más eficiente de los recursos de la red.
En la arquitectura tradicional, conmutadores y routers tienen que operar en la ejecución de la totalidad de la red de inteligencia bajo el control de 6000 tipos de protocolos distribuidos. Esto significa que incluso si sólo hay un elemento de red agrega un nuevo acuerdo, todos los demás elementos de la red también tienen que hacer cambios estructurales apropiados. De hecho, añadir un nuevo protocolo en la red a menudo toman años para finalizar el proceso de normalización de la implementación real.
MiniNet
¿Cuál es MiniNet
MiniNet por algún nodo terminal virtual (finales hosts), conmutadores, routers conectados entre sí en un simulador de red, que utiliza la tecnología de virtualización de peso ligero permite que el sistema puede ser comparable a la red real.
MiniNet puede crear fácilmente una red de apoyo de SDN: Trabajo de equipo host como un real, como, puede usar ssh para iniciar la sesión, inicie el programa de aplicación puede enviar paquetes de datos al puerto Ethernet, el paquete será un interruptor, un router recibe y procesa . Con esta red, la flexibilidad para agregar nuevas características para la red y pruebas asociadas, y luego fácilmente implementarlo en entornos de hardware reales.
MiniNet Instalación e implementación
instalación de la máquina virtual de MiniNet
- Descargar MiniNet Espejo: https://github.com/mininet/mininet/releases
- Descargar software de máquina virtual. VirtualBox , VMware Workstation
- imagen de instalación
instalación local (recomendado)
Tirando de la fuente de Git
git clone git://github.com/mininet/mininet
Instalación MiniNet, según MiniNet / util / install.sh -h seleccione Ver
mininet/util/install.sh -n3V 2.5.0
Después de completar la instalación, utilice la instalación de prueba MiniNet comando se ejecutó correctamente
sudo mn --test pingall
MiniNet paquete de instalación (el más conveniente)
MiniNet paquete de instalación en Ubuntu
sudo apt install mininet/precise-backports
Problemas encontrados durante la instalación
Puerto tip 6653 está ocupado
sudo service openvswitch-testcontroller stop
comando interno interactivo
Crear una topología por defecto después mn uso sudo entra en el interactivo
help #查看帮助命令
net #查看链路信息
nodes #查看网络里面有多少节点以及有什么节点
links #查看链路健壮性,看看某条链路是不是在正常工作
pingall #测试所有主机间通信
pingpair #只验证前两个主机连通性-
dump #节点信息
intfs #网络接口信息
iperf h1 h2 #测试H1 H2的带宽
link s1 s2 up#禁用或开始节点间的链路
iperfudp bw h1 h2 #测试H1 H2 的UDP带宽
xterm h1 #节点开启可视化操作
py net.addSwtich("s1") #执行python 表达式
experimentos py
Añadir un h3 y conectado a s1
py net.addHost('h3') #添加一个主机h3
py net.addLink(s1,net.get('h3')) #将s1 和 h3连接起来
py s1.attach('s1-eth3') #添加接口s1-eth3
py net.get('h3').cmd('ifconfig h3-eth0 10.3') #给h3设置ip
py dump #查看设备的信息
#发现我们的h3并没有显示我们设置的IP 依然为none
#我们需要h1 ping h3命令,让设备发现他的ip。在dump即可查看正确的设备信息。
OpenDaylight
1. Instalación dependencias ODL
sudo apt-get update
sudo apt-get install openjdk-8-jdk
2. Descargar OpenDaylight controlador: http://www.opendaylight.org/software/downloads
tar zxvf distribution-karaf-0.3.0-Lithium.tar.gz
3. Configurar entorno Java
vi abierta / etc / profile
Agregue el código siguiente
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
archivo de origen
source /etc/profile
4. Comprobar si la instalación es correcta
CD de distribución-karaf-0.3.0-litio
./bin/karaf ejecución
Después de la implementación exitosa
tabla de flujo
La imagen muestra la topología actual
objetivos experimentales son:
h1 no puede h2 de ping
dpctl del-flows
#清除所有流表,也可以使用sh ovs-ofctl s1 del-flows 针对S1删除流表
dpctl add-flow in_port=1,actions=output:2
#让1端口添加output 2端口
dpctl add-flow in_port=2,actions=output:3,output:1
#让2端口添加output 3,1端口
dpctl add-flow in_port=3,actions=output:2
#让3端口添加output 2端口
Introduzca resultados pingall
1 -> h2 X
h2 -> h1 h3
h3 -> X h2
Uno de los experimentos más
objetivos de la misión es hacer H1 y H2 a través, H3 y H4 pase, H1 y H3 razonable.
De acuerdo con los objetivos de la misión, que es el único huésped en el mismo interruptor se puede comunicar.
h1 S2 está conectado al puerto 2
h2 está conectado a la tercera s2 puerto
s3 h3 conectado al puerto 2
h4 s3 puerto de conexión 3
Mientras el interruptor no pueden comunicarse entre sí. 1,3 puerto del conmutador. Eliminar todo tabla de flujo, el intercambio añadió 2, 3.
dpctl del-flows
dpctl add-flow in_port=2,actions=output:3
dpctl add-flow in_port=3,actions=output:2
pingall resultados:
h1 -> h2 X X
h2 -> h1 X X
h3 -> X X h4
h4 -> X X h3
Con otra idea
S1 desde el router para descartar la totalidad del puerto 1 se puede lograr.
sh ovs-ofctl add-flow s1 priority=50,in_port=1,action=drop