Unix
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
 
User Name:
Password:
Remember me
Go Back   Web Development Archives Mailing Lists Unix

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Display Modes
 
Unread Web Development Archives Sponsor:
  #1  
Old June 10th, 2008, 11:09 PM
zhengda
Guest
Dev Archives Newbie (0 - 499 posts)
 
Posts: n/a  
Time spent in forums:
Reputation Power:
Hypervisor

Hi everyone,

I will create the network virtualization in Hurd,
so I need to implement a mechanism which help pfinet servers communicate
with each other.
That is, for example, if pfinet 1 has IP A and pfinet 2 has IP B,
the packet sent by pfinet 1 with destination address IP B should be
received by pfinet 2.
Sub-hurd should also be able to use this mechanism to communicate with
each other.
Meanwhile this mechanism should allow non-privileged the user to start
his own pfinet.

The possible approach is to create a hypervisor whose role is:
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.
4. to guard the network traffic and filter illegal packets (forged by
some malicious users) from pfinet or some other programs.

To implement it, I have to solve some problems:

1. What kind of programming interface should the hypervisor provide to
pfinet or other programs?
In the current implementation of pfinet, the pfinet server gets the
privileged port,
opens the network interface by calling device_open() and set the filter
rules by calling device_set_filter().
My solution is:
Since we want every user to be able to run pfinet, we should modify the
code of pfinet:
pfinet explicitly get the send right to hypervisor by opening some files
created by hypervisor or getting it from the proc server.
I'm not sure whether the pfinet still needs to set filter rules when it
sends packets to the hypervisor.

2. How does the hypervisor route packets to the right pfinet server or
the network device in the kernel?
As my understanding, if there are two pfinet servers running in the same
network interface and a packet comes,
both pfinet servers should be able to receive the packet in the current
hurd.
This is right because the pfinet server can drop the packet it doesn't want.
The hypervisor can do the same thing:
If it receives a packet from a pfinet server or from the network device
in the kernel,
it can send the packet to all pfinet servers that are connected to the
hypervisor.
(maybe the hypervisor should make a choice to send the packet to the
real network interface
or to pfinet servers when it receives a packet from a pfinet server)
But the problem is that every user can run pfinet now,
so one user may be able to watch other users' packets if every pfinet
packets can get the packet.
It should be a secure issue.

3. How does the hypervisor guard the network traffic and filter illegal
packets?
I have no idea how to do it.
and I'm not very sure I should do it.

Could someone give me some advices or comments?
Thank you in advance.

Best,
Zheng Da

Reply With Quote
Reply

Viewing: Web Development Archives Mailing Lists Unix > Hypervisor


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are Off
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest Threads | Shoutbox
Forum Jump


Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 





© 2003-2008 by Developer Shed. All rights reserved. DS Cluster 5 hosted by Hostway
Stay green...Green IT