From: Henrik N. <hn...@ma...> - 2001-06-01 07:03:59
|
Harald Welte wrote: > excactly. What Henrik suggests makes sense and is as flexible as we want > it to have. The old um_eth_net_util-based solution had this nice feature, > where a program inside uml calls an ioctl() to set the 'virtual ethernet > number'. I have been thinking a bit more about this, and it should be addressed from the router (with hints from the UML), not from inside the UML. When a UML connects to the router it should send * UML identity * UML interface identity It is then up to the router to decide which ethernet this connection belongs to by having a configuration table mapping UML connections to ethernet segments. If you want to move a UML from one segment to another, tell the router via a router administration channel to move the UML to another network segment. For convenience, the router configuration should be able to use wildcards to group UML interfaces into different ethernets. umid=test1, interface=eth0 ethernet 10 umid=int*, interface=eth0 ethernet 10 umid=dmz*, interface=* ethernet 11 umid=*, interface=eth0 ethernet 1 umid=*, interface=eth1 ethernet 2 umid=*, interface=* ethernet 0 Note: the "switching" as is currently done is limiting the functionality. I just realized that it is not only the broadcasts one have to deal with, One UML might also have multiple ethernet addresses or change MAC address on the fly, for example when acting as a bridge or when playing with MAC level failover. Because of this the control interface between the router and UML's needs to be MAC anonymous. Simplest approach would be to make the router a broadcast ethernet router for now, and then later extend it with ethernet bridge capability per network segment. Proper bridging requires keeping a bridging table of seen MAC addresses, and can easily get added once the basic router code is stable. -- Henrik Nordstrom MARA Systems |