首页 » SDN » 三个有用的Mininet配置实例

三个有用的Mininet配置实例

 
文章目录

Mininet是一个有用的网络仿真/模拟平台,对于进行SDN测试和应用开发非常有帮助。使用Mininet可以创建不同类型的网络拓扑结构。前面已经介绍了mininet以及mininet的基本使用,还使用脚本实现了自定义拓扑实现了路由功能,接下来本文介绍三种用于SDN测试时比较流行的拓扑配置。

1.单交换机(Single switch)

下面的命令创建具有1个交换机,交换机上连接3台主机的网络拓扑结构。每个主机被分配静态IP地址和MAC地址。

上面的命令中有几个重要的参数需要注意:

  • -mac:自动设置MAC地址,MAC地址与IP地址的最后一个字节相同
  • -arp:为每个主机设置静态ARP表,例如:主机1中有主机2和主机3的IP地址和MAC地址ARP表项,主机2和主机3依次类推。
  • -switch:使用OVS的核心模式
  • –controller:使用远程控制器,可以指定远程控制器的IP地址和端口号,如果不指定则默认为127.0.0.1和6633

创建完拓扑后即可使用ping命令进行测试:h1 ping h2
注意:如果没有指定控制器的话,是ping不通的)

mininet_single_switch1

单个交换机网络拓扑

2.两个线性连接的交换机(Two linear swtiches)

下面的命令创建具有2个交换机,两个交换机下面个连一个主机,交换机之间再互连起来。

mininet_single_switch1

两个交换机线性拓扑

3.负载均衡器器(Load-balancer)

下面的命令创建的拓扑结构:1个交换机,交换机上连接3个服务器(server)和1个客户端(client)。控制器充当负载均衡器,控制客户端先服务器请求时,由控制器控制客户端真正访问的哪一个服务器。但是,有一些额外的步骤需要注意。

  • 虚拟IP/MAC(Virtual IP/MAC): 为负载均衡器选择一个virtual IP (VIP) 和 MAC 地址。这个VIP是客户端需要发起HTTP请求的目的IP地址。控制向交换机下发规则,去重写客户端的目的IP(即VIP),以指定具体访问哪一个网络服务器。为了达到这个目的,需要在客户端主机上为VIP设置一条ARP表项。如果‘h1′ 充当客户端,10.0.0.5是VIP,下面的命令用于在h1上添加静态ARP表项:

mininet> h1 arp -s 10.0.0.5 00:00:00:00:00:05

  • 服务器的配置: -arp参数非常重要,用于为每个主机设置静态ARP表项。除此之外,还需要在mininet中运行下面的命令(启动HTTPServer):

mininet> h2 python -m CGIHTTPServer &
mininet> h3 python -m CGIHTTPServer &
mininet> h4 python -m CGIHTTPServer &

  • Warm-up controller learning: After the hosts are up, it is important to make the controller learn the location of each host. You can do this through a pingall command in mininet:

mininet> pingall

  • 客户端发起HTTP请求: In our custom VM, we have CGI script configured to report back which server is handling a particular client request. Thus, when a client performs the following command, you will receive the IP address of the handling server.

mininet> h1 curl http://10.0.0.5:8000/cgi-bin/serverip.cgi

mininet_load_balancer1

负载均衡器网络拓扑

原文链接:三个有用的Mininet配置实例,转载请注明来源!

0