# Bidirektionales mapping mit iptables

## nagel

Hallo Community!

Folgendes Problem: Ich habe von meinem ISP mehrere öffentliche IPs zugeteilt bekommen, nun möchte ich einen internen Rechner mithilfe von iptables auf eine öffentliche ip mappen.

z.b interner rechner mit der ip 192.168.3.12 soll auf die ip 1.1.1.1 gemappt werden.

Wer hat kann mit mit iptables helfen. (ja ich habe geooglet und die iptables mans schon gelesen, bin aber weder mit snat noch dnat auf eine funktionierende Lösung gekommen)

danke im vorraus

----------

## STiGMaTa_ch

Was du suchst ist MASQUERADING.

http://www.pl-forum.de/t_netzwerk/iptables.html#ToC16

Alternativ kannst du auch nur einzelne Ports von der öffentlichen Adresse zum internen Rechner durchreichen, was meiner Meinung nach sinnvoller ist.

Lieber Gruss

STiGMaTa

----------

## musv

Und wenn du noch etwas bequemer (ohne Selberdenken) rangehen willst:

http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/pdf/Masquerading-Simple-HOWTO.pdf

----------

## sschlueter

Soweit ich weiß, läßt sich ein vollständiges, bidirektionales Mapping mittels NETMAP erreichen, das habe ich aber noch nicht gemacht. (Meistens reicht SNAT in Kombination mit DNAT für einzelne Ports.)

----------

## bbgermany

Hi,

es handeslt sich hier nicht um MASQUERADING. Das ist echtes 1:1 NAT (SourceNAT und DestinationNAT). Schau dir mal das NAT Howto hier an: http://netfilter.org/documentation/HOWTO/de/NAT-HOWTO.html

Masquerading nimmt man nämlich nur, wenn man nur eine öffentliche IP hat  :Wink: 

MfG. Stefan

----------

## nagel

hi!

ich hab jetzt nach durchlesen der links (danke übrigens) folgende iptables syntax:

 iptables -t nat -A POSTROUTING -s 192.168.3.12 -j SNAT --to 1.1.1.1 -j MASQUERADE

leider ändert sich nichts!

hat ich da einen fehler drin?

----------

## bbgermany

 *nagel wrote:*   

> hi!
> 
> ich hab jetzt nach durchlesen der links (danke übrigens) folgende iptables syntax:
> 
>  iptables -t nat -A POSTROUTING -s 192.168.3.12 -j SNAT --to 1.1.1.1 -j MASQUERADE
> ...

 

Der Befehl ist falsch. Folgender Befehl erzeugt eine 1:1 Mapping:

```

# Eingehenden Verbindungen zu IP-Adress 1.1.1.1 zu 192.168.3.12 umsetzen

iptables -t nat -A PREROUTING -d 1.1.1.1 -j DNAT --to 192.168.3.12

# Ausgehende Verbindungen von 192.168.3.12 zu 1.1.1.1 umsetzen

iptables -t nat -A POSTROUTING -s 192.168.3.12 -j SNAT --to 1.1.1.1

```

----------

## Master_Of_Disaster

 *bbgermany wrote:*   

> Masquerading nimmt man nämlich nur, wenn man nur eine öffentliche IP hat 

 

[...] nur, wenn man nur keine _fixe_ öffentliche IP hat [...]

IPs die man vom Provider per DHCP für 24h zugewiesen bekommt sind meist auch öffentlich. dyndns.org wär sonst ziemlich sinnlos....

----------

## bbgermany

 *Master_Of_Disaster wrote:*   

> [...] nur, wenn man nur keine _fixe_ öffentliche IP hat [...]
> 
> IPs die man vom Provider per DHCP für 24h zugewiesen bekommt sind meist auch öffentlich. dyndns.org wär sonst ziemlich sinnlos....

 

Macht man auch dann, wenn man nur eine fixe IP Adresse hat. dyndns.org ist nämlich auch in dem Fall nützlich, weil eine feste IP-Adresse zu haben, heist noch lange nicht, dass man voll auflösbar ist.

----------

## nagel

 *bbgermany wrote:*   

> 
> 
> Der Befehl ist falsch. Folgender Befehl erzeugt eine 1:1 Mapping:
> 
> ```
> ...

 

danke für den code! leider funzt es jetz auch nicht. hat vll sonst noch wer eine idee??

----------

## bbgermany

Hi,

du brauchst natürlich noch die passenden FORWARD Regeln dazu.

MfG. Stefan

----------

## nagel

 *bbgermany wrote:*   

> Hi,
> 
> du brauchst natürlich noch die passenden FORWARD Regeln dazu.
> 
> MfG. Stefan

 

die würden wie ausschaun??

----------

