共计 1085 个字符,预计需要花费 3 分钟才能阅读完成。
使用 mininet 构建一个简单的路由实验
网络拓扑结构如下:
Mininet 的拓扑定义代码:
from mininet.topo import Topo | |
class Router_Topo(Topo): | |
def __init__(self): | |
"Create P2P topology." | |
# Initialize topology | |
Topo.__init__(self) | |
# Add hosts and switches | |
H1 = self.addHost('h1') | |
H2 = self.addHost('h2') | |
H3 = self.addHost('h3') | |
S1 = self.addSwitch('s1') | |
S2 = self.addSwitch('s2') | |
# Add links | |
self.addLink(H1, S1) | |
self.addLink(H2, S1) | |
self.addLink(H2, S2) | |
self.addLink(H3, S2) | |
topos = {'router': (lambda: Router_Topo()) | |
} |
利用上面的脚本生成网络拓扑:
sudo mn --custom /home/mininet/Router.py --topo router | |
mininet> net | |
h1 h1-eth0:s1-eth1 | |
h2 h2-eth0:s1-eth2 h2-eth1:s2-eth1 | |
h3 h3-eth0:s2-eth2 | |
s1 lo: s1-eth1:h1-eth0 s1-eth2:h2-eth0 | |
s2 lo: s2-eth1:h2-eth1 s2-eth2:h3-eth0 |
为节点配置路由功能:
h1 ifconfig h1-eth0 192.168.12.1 netmask 255.255.255.0 | |
h2 ifconfig h2-eth0 192.168.12.2 netmask 255.255.255.0 | |
h2 ifconfig h2-eth1 192.168.23.2 netmask 255.255.255.0 | |
h3 ifconfig h3-eth0 192.168.23.3 netmask 255.255.255.0 | |
h1 route add default gw 192.168.12.2 | |
h3 route add default gw 192.168.23.2 | |
h2 sysctl net.ipv4.ip_forward=1 |
h1 看 ping 通 h3 了:
mininet> h1 ping -c 1 192.168.23.3
正文完
星哥玩云-微信公众号
