/etc/ip_rulles.lst
/etc/ip6_rulles.lst
Эти файлики перед перезагрузкой должны были появиться.
Vde + Qemu + iptables
Не удалилось. Хорошо. Сделаем так:
iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -D POSTROUTING -o ppp0 -j MASQUERADE ЗЫ: раз файлики есть, значит правила автосохраняются. Мои поздравления. Работает? Попробуйте сделать
# ifdown tap0
# ifup tap0На что-нибудь жалуется?
От рута:
`--# ifdown tap0
ifdown: interface tap0 not configured
.-(/home/zion/qemu/hdd)-----------------------------------------------------------------------------------------------------(root@ion)-
`--# ifconfig
eth0 Link encap:Ethernet HWaddr 00:90:f5:67:5a:b1
inet6 addr: fe80::290:f5ff:fe67:5ab1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5490 errors:0 dropped:0 overruns:0 frame:0
TX packets:6819 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1887379 (1.7 MiB) TX bytes:2775958 (2.6 MiB)
Interrupt:21 Base address:0xe800
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1036 errors:0 dropped:0 overruns:0 frame:0
TX packets:1036 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:82396 (80.4 KiB) TX bytes:82396 (80.4 KiB)
ppp0 Link encap:Point-to-Point Protocol
inet addr:188.187.66.199 P-t-P:88.87.65.94 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:5124 errors:0 dropped:0 overruns:0 frame:0
TX packets:6804 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:1728681 (1.6 MiB) TX bytes:2625471 (2.5 MiB)
tap0 Link encap:Ethernet HWaddr 2a:a5:af:bb:49:73
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::28a5:afff:febb:4973/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:70 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 B) TX bytes:10354 (10.1 KiB)
.-(/home/zion/qemu/hdd)-----------------------------------------------------------------------------------------------------(root@ion)-
`--# ifdown tap0
ifdown: interface tap0 not configured
.-(/home/zion/qemu/hdd)-----------------------------------------------------------------------------------------------------(root@ion)-
`--# ifdown up
ifdown: interface up not configured
.-(/home/zion/qemu/hdd)-----------------------------------------------------------------------------------------------------(root@ion)-
`--#
Не понял юмора....
pre-up /sbin/iptables-restore < /etc/ip_rulles.lst
pre-up /sbin/ip6tables-restore < /etc/ip6_rulles.lst
post-down /sbin/ip6tables-save > /etc/ip6_rulles.lst
post-down /sbin/iptables-save > /etc/ip_rulles.lstЯ заметил, что eth0 в interfaces отмечен как manual, так что может стоит это перенести в ppp секцию?
Реакция на манипуляции с tap0 не нормальные. Вдвойне не понятно, отчего оно тогда работает (=
Попробуйте закоментить
pre-up /usr/bin/vde_switch -x -n 5 -s /var/run/vde2/vde.ctl -g vde2-net -m 770 -d -p /var/run/vde2/vde.pid -t tap0
post-down /bin/kill `/bin/cat /var/run/vde2/vde.pid`И ребутнутся. Будем ловить ошибки...
После сих манипуляций
kvm -net nic -net vde,sock=/var/run/vde2/vde.ctl -hda '/home/zion/qemu/hdd/deb.img'
ноль эмоций
вручную
vde_switch -x -n 5 -s /var/run/vde2/vde.ctl -g vde2-net -m 770 -d -p /var/run/vde2/vde.pid -t tap0
kvm -net nic -net vde,sock=/var/run/vde2/vde.ctl -hda '/home/zion/qemu/hdd/deb.img'&
запустилось нормально...
но
zsh 1015 % ssh root@192.168.0.2
ssh: connect to host 192.168.0.2 port 22: No route to host
хотя гость 192.168.0.2 запущен.....
newzenon, не, это понятно, что он отказывается видить гостя, мы же свитч убили.
Важен вопрос, жалуются ли команды ifdown и ifup, как тут:
ifdown: interface tap0 not configured
.-(/home/zion/qemu/hdd)-----------------------------------------------------------------------------------------------------(root@ion)-
`--# ifdown up
ifdown: interface up not configured
Сделайте /etc/init.d/networking restart и вывод сюда скиньте.
После ребута:
zsh 1013 % cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 down
pre-up /sbin/ifconfig eth0 hw ether 00:90:f5:67:5a:b1
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider
auto eth0
iface eth0 inet manual
auto tap0
iface tap0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
pre-up /usr/sbin/vde_tunctl -t tap0
# pre-up /usr/bin/vde_switch -x -n 5 -s /var/run/vde2/vde.ctl -g vde2-net -m 770 -d -p /var/run/vde2/vde.pid -t tap0
pre-up /sbin/iptables-restore < /etc/ip_rulles.lst
pre-up /sbin/ip6tables-restore < /etc/ip6_rulles.lst
post-down /sbin/ip6tables-save > /etc/ip6_rulles.lst
post-down /sbin/iptables-save > /etc/ip_rulles.lst
post-up /usr/bin/slirpvde -s /var/run/vde2/vde.ctl --dhcp
# post-down /bin/kill `/bin/cat /var/run/vde2/vde.pid`
post-down /usr/sbin/vde_tunctl -d tap0
zsh 1014 % sudo /etc/init.d/networking restart
[sudo] password for zion:
Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces ... (warning).
Reconfiguring network interfaces...Plugin rp-pppoe.so loaded.
Set 'tap0' persistent and owned by uid 0
slirpvde: Could not connect to the VDE switch at '/var/run/vde2/vde.ctl': No such file or directory
Failed to bring up tap0.
done.
[Птн 10/06/04 15:22 MSD][pts/0][x86_64/linux-gnu/2.6.34][4.3.10]
<zion@ion:~/qemu/hdd>
чятдн?
post-up /usr/bin/slirpvde -s /var/run/vde2/vde.ctl --dhcpУдалить. Сделать /etc/init.d/networking restart
Вывод сюда
Все вроде заработало :) + гостя расшарил...
auto tap0
iface tap0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
pre-up /usr/sbin/vde_tunctl -t tap0 # -u zion
pre-up /usr/bin/vde_switch -x -n 5 -s /var/run/vde2/vde.ctl -g vde2-net -m 770 -d -p /var/run/vde2/vde.pid -t tap0
pre-up /sbin/iptables-restore < /etc/ip_rulles.lst
post-down /sbin/iptables-save > /etc/ip_rulles.lst
# pre-up /sbin/ip6tables-restore < /etc/ip6_rulles.lst
# post-down /sbin/ip6tables-save > /etc/ip6_rulles.lst
post-down /bin/kill `/bin/cat /var/run/vde2/vde.pid`
post-down /usr/sbin/vde_tunctl -d tap0
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
ifdown tap0
Set 'tap0' nonpersistent
ifup tap0
Set 'tap0' persistent and owned by uid 0
Хотя если так:
/etc/init.d/networking restart
Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces ... (warning).
Reconfiguring network interfaces...Set 'tap0' nonpersistent
Plugin rp-pppoe.so loaded.
Set 'tap0' persistent and owned by uid 0
done.
Если stop/start, то не ругается, может задержку где выставить?
Владельца на tap0 - оставлять рута?
И позакрывать в iptables наверное все кроме нужного надо.
newzenon, я на
Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces ... (warning).не обращаю внимания, не люблю рестартовать сразу всю сеть, пользуюсь ifup и ifdown.
Владельца на tap0 - оставлять рута?
Это вообще не имеет значения, мы ходим не через интерфейс, а через свитч (он запущен под рутом, так что пусть и владелец интерфейса будет рут).
И позакрывать в iptables наверное все кроме нужного надо.
Не вопрос, главное, что хочешь получить на выходе.
Не вопрос, главное, что хочешь получить на выходе.
Несколько портов открытых наружу, переброс http, ftp на гостя, все остальное закрыть, пока ка-то так.
И вот интересно noip будет работать в таком варианте, хотя какая ему разница...
# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
# iptables -P FORWARD DROP
# iptables -A INPUT -i lo -j ACCEPT
# iptables -A INPUT -i tap0 -j ACCEPT
# iptables -A OUTPUT -o lo -j ACCEPT
# iptables -A OUTPUT -o tap0 -j ACCEPT
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -o tap0 -m state RELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -i tap0 -m state NEW,RELATED,ESTABLISHED -j ACCEPT
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADEи
открытие порта
# iptables -A INPUT -p tcp(udp) --dport номер_порта -m state --state NEW -j ACCEPTпроброс
# iptables -A PREROUTING -p tcp(udp) --dport номер_порта -j DNAT --to-destination ip:port?
Упс...
iptables -A FORWARD -o tap0 -m state RELATED,ESTABLISHED -j ACCEPT
Bad argument `RELATED,ESTABLISHED'
Try `iptables -h' or 'iptables --help' for more information.
iptables -A FORWARD -i tap0 -m state NEW,RELATED,ESTABLISHED -j ACCEPT
Bad argument `NEW,RELATED,ESTABLISHED'
Try `iptables -h' or 'iptables --help' for more information.
zerg А ната входящего то нет...
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
заменил на iptables -t nat -A POSTROUTING -d 192.168.0.0/24 -j MASQUERADE
ОК, очепятался, параметр пропустил:
# iptables -A FORWARD -o tap0 -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -i tap0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
zerg А ната входящего то нет...
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
заменил на iptables -t nat -A POSTROUTING -d 192.168.0.0/24 -j MASQUERADE
А нафига? Оно и так натит... См.
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADEЭтого достаточно.
Ну да натит, не тудой я...
Проброс порта тоже не катит:
iptables -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80
iptables: No chain/target/match by that name.
Может так:
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80
Чувствую развлекуха еще пока есть.... :)
Наковырял, критикуй:
#!/bin/sh
# RESET
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# reset the default policies in the nat table.
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
# reset the default policies in the mangle table.
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
# flush all the rules in the filter and nat tables.
iptables -F
iptables -t nat -F
iptables -t mangle -F
# erase all chains that's not default in filter and nat table.
iptables -X
iptables -t nat -X
iptables -t mangle -X
# Let's go
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i tap0 -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -o tap0 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o tap0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i tap0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
iptables -A INPUT -p tcp --dport 51000:51010 -m state --state NEW -j ACCEPT
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80
# eof
iptables -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80
iptables: No chain/target/match by that name.
Может так:
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2:80
Спасибо за правки. Я ошибся, не указав таблицу (=
Наковырял, критикуй:
много букоф smile
вроде нормально. Один раз исполняешь скрипт, делаешь
iptables-save > /etc/ip_rulles.lstДальше само... На первое время хватит (=
Тему немного подправил - может кому интересно, будет время обобщить можно...
zerg не пойму я, на каком этапе свич считается подключенным к хосту?
т.е. Захотел сечас софт-роутер (например IpCop) поставить, и через него подключить свич, по идее для этого втрой свич не нужен, только tap еще один поднять?
auto tap0
iface tap0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
pre-up /usr/sbin/vde_tunctl -t tap0 # Поднимается хост интерфейс
pre-up /usr/bin/vde_switch -x -n 5 -s /var/run/vde2/vde.ctl -g vde2-net -m 770 -d -p /var/run/vde2/vde.pid -t tap0 # А тут свитч садится на интерфейс
pre-up /sbin/iptables-restore < /etc/ip_rulles.lst
post-down /sbin/iptables-save > /etc/ip_rulles.lst
# pre-up /sbin/ip6tables-restore < /etc/ip6_rulles.lst
# post-down /sbin/ip6tables-save > /etc/ip6_rulles.lst
post-down /bin/kill `/bin/cat /var/run/vde2/vde.pid`
post-down /usr/sbin/vde_tunctl -d tap0т.е. Захотел сечас софт-роутер (например IpCop) поставить, и через него подключить свич, по идее для этого втрой свич не нужен, только tap еще один поднять?
А зачем? Всё можно (и нужно) на хост машине разрулить. Там ведь тот же iptables будет...
Дистрибутив роутерный посмотреть в действии:
local (eth0, ppp0) => guest - router (tap0) => guest1, guest2, guest3
Ну допустим создам 3 интерфейса по типу:
tunctl -t tap1
ifconfig tap1 10.10.0.1 netmask 255.255.255.0 up
Подключить только не пойму как их гостям,...
ммм огород какой-то получается, прям матрешка какаято...
newzenon, я пр то и имел ввиду, что слойка получается... Надо просто тогда ещё один свитч поднять.
auto tap0
iface tap0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
pre-up /usr/sbin/vde_tunctl -t tap0
pre-up /usr/bin/vde_switch -x -n 5 -s /var/run/vde2/vde.ctl -g vde2-net -m 770 -d -p /var/run/vde2/vde.pid -t tap0
pre-up /usr/bin/vde_switch -x -n 5 -s /var/run/vde2/vde1.ctl -g vde2-net -m 770 -d -p /var/run/vde2/vde1.pid # Создаём второй свитч
pre-up /sbin/iptables-restore < /etc/ip_rulles.lst
post-down /sbin/iptables-save > /etc/ip_rulles.lst
# pre-up /sbin/ip6tables-restore < /etc/ip6_rulles.lst
# post-down /sbin/ip6tables-save > /etc/ip6_rulles.lst
post-down /bin/kill `/bin/cat /var/run/vde2/vde.pid`
post-down /bin/kill `/bin/cat /var/run/vde2/vde1.pid` # Правило для уничтожения второго свитча
post-down /usr/sbin/vde_tunctl -d tap0