Δημιουργία ενός virtual network interface δυναμικά
George Notaras
gnot at g-loaded.eu
Mon Jun 2 16:15:21 EEST 2008
George Notaras wrote:
> Christos Ricudis wrote:
>> George Notaras wrote:
>>> Έστω ότι έχουμε το παρακάτω cronjob που τρέχει το 'vif-start' κάθε
>>> ένα λεπτό.
>>>
>>> */1 * * * * johndoe /etc/vif-start
>>
>>
>> OK...
>>
>> To yfos mou htan apotomo kai sou zhtw sygnwmmh.
>
> Εντάξει, δεν παρεξηγούμαι έτσι απλά. :)
>
>> To pragmatiko erwthma edw einai to ekshs :
>>
>> Giati mporei na 8eleis na dhmiourgeis ena *PER USER* tunnel interface
>> xrhsimopoiwntas ena cron job?
>>
>
> Όχι, αυτό έγινε μόνο και μόνο για να δείξω ότι το "sudo tunctl -b ..."
> δεν επιστρεφει τίποτα, ενώ θα έπρεπε να επιστρέφει το όνομα του
> νεο-δημιουργηθέντος virtual network interface, tapN.
>
Το παρακάτω script καλείται από το Virtualbox για να δημιουργήσει ένα
virtual network interface, να το προσαρτήσει στο br0 και να τυπώσει το
όνομά του στο stdout.
Απέχει έτη φωτός από τα standards που έχουν τεθεί από τον Κεραμίδα, αλλά
το γράφω όπως υπάρχει και στο manual (ενότητα 6.7.2), μόνο με τη βασική
διαφορά ότι, αντί για ένα hard-coded όνομα χρήστη, παίρνει το username
από την 'whoami' και ότι χρησιμοποιείται το standard tool 'tunctl' αντί
του 'VBoxTunctl' του virtualbox.
/etc/vbox-tap-setup:
VMUSER=$(/usr/bin/whoami)
interface=$(sudo /usr/sbin/tunctl -b -u $VMUSER)
if [ -z "$interface" ]; then
exit 1
fi
sudo /sbin/ifconfig $interface promisc up
sudo /usr/sbin/brctl addif br0 $interface
echo $interface
To Virtualbox μάλλον καλούσε το παραπάνω σκριπτ από ένα περιβάλλον
περιορισμενο όπως εκείνο του cron, το οποίο σε συνδυασμό με την default
option 'requiretty' στο /etc/sudoers, είχε ως αποτέλεσμα να μην
δημιουργείται ποτέ το tapN και φυσικά το Virtualbox να βγάζει πάντα error.
PS: Το VMware δεν χρειάζεται τίποτα από όλα αυτά. Δημιουργεί τα virtual
network interfaces και τα προσαρτά στην br0 από μόνο του. Το QEMU, το
μόνο που χρειάζεται είναι τα παρακάτω σε ένα setup script: sudo ifconfig
$1 promisc up; sudo brctl addif br0 $1. Τα υπόλοιπα τα κάνει μόνο του.
Το vbox είναι το λιγότερο έξυπνο ή καλύτερα "αδικαιολόγητα πολύπλοκο"
στο θέμα της δυναμικής δημιουργίας virtual network interfaces κάθε φορά
που ξεκινάει ένα virtual machine.
More information about the Linux-greek-users
mailing list