Skupiny Google už nepodporují nová předplatná ani příspěvky Usenet. Historický obsah lze zobrazit stále.

Sdílené připojení k internetu na síti - problém se SNAT, DNAT a MASQUARADE

1 zobrazení
Přeskočit na první nepřečtenou zprávu

n_p...@seznam.cz

nepřečteno,
24. 1. 2006 21:55:3224.01.06
komu: li...@linux.cz
Nevíte prosím, kde by mohla být chyba, už se s tím trápím týden. Jde mi
o sdílené připojení k internetu na LAN, ke které je připojena eth0.
Pingama na sebe vidím z obou stran, ale nic víc (ping www.google.com z
eth0 ano, ping www.google.com z eth1 ne).


Takto by to mělo fungovat:
eth0 <---> eth1
inernet <---> eth0
inernet <---> eth1

A funguje pouze toto:
eth0 <---> eth1
inernet <---> eth0


Můj postup:
echo "1" > /proc/sys/net/ipv4/ip_forward


"cat /proc/sys/net/ipv4/ip_forward"
1

Forwardování nezačne po zadání příkazu 1:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.4 -j SNAT
--to-source 10.10.2.6

Forwardování nezačne po zadání příkazu 2:
iptables -t nat -A PREROUTING -i eth0 -d 10.10.2.6 -j DNAT
--to-destination 192.168.2.4

Forwardování nezačne po zadání příkazu 3:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -s 192.168.2.4

Pro všechny společné příkazy 1, 2, 3 bylo "iptables -L":
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination


"iptables -V"
iptables v1.3.3

"lsmod | grep -i ip"
iptable_nat 21332 0
ip_conntrack 41528 1 iptable_nat
iptable_filter 2944 0
ip_tables 19200 2 iptable_nat,iptable_filter
ipv6 236736 12

přidání těchto modulů a zopakování postupu stejně nepomohlo:
modprobe ipt_LOG
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
modprobe ip_conntrack_ftp

"lsmod | grep -i ip"
ip_conntrack_ftp 72464 0
ipt_REJECT 5248 0
ipt_LOG 6784 0
ipt_MASQUERADE 3328 0
iptable_nat 21332 1 ipt_MASQUERADE
ip_conntrack 41528 3 ip_conntrack_ftp,ipt_MASQUERADE,iptable_nat
iptable_filter 2944 0
ip_tables 19200 5
ipt_REJECT,ipt_LOG,ipt_MASQUERADE,iptable_nat,iptable_filter
ipv6 236736 12

"/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

# This is a list of hotpluggable network interfaces.
# They will be activated automatically by the hotplug subsystem.
mapping eth0
script grep
map eth0

mapping eth1
script grep
map eth1

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 10.10.2.6
netmask 255.255.0.0
network 10.10.0.0
broadcast 10.10.255.255
gateway 10.10.0.1
# dns-* options are implemented by the resolvconf package, if
installed
dns-nameservers 195.146.100.5

# The secondary network interface
allow-hotplug eth1
iface eth1 inet static
address 192.168.2.6
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.2.255
# gateway 192.168.0.1
# dns-* options are implemented by the resolvconf package, if
installed
dns-nameservers 195.146.100.5

"arp"
Address HWtype HWaddress Flags
Mask Iface
192.168.2.4 ether 00:AA:BB:CC:DD:EE
C eth1
10.10.0.1 ether 00:12:34:56:78:9A
C eth0

"route"
Směrovací tabulka v jádru pro IP
Adresát Brána Maska Přízn Metrik Odkaz Užt
Rozhraní
192.168.2.0 * 255.255.255.0 U 0 0 0 eth1
localnet * 255.255.0.0 U 0 0 0 eth0
default 10.10.0.1 0.0.0.0 UG 0 0 0 eth0

