-

   rss_rss_hh_new

 - e-mail

 

 -

 LiveInternet.ru:
: 17.03.2011
:
:
: 51

:


[ ] . QEMU+YOCTO+TAP

, 07 2017 . 10:45 +


IPsec GRE . strongSwan. unit . UML (user mode linux). , . UML , a QEMU YOCTO. : linux, QEMU, GRE . . , .

Host Ubuntu.

Linux 4.10.0-28-generic #32~16.04.2-Ubuntu SMP Thu Jul 20 10:19:48 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

linux


linux . YOCTO. , / . , - linux. . . .



$sudo apt-get install chrpath gawk texinfo python

-.

a) yocto


$mk yocto
$cd yocto
$git clone -b pyro git://git.yoctoproject.org/poky.git
$git clone -b pyro git://git.openembedded.org/meta-openembedded
$source ./poky/oe-init-build-env 

)


yocto/ build
.
conf/bblayers.conf

BBLAYERS ?= " \
/home/user/yocto/poky/meta \
/home/user/yocto/poky/meta-poky \
/home/user/yocto/poky/meta-yocto-bsp \
/home/user/yocto/meta-openembedded/meta-oe \
/home/user/yocto/meta-openembedded/meta-networking \
/home/user/yocto/meta-openembedded/meta-webserver \
/home/user/yocto/meta-openembedded/meta-python \
/home/user/yocto/meta-openembedded/meta-multimedia \
"

. /conf/local.conf

# We default to enabling the debugging tweaks.
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"

CORE_IMAGE_EXTRA_INSTALL = " \
kernel-modules \
lrzsz \
setserial \
strongswan \
opkg \
nbench-byte \
lmbench \
alsa-utils \
i2c-tools \
devmem2 \
dosfstools \
libdrm-tests \
netkit-ftp \
iproute2 \
iptables \
bridge-utils \
socat \
wget \
curl \
vlan \
dhcp-server \
dhcp-client \
ntp \
libstdc++ \
nginx \
ppp \
proftpd \
boost \
openssl \
openssh \
fcgi \
mc \
ethtool \
minicom \
procps \
tcpdump \
file"

sshd yocto/poky/meta/recipes-connectivity/openssh/openssh/sshd_config.

# override default of no subsystems
#Subsystem sftp /usr/libexec/sftp-server
Subsystem sftp internal-sftp

, sftp. - ssh.

)


$bitbake core-image-minimal

.

, :

rootfs - /yocto/build/tmp/deploy/images/qemux86/core-image-minimal-qemux86-20170803162854.rootfs.ext4

kernel - /yocto/build/tmp/deploy/images/qemux86/bzImage4.10.17+git0+e92bd55409_6648a34e00-r0-qemux86-20170801184648.bin

, . .

bzImage
core-image-minimal-qemux86.ext4

)


qemu . x86 64 .

$sudo apt-get install qemu-system-x86
$qemu-system-x86_64 --version 
QEMU emulator version 2.0.0 (Debian 2.0.0+dfsg-2ubuntu1.34), Copyright (c) 2003-2008 Fabrice Bellard

qemu.

$cd ~/yocto/build/tmp/deploy/images/qemux86
$qemu-system-x86_64 -hda ./core-image-minimal-qemux86.ext4  -kernel ./bzImage -append "console=ttyS0 root=/dev/hda initrd=/initrd" -nographic



.


https://github.com/framer/test-net.

)


.



H1,H2,R1,R2 .
BR0,BR1,BR2,BR3 .

(eth0) BR0. 192.168.40.0/24. .

)


TAP . . :

$cd ./src
$sudo ./setup_bridge.sh 4
$ip link


BR0 .

$ip addr add 192.168.40.1/24 dev br0
$sysctl -w net.ipv4.ip_forward=1

) conf.json


. , , . . .

)


, src.

:
bzImage
rootfs .
- .

create_network.py.

$./create_network.py

. , . / .

.

$ls .. -Al



)


:

$sudo ./run_network.py



sudo, tap. background. output.log.

ssh. . , ssh . , . .ssh/known_hosts.

.

$./mount_fs.py

H1/tmp, H2/tmp, R1/tmp, R2/tmp.

)


, . , , :

 $cd ../scripts
 $./static.sh

static.sh .

.

. .

H1 ssh.
H1 ping H2.

root@H1:~# ping 192.168.51.10

host

$ sudo tcpdump -i br2



)


.

$sudo ./stop_network.py


GRE


)




)



$sudo run_network.py

.

$mount_fs.py



$cd ../scripts
$./gre.sh

)


H1 ssh.
H1 ping H2.

root@H1:~# ping 192.168.51.10

host

$ sudo tcpdump -i br2




?

-. . ? . . .
-. , .
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/335038/

:  

: [1] []
 

:
: 

: ( )

:

  URL