LINUX.ORG.RU

iptables — vboxnet to ppp0

 


0

1

доброго времени суток. есть виртуальная машина. на ней 2 сетевые карты — сетевой мост и виртуальный адаптер. сетевой мост дает доступ к машине извне когда есть роутер, а виртуальный адаптер, когда есть только юсб модем. виртуальный адаптер определяется как vboxnet0, соединение с инетом ppp0. на данный момент я могу зайти по ссх в виртуальную машину, но на самой виртуальной машине нет инета. вопрос: как написать правило, для проброса инета на виртуальную машину. пробую так:

root @ localhost ~# iptables -t nat -A FORWARD -i vboxnet0 -o ppp0 -j MASQUERADE
iptables: No chain/target/match by that name.
не получается :(

Невозможно не задать этот вопрос: форвардинг на хосте включен?
В виртуалке адрес адаптер хоста указан шлюзом?

Кстати, таки непонятно, нафига два адаптера у гостя. Одного вполне хватило бы.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от thesis

первый был включен изначально. на работе не оказалось роутера (это очевидно :) ) и пришлось добавить еще один адаптер и настроить его. sysctl net.ipv4.ip_forward=1 vboxnet0 адрес 192.168.56.1 внутри адрес сетевой 192.168.56.20

conformist ★★★
() автор топика
Ответ на: комментарий от thesis
auto eth1
iface eth1 inet static
address 192.168.56.20
netmask 255.255.255.0
gateway 192.168.56.1

хотя из предыдущего сообщения это и так было понятно :)

conformist ★★★
() автор топика
Ответ на: комментарий от conformist

Нет, этого не было понятно. Может у тебя там никакого шлюза не указано вообще, я ж не телепат.

Блин, я ухитрился прозевать ошибку в топике!

iptables: No chain/target/match by that name.

-A POSTROUTING

thesis ★★★★★
()
Ответ на: комментарий от thesis
root @ localhost ~# iptables -t nat -A POSTROUTING -i vboxnet0 -o ppp0 -j MASQUERADE
iptables v1.4.18: Can't use -i with POSTROUTING