"ifconfig"
eth0 Zapouzdření:Ethernet HWadr 00:44:CC:88:AA:CC
inet adr:10.10.2.6 Všesměr:10.10.255.255 Maska:255.255.0.0
inet6-adr: adresa_ve_tvaru_ipv6-1/64 Rozsah:Linka
AKTIVOVÁNO VŠESMĚROVÉ_VYSÍLÁNÍ BĚŽÍ MULTICAST MTU:1500 Metrika:1
RX packets:65638031 errors:0 dropped:0 overruns:0 frame:0
TX packets:105141839 errors:0 dropped:0 overruns:0 carrier:0
kolizí:0 délka odchozí fronty:1000
RX bytes:1195368701 (1.1 GiB) TX bytes:3988506562 (3.7 GiB)
Přerušení:169 Vstupně/Výstupní port:0xb000

eth1 Zapouzdření:Ethernet HWadr 00:00:22:00:DD:EE
inet adr:192.168.2.6 Všesměr:192.168.2.255 Maska:255.255.255.0
inet6-adr: adresa_ve_tvaru_ipv6-2/64 Rozsah:Linka
AKTIVOVÁNO VŠESMĚROVÉ_VYSÍLÁNÍ BĚŽÍ MULTICAST MTU:1500 Metrika:1
RX packets:9130 errors:0 dropped:0 overruns:0 frame:0
TX packets:6747 errors:0 dropped:0 overruns:0 carrier:0
kolizí:0 délka odchozí fronty:1000
RX bytes:677471 (661.5 KiB) TX bytes:498918 (487.2 KiB)
Přerušení:177 Vstupně/Výstupní port:0xb400

lo Zapouzdření:Místní smyčka
inet adr:127.0.0.1 Maska:255.0.0.0
inet6-adr: ::1/128 Rozsah:Počítač
AKTIVOVÁNO SMYČKA BĚŽÍ MTU:16436 Metrika:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
kolizí:0 délka odchozí fronty:0
RX bytes:560 (560.0 b) TX bytes:560 (560.0 b)

Snad jsem uvedl vše potřebné. Jde o distribuci Debian Etch (testing).

Díky moc za případné rady, Petr Novák.

---------------------------------------------------------------------------
Meta-FAQ (odhlaseni, archiv, FAQ a dalsi): http://www.linux.cz/mailing-list
TIP: Prectete si obcas znovu Meta-FAQ

Jiri Havelka

nepřečteno,
25. 1. 2006 14:21:2625.01.06
komu: li...@linux.cz
Zdravim!

> Nevíte prosím, kde by mohla být chyba, už se s tím trápím týden. Jde mi
> o sdílené připojení k internetu na LAN, ke které je připojena eth0.
> Pingama na sebe vidím z obou stran, ale nic víc (ping www.google.com z
> eth0 ano, ping www.google.com z eth1 ne).

Zkuste ping primo na IP adresu nekam dal (napr. 10.10.0.1). Vypada to,
ze na tom druhem stroji nemate nastaven DNS server.

> echo "1" > /proc/sys/net/ipv4/ip_forward


> iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -s 192.168.2.4

To by melo stacit.

> # The secondary network interface
> allow-hotplug eth1
> iface eth1 inet static
> address 192.168.2.6
> netmask 255.255.255.0
> network 192.168.0.0

Sit by mela byt 192.168.2.0, ale v tom problem nebude. Tento parametr je
pozadovan u jader 2.0.x, u novejsich se zrejme nepouzije - ve
smerovaci tabulce byla sit OK. Pokud se mylim, tak me opravte.

> broadcast 192.168.2.255
> # gateway 192.168.0.1
> # dns-* options are implemented by the resolvconf package, if
> installed
> dns-nameservers 195.146.100.5

--
Jiri Havelka

---------------------------------------------------------------------------
Meta-FAQ (odhlaseni, archiv, FAQ a dalsi): http://www.linux.cz/mailing-list

TIP: Musi vase odpoved jit do konference nebo staci jen autorovi?

n_p...@seznam.cz

nepřečteno,
25. 1. 2006 15:22:3025.01.06
komu: li...@linux.cz
Jiri Havelka napsal(a):

> Zdravim!
>
>> Nevíte prosím, kde by mohla být chyba, už se s tím trápím týden. Jde
>> mi o sdílené připojení k internetu na LAN, ke které je připojena
>> eth0. Pingama na sebe vidím z obou stran, ale nic víc (ping
>> www.google.com z eth0 ano, ping www.google.com z eth1 ne).
>
> Zkuste ping primo na IP adresu nekam dal (napr. 10.10.0.1). Vypada to,
> ze na tom druhem stroji nemate nastaven DNS server.
>
DNS by se měl přebírat z toho prvního stroje. Propingnu se jen na
192.168.2.6 a na 10.10.2.6. Na 10.10.0.1 ani na 195.146.100.5 ani na
10.10.2.2, což je jiný PC připojený k LAN = rovnocenný k 10.10.2.6 (oba
na sebe vidí a jsou připojeny do internetu).

>> echo "1" > /proc/sys/net/ipv4/ip_forward
>> iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -s 192.168.2.4
>
> To by melo stacit.
>
Stačit by to mělo, ale stejně to nefunguje. A chtěl jsem použít raději
doporučovanou variantu pomocí SNAT (je v tomto případě možné použít i
DNAT nebo ten funguje opačným směrem a zde použít nelze)?

>> # The secondary network interface
>> allow-hotplug eth1
>> iface eth1 inet static
>> address 192.168.2.6
>> netmask 255.255.255.0
>> network 192.168.2.0

>
> Sit by mela byt 192.168.2.0, ale v tom problem nebude. Tento parametr je
> pozadovan u jader 2.0.x, u novejsich se zrejme nepouzije - ve
> smerovaci tabulce byla sit OK. Pokud se mylim, tak me opravte.
>
Už jsem to opravil (mělo to být tak, přehlédl jsem to), ale nepomohlo to
:'-(.
>> broadcast 192.168.2.255
>> # gateway 192.168.2.1

>> # dns-* options are implemented by the resolvconf package, if
>> installed
>> dns-nameservers 195.146.100.5
>
> --
> Jiri Havelka


---------------------------------------------------------------------------
Meta-FAQ (odhlaseni, archiv, FAQ a dalsi): http://www.linux.cz/mailing-list

TIP: Pred polozenim dotazu si nejprve prectete dokumentaci k programu

Slavek Banko

nepřečteno,
25. 1. 2006 17:25:0025.01.06
komu: li...@linux.cz
Provedení "iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.4 -j SNAT
--to-source 10.10.2.6" je ve vašem případě v podstatě shodné s "iptables
-t nat -A POSTROUTING -o eth0 -j MASQUERADE -s 192.168.2.4"- v obou
případech bude zdrojová adresa změněna na "10.10.2.6". Jak jedno, tak
druhé je dostačující k tomu, aby "192.168.2.4" mohl na Internet. Ovšem
jedině za předpokladu, že "192.168.2.4" má jako výchozí bránu nastavenu
"192.168.2.6".

Slávek.
--
Dne st 25. ledna 2006 3:55 n_p...@seznam.cz napsal(a):


> Nevíte prosím, kde by mohla být chyba, už se s tím trápím týden. Jde mi
> o sdílené připojení k internetu na LAN, ke které je připojena eth0.
> Pingama na sebe vidím z obou stran, ale nic víc (ping www.google.com z
> eth0 ano, ping www.google.com z eth1 ne).
>

> .
> .
> .


>
> Forwardování nezačne po zadání příkazu 1:
> iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.4 -j SNAT
> --to-source 10.10.2.6
>
> Forwardování nezačne po zadání příkazu 2:
> iptables -t nat -A PREROUTING -i eth0 -d 10.10.2.6 -j DNAT
> --to-destination 192.168.2.4
>
> Forwardování nezačne po zadání příkazu 3:
> iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -s 192.168.2.4
>

> .
> .
> .


>
> Snad jsem uvedl vše potřebné. Jde o distribuci Debian Etch (testing).
>
> Díky moc za případné rady, Petr Novák.

