首页 > 代码库 > 【Mininet】毕设记录:关于IP地址分配的问题
【Mininet】毕设记录:关于IP地址分配的问题
随手记录一下在子网分配中的心得。
之前在仿真数据中心网络拓扑中牵涉到一个问题,由于在后续工作中我想通过指定不同datacenter之间的网络延时或带宽等参数的区别,因此需要让每两个datacenter之间存在一条链路(其实本来是两条,对应上下行的不平等带宽,但后来觉得这样太复杂)简化下来就如下图所示。
但是由于我的datacenter使用host模拟路由器进行转发,而每一条连接到host上的链路都会引入一个新的interface。因此就牵涉到为每个interface分配IP地址的问题。最初我只是简单的想让datacenter的两个interface为20.0.1.1/24和20.0.1.2/24,其他两个也同理。但这样就导致了每个datacenter的接口都分别处于不同的子网中,不能进行通信。
然后我就把/24变为了/16。但这样也就带来了一个新的问题,由于三个数据中心都处于相同子网,那么datacenter1在向datacenter2通信成功以后会认为所有发往该子网的数据包从该interface流出就可以了,于是自然而然地也就吧应该从eth2发往datacenter3的数据包也从eth1发出,从而就导致了datacenter1和datacenter3互相无法通信的问题。
这个问题纠结了好几天,后来偶然间想到了一个办法,那就是从IP地址入手。之前想当然的认为同一个datacenter对应的ip地址就应该为X.X.X.1和X.X.X.2,但是如果从每一条链路的角度考虑呢?事实上一个datacenter的多个interface又不需要互相通信,为什么要将他们划归为同一子网呢?
因此最后的解决办法是,以每一条链路为线索进行IP地址的分配,如蓝色链路两端的两个datacenter1和datacenter2的接口分别为20.0.1.1和20.0.1.2,以此类推,三个数据中心时间就可以互相通信了。
【Mininet】毕设记录:关于IP地址分配的问题