Try `iptables -h' or 'iptables --help' for more information.
conformist ★★★
() автор топика
Ответ на: комментарий от thesis

я на работе запускаю из вайфая точку доступа, потому изначально выполняются такие команды:

service dnsmasq start
		sysctl net.ipv4.ip_forward=1
		iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
		service hostapd start
при этом на виртуальной машине инета нет

conformist ★★★
() автор топика
Ответ на: комментарий от AnDoR
~# iptables-save 
# Generated by iptables-save v1.4.18 on Mon Jan 27 22:43:29 2014
*nat
:PREROUTING ACCEPT [12218:1629371]
:INPUT ACCEPT [12101:1623102]
:OUTPUT ACCEPT [10728:868891]
:POSTROUTING ACCEPT [10736:870082]
COMMIT
# Completed on Mon Jan 27 22:43:29 2014
# Generated by iptables-save v1.4.18 on Mon Jan 27 22:43:29 2014
*filter
:INPUT ACCEPT [39547:10430113]
:FORWARD ACCEPT [8546:12165345]
:OUTPUT ACCEPT [48604:7304997]
COMMIT
# Completed on Mon Jan 27 22:43:29 2014
conformist ★★★
() автор топика
Ответ на: комментарий от AnDoR

скинул сообщение, когда уже удалил правило. вот, правило добавил. ХОСТ:

root @ localhost ~# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADEroot @ localhost ~# iptables-save 
# Generated by iptables-save v1.4.18 on Mon Jan 27 22:50:45 2014
*nat
:PREROUTING ACCEPT [12:1589]
:INPUT ACCEPT [12:1589]
:OUTPUT ACCEPT [5:379]
:POSTROUTING ACCEPT [5:379]
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
# Completed on Mon Jan 27 22:50:45 2014
# Generated by iptables-save v1.4.18 on Mon Jan 27 22:50:45 2014
*filter
:INPUT ACCEPT [40823:10598100]
:FORWARD ACCEPT [8546:12165345]
:OUTPUT ACCEPT [49883:7514128]
COMMIT
# Completed on Mon Jan 27 22:50:45 2014
ГОСТЕВАЯ:
root @ testing ~# ping -c4 8.8.8.8
connect: Network is unreachable
root @ testing ~# ifconfig 
eth1      Link encap:Ethernet  HWaddr 08:00:27:af:89:4e  
          inet addr:192.168.56.20  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:feaf:894e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3236 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2176 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:327015 (319.3 KiB)  TX bytes:399024 (389.6 KiB)

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:65536  Metric:1
          RX packets:59 errors:0 dropped:0 overruns:0 frame:0
          TX packets:59 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:5515 (5.3 KiB)  TX bytes:5515 (5.3 KiB)

conformist ★★★
() автор топика
Ответ на: комментарий от DiMoN

Хост:

root @ localhost ~#  iptables -A FORWARD -i vboxnet0 -o ppp0
root @ localhost ~# iptables-save 
# Generated by iptables-save v1.4.18 on Tue Jan 28 10:46:51 2014
*nat
:PREROUTING ACCEPT [4408:592828]
:INPUT ACCEPT [4370:587845]
:OUTPUT ACCEPT [1565:161629]
:POSTROUTING ACCEPT [195:32630]
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
# Completed on Tue Jan 28 10:46:51 2014
# Generated by iptables-save v1.4.18 on Tue Jan 28 10:46:51 2014
*filter
:INPUT ACCEPT [366:46832]
:FORWARD ACCEPT [24:3770]
:OUTPUT ACCEPT [447:67649]
:fail2ban-ssh - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
-A FORWARD -i vboxnet0 -o ppp0
-A fail2ban-ssh -j RETURN
COMMIT
# Completed on Tue Jan 28 10:46:51 2014
гость
root @ testing ~# ping -c4 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 192.168.1.20 icmp_seq=1 Destination Host Unreachable
From 192.168.1.20 icmp_seq=2 Destination Host Unreachable
From 192.168.1.20 icmp_seq=3 Destination Host Unreachable
From 192.168.1.20 icmp_seq=4 Destination Host Unreachable

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3002ms
pipe 3

conformist ★★★
() автор топика
Ответ на: комментарий от AnDoR

Гость

root @ testing ~# ip route show
default via 192.168.1.1 dev eth0 
169.254.0.0/16 dev eth0  scope link  metric 1000 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.20 
192.168.56.0/24 dev eth1  proto kernel  scope link  src 192.168.56.20 

conformist ★★★
() автор топика
Ответ на: комментарий от DiMoN
root @ testing ~# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:d7:e6:a2  
          inet addr:192.168.1.20  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fed7:e6a2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:25 errors:0 dropped:0 overruns:0 frame:0
          TX packets:66 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4610 (4.5 KiB)  TX bytes:4704 (4.5 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:af:89:4e  
          inet addr:192.168.56.20  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:feaf:894e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:370 errors:0 dropped:0 overruns:0 frame:0
          TX packets:213 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:36809 (35.9 KiB)  TX bytes:26150 (25.5 KiB)

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:65536  Metric:1
          RX packets:60 errors:0 dropped:0 overruns:0 frame:0
          TX packets:60 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:5914 (5.7 KiB)  TX bytes:5914 (5.7 KiB)
conformist ★★★
() автор топика
Ответ на: комментарий от conformist

Ну видимо хост 192.168.1.1 не знает, куда посылать твои запросы, либо недоступен.

AnDoR ★★★★★
()
Ответ на: комментарий от AnDoR
root @ testing ~# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:d7:e6:a2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.20/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fed7:e6a2/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:af:89:4e brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.20/24 brd 192.168.56.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:feaf:894e/64 scope link 
       valid_lft forever preferred_lft forever

192.168.1.1 — eth0 default gw — не доступен, его просто нет сейчас. нужно изменить на eth1:

root @ testing ~# ip route add default via 192.168.56.1 dev eth1
RTNETLINK answers: File exists
thesis был изначально прав, когда спрашивал про шлюз. он по умолчанию не тот. изменить не получается

conformist ★★★
() автор топика

А может быть, у нас здесь тот самый случай, когда провайдер - жлоб, который режет НАТовых клиентов?

На госте: sysctl net.ipv4.ip_default_ttl=65

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от AnDoR

Это легко обходится без помощи модуля TTL для iptables.

thesis ★★★★★
()
Ответ на: комментарий от AnDoR

Ты сначала сделай ip route del default а потом ip route add default via 192.168.56.1 dev eth1

заработало. пинг проходит по айпи адресу. но не резолвит имена. нужно теперь как то указать, откуда брать адреса. раздается вайфай, работает dnsmasq, реально ли указать его адрес 192.168.2.1?

conformist ★★★
() автор топика

Спасибо всем большое! разобрался, нужно было просто гугловский днс прописать в resolf.conf. так проще. спасибо всем больше!

conformist ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.