Zheng Da

Email: zhengda1936 at gmail dot com

Project: Network virtualization for subhurds etc.

The code.


The design and the implementation

The requirements:

The possible approach is to use the multiplexer and the filter.

The multiplexer's roles are:

  1. to create some virtual network interface, so pfinet can send packets to it.
  2. to receive the packet from pfinet, and forward the packet to other pfinets in hurd
  3. or forward the packet to the real network device in the kernel and send it to the network.

A filter translator is needed to enforce the policies between the interface and the pfinet server. For example, the filter can control which packets can be delivered to the pfinet server, and which packets can be sent to the network interface. The filter can also guard the network traffic and drop illegal packets (forged by some malicious users) from pfinet or some other programs.

To create a virtual network interface:

The routing inside the multiplexer:

The implementation of the filter translator:


TODO

Coding


Completed tasks

Coding

pfinet server overriding by modifying glibc. The patch is here.

fix pfinet to use the proper filter rule. The patch of pfinet is here.

the multiplexer:

the filter translator:

The Code Read

Documentation Read