Olej писал(а):
- и полный virt.ko, который анализирует ARP & IP4, и затрагивает только трафик к нему относящийся - этот код громоздкий, вдвое больше...
А вот virt.ko позволяет в параллель работать и виртуальному интерфейсу virt0, и реальному на который он "посажен" p7p1 (если это Fedora 16 и более) или eth0 (если это Debian или другой более нормальный дистрибутив):
1. делаем отдельную подсетку для тестирования виртуального интерфейса (алиасный IP для интерфейса):
Код: Выделить всё
[olej@nvidia ~]$ sudo ifconfig vboxnet0:1 192.168.50.1
[olej@nvidia 16]$ ip address vboxnet0
3: vboxnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.1/24 brd 192.168.56.255 scope global vboxnet0
inet 192.168.50.1/24 brd 192.168.50.255 scope global vboxnet0:0
inet6 fe80::800:27ff:fe00:0/64 scope link
valid_lft forever preferred_lft forever
2. на удалённом хосте (Fedora 16) делаем виртуальный интерфейс и конфигурирем:
Код: Выделить всё
[olej@fedora16vm virt-proto]$ sudo insmod ./virtl.ko link=p7p1 debug=1
[olej@fedora16vm virt-proto]$ sudo ifconfig virt0 192.168.50.17
3. и + две сессии ssh: одна на созданный виртуальный интерфейс, а вторая на родительский p7p1:
Код: Выделить всё
[olej@nvidia 16]$ ssh olej@192.168.50.17
...
[olej@nvidia 16]$ ssh olej@192.168.56.101
[olej@fedora16vm ~]$ who
olej tty1 2012-07-16 09:29 (:0)
olej pts/0 2012-07-16 09:33 (:0.0)
olej pts/1 2012-07-16 12:22 (192.168.1.9)
olej pts/3 2012-07-16 15:44 (192.168.50.1)
olej pts/4 2012-07-16 15:52 (192.168.1.9)
olej pts/6 2012-07-16 17:29 (192.168.50.1)
olej pts/7 2012-07-16 17:31 (192.168.56.1)
(2 последних строчки - с 2-х алиасных IP единого хоста).
4. замечательно этот же интерфейс "ест" tcpdump:
Код: Выделить всё
[olej@fedora16vm virt-proto]$ sudo tcpdump -i virt0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on virt0, link-type EN10MB (Ethernet), capture size 65535 bytes
17:27:54.914885 ARP, Reply 192.168.50.17 is-at 08:00:27:9e:02:02 (oui Unknown), length 28
17:27:54.918023 IP 192.168.50.17 > 192.168.50.1: ICMP echo reply, id 8067, seq 1, length 64
17:27:55.912516 IP 192.168.50.17 > 192.168.50.1: ICMP echo reply, id 8067, seq 2, length 64
17:27:56.912419 IP 192.168.50.17 > 192.168.50.1: ICMP echo reply, id 8067, seq 3, length 64
17:27:57.912541 IP 192.168.50.17 > 192.168.50.1: ICMP echo reply, id 8067, seq 4, length 64
17:27:59.933696 ARP, Request who-has 192.168.50.1 tell 192.168.50.17, length 28
(это результат ping - хорошо видно ARP разрешение).
P.S.
Код: Выделить всё
[olej@nvidia 16]$ arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.1.20 ether 08:00:27:14:ca:91 C eth0
192.168.50.17 ether 08:00:27:9e:02:02 C vboxnet0
192.168.50.13 (incomplete) vboxnet0
192.168.1.21 ether 08:00:27:52:b9:e0 C eth0
192.168.56.101 ether 08:00:27:9e:02:02 C vboxnet0
192.168.1.1 ether c8:64:c7:8a:50:16 C eth0
192.168.1.5 ether 00:15:60:c4:ee:02 C eth0