当前位置: 首页 > Mininet使用入门 > 正文

三个有用的Mininet配置实例

Mininet是一个有用的网络仿真/模拟平台,对于进行SDN测试和应用开发非常有帮助。使用Mininet可以创建不同类型的网络拓扑结构。本文介绍三种用于SDN测试时比较流行的拓扑配置。

1.单交换机(Single switch)

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

$ sudo mn --arp --topo single,3 --mac --switch ovsk --controller remote

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

  • -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个交换机,两个交换机下面个连一个主机,交换机之间再互连起来。

$ sudo mn --topo linear --switch ovsk --controller remote
mininet_single_switch1

两个交换机线性拓扑

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

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

$ sudo mn --arp --topo single,4 --mac --switch ovsk --controller remote
  • 虚拟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

负载均衡器网络拓扑

本文固定链接: http://sdnhub.cn/index.php/useful-mininet-setups/ | 软件定义网络SDN

该日志由 sdnhub 于2014年05月11日发表在 Mininet使用入门 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 三个有用的Mininet配置实例 | 软件定义网络SDN
关键字: ,

三个有用的Mininet配置实例:目前有2 条留言

  1. 板凳
    偶然左岸:

    h1访问10.0.0.5控制器如何重定向?实验最后一步没有结果,是否缺少脚本?

    2014-08-22 11:18 [回复]
  2. 沙发
    xu chao:

    mininet> h1 curl http://10.0.0.17:8000/cgi-bin/serverip.cgi
    curl: (7) Failed to connect to 10.0.0.17 port 8000: Connection timed out

    版主,你好
    请问,为什么,我执行这个命令,总是提示timeout呢?10.0.0.17是我的物理ip
    谢谢!

    2015-11-05 17:35 [回复]

发表评论

*

快捷键:Ctrl+Enter