---------------------------------------------------------------------------
Meta-FAQ (odhlaseni, archiv, FAQ a dalsi): http://www.linux.cz/mailing-list

TIP: Konference o PDA a Linuxu: http://penguin.cz/cgi-bin/mailman/listinfo/pda-l

Jiri Havelka

nepřečteno,
26. 1. 2006 2:15:3426.01.06
komu: li...@linux.cz
n_p...@seznam.cz napsal(a):

> DNS by se měl přebírat z toho prvního stroje. Propingnu se jen na
> 192.168.2.6 a na 10.10.2.6. Na 10.10.0.1 ani na 195.146.100.5 ani na
> 10.10.2.2, což je jiný PC připojený k LAN = rovnocenný k 10.10.2.6 (oba
> na sebe vidí a jsou připojeny do internetu).

Poslete jeste pro jistotu nastaveni toho druheho stroje (na Windows
ipconfig /all nebo tak nejak a vypnete docasne WXP SP2 firewall) at ho
muzem vyskrtnout.

--
Jiri Havelka

---------------------------------------------------------------------------
Meta-FAQ (odhlaseni, archiv, FAQ a dalsi): http://www.linux.cz/mailing-list

n_p...@seznam.cz

nepřečteno,
26. 1. 2006 5:03:2526.01.06
komu: li...@linux.cz
Je v mém případě možné použít i DNAT (konkrétně: iptables -t nat -A
PREROUTING -i eth0 -d 10.10.2.6 -j DNAT --to-destination 192.168.2.4)
nebo ten funguje na něco jiného (jako kdybych chtěl být třeba 3
internetové servery tvářící se jako jeden)?

Všechny firewally vypnuty.

Windows PC:
"ipconfig /all"
Konfigurace protokolu IP systému Windows
Název hostitele . . . . . . . . . : otrok
Primární přípona DNS. . . . . . . :
Typ uzlu . . . . . . . . . . . . : neznámý
Povoleno směrování IP . . . . . . : Ne
WINS Proxy povoleno . . . . . . . : Ne

Adaptér sítě Ethernet Připojení k místní síti:
Přípona DNS podle připojení . . . :
Popis . . . . . . . . . . . . . . : Realtek RTL8139 Family PCI
Fast Ethernet NIC
Fyzická Adresa. . . . . . . . . . : 00-13-00-13-00-13
Protokol DHCP povolen . . . . . . : Ne
Adresa IP . . . . . . . . . . . . : 192.168.2.4
Maska podsítě . . . . . . . . . . : 255.255.255.0
Výchozí brána . . . . . . . . . . : 192.168.2.6
Servery DNS . . . . . . . . . . . : 195.146.100.5

"arp -a"
Rozhraní: 192.168.2.4 --- 0x2
internetová adresa fyzická adresa typ
192.168.2.6 00-00-22-00-dd-ee dynamická

"route print"
===========================================================================
Seznam rozhraní
0x1 ........................... MS TCP Loopback interface
0x2 ...00 13 00 13 00 13 ...... Realtek RTL8139 Family PCI Fast Ethernet
NIC - Packet Scheduler Miniport
===========================================================================
===========================================================================
Aktivní směrování:
Cíl v síti Síťová maska Brána Rozhraní Metrika
0.0.0.0 0.0.0.0 192.168.2.6 192.168.2.4 20
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.2.0 255.255.255.0 192.168.2.4 192.168.2.4 20
192.168.2.4 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.2.255 255.255.255.255 192.168.2.4 192.168.2.4 20
224.0.0.0 240.0.0.0 192.168.2.4 192.168.2.4 20
255.255.255.255 255.255.255.255 192.168.2.4 192.168.2.4 1
Výchozí brána: 192.168.2.6
===========================================================================
Trvalé trasy:
Žádné


Jiri Havelka napsal(a):

TIP: Konference o free softwaru: freesoft na list...@freesoft.cz

n_p...@seznam.cz

nepřečteno,
26. 1. 2006 10:43:2326.01.06
komu: li...@linux.cz
Podařilo se mi částečně vyřešet diskutovaný problém.

Postup:
---odstranění předešlých zběsilostí---
echo "0" > /proc/sys/net/ipv4/ip_forward
iptables -t mangle -F
iptables -t nat -F
iptables -F
reboot

---uvedení do provozu - použijeme buď a) nebo b)---
a) iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.4 -j SNAT
--to-source 10.10.2.6
b) iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -s 192.168.2.4
echo "1" > /proc/sys/net/ipv4/ip_forward

A teď to hlavní. Pokud chceme provádět s iptable_nat další věci musíme
ji vždy vypnout a zapnout, sama se nechytne! Myslíte, že by to mohla být
chyba v iptables nebo kernelu?


Pokud jsme zavedli SNAT:
---zastavení iptables---
iptables -t nat -D POSTROUTING -o eth0 -s 192.168.2.4 -j SNAT
--to-source 10.10.2.6
modprobe -r iptable_nat iptable_filter

---spuštění iptables---
modprobe iptable_nat


iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.4 -j SNAT
--to-source 10.10.2.6


Pokud jsme zavedli MASQUERADE:
---zastavení iptables---
iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE -s 192.168.2.4
modprobe -r ipt_MASQUERADE iptable_nat iptable_filter

---spuštění iptables---
modprobe iptable_nat


iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -s 192.168.2.4


Pokud jsme zavedli SNAT a chceme použít "iptables -t nat -F":
---zastavení iptables---
echo "0" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -F
modprobe -r iptable_nat iptable_filter

---spuštění iptables---
modprobe iptable_nat


iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.4 -j SNAT
--to-source 10.10.2.6

echo "1" > /proc/sys/net/ipv4/ip_forward


Pokud jsme zavedli MASQUERADE a chceme použít "iptables -t nat -F":
---zastavení iptables---
echo "0" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -F
modprobe -r ipt_MASQUERADE iptable_nat iptable_filter

---spuštění iptables---
modprobe iptable_nat


iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -s 192.168.2.4

echo "1" > /proc/sys/net/ipv4/ip_forward


Jde o to, že při použití "iptables -t nat -F", je potřeba ještě provézt
"echo "0" > /proc/sys/net/ipv4/ip_forward". Při vynechání některého
kroku nebo porušení sledu kroků může nastat nefunkčnost forwardování.


Děkuji za komentáře, Petr Novák

PS: Nezdá se mi, že by toto chování bylo standardní. Pokud ano, bylo by
dobré to zařadit do man stránek (zkoušeno na Ubuntu/Kubuntu 5.10 a
Debian Etch a Sid).


---------------------------------------------------------------------------
Meta-FAQ (odhlaseni, archiv, FAQ a dalsi): http://www.linux.cz/mailing-list

TIP: Archivy news a prohledavani najdete na http://groups.google.com/

Peter Surda

nepřečteno,
26. 1. 2006 11:06:0626.01.06
komu: li...@linux.cz
n_p...@seznam.cz wrote:
> Podařilo se mi částečně vyřešet diskutovaný problém.
[cut]

> Jde o to, že při použití "iptables -t nat -F", je potřeba ještě provézt
> "echo "0" > /proc/sys/net/ipv4/ip_forward". Při vynechání některého
> kroku nebo porušení sledu kroků může nastat nefunkčnost forwardování.

Divne. Normalne nie je treba ani sachovat z sysctl, ani manualne
loadovat moduly, ani flushovat (resp. pouziva sa iptables-restore ktory
flushuje sam).

> PS: Nezdá se mi, že by toto chování bylo standardní.

Skutocne nie je. Mozno je nieco (kernel/iptables) zle skompilovane.

S pozdravom,
Peter

--
http://www.shurdix.org - Linux distribution for routers and firewalls

---------------------------------------------------------------------------
Meta-FAQ (odhlaseni, archiv, FAQ a dalsi): http://www.linux.cz/mailing-list

TIP: Prectete si Linux Documentation Project: http://www.linux.cz/linuxdoc/

0 nových zpráv