我正在尝试使用 OMNet++ 构建网络模拟。问题是我不知道如何配置 EtherSwitch 和 EtherHost 设备并给它们 IP。在交换机和路由器之间路由流量的必要路由代码是什么。路由器端口的IP地址必须如下表所示;
路由器支路 IP
1 ------ 1 --- 192.168.1.0/24
1 ------ 4 --- 192.168.4.1
1 ------ 5 --- 192.168.5.1
2 -- ---- 2 --- 192.168.2.0/24
2 ------ 5 --- 192.168.5.2
2 ------ 6 --- 192.168.6.2
3 ------ 3 - -- 192.168.3.0/24
3 ------ 4 --- 192.168.4.3
3 ------ 6 --- 192.168.6.3
这里是所需网络的图像:
我的 NED 文件:
import inet.nodes.inet.Router;
import inet.nodes.inet.StandardHost;
import ned.DatarateChannel;
import inet.nodes.ethernet.EtherSwitch;
import inet.nodes.ethernet.EtherHost;
import inet.networklayer.autorouting.FlatNetworkConfigurator;
network gyte
{
@display("bgb=457,318");
types:
channel geth extends DatarateChannel
{
datarate = 1Gbps;
}
channel hgeth extends DatarateChannel
{
datarate = 512Mbps;
}
submodules:
// Routers
routers[3]: Router {
parameters:
@display("p=208,272,row=id;i=abstract/router");
gates:
pppg[3];
}
// Switches
switches[3]: EtherSwitch {
parameters:
@display("p=179,162,row");
gates:
ethg[3];
}
// Hosts
ehosts[4]: EtherHost {
parameters:
@display("p=384,56,row");
gates:
ethg;
}
// Servers
eservers[2]: EtherHost {
parameters:
@display("i=device/server;p=117,71,row");
gates:
ethg;
}
configurator: FlatNetworkConfigurator {
@display("p=22,25");
}
connections:
ehosts[0].ethg <--> switchs[0].ethg[0];
eservers[0].ethg <--> switchs[0].ethg[1];
ehosts[1].ethg <--> switchs[1].ethg[0];
eservers[1].ethg <--> switchs[1].ethg[1];
switchs[0].ethg[2] <--> routers[0].pppg[0];
switchs[1].ethg[2] <--> routers[1].pppg[0];
routers[0].pppg[1] <--> routers[1].pppg[1];
routers[0].pppg[2] <--> routers[2].pppg[0];
routers[1].pppg[2] <--> routers[2].pppg[1];
routers[2].pppg[2] <--> switchs[2].ethg[0];
switchs[2].ethg[1] <--> ehosts[2].ethg;
switchs[2].ethg[2] <--> ehosts[3].ethg;
}