Stichwort NAT, Network Address Translation.
Ich habe ein zusätzliches virtuelles Interface benutzt, damit ich zwei verschiedene Subnetze zusammenbringen kann, obwohl beide über den selben Netzwerkadapter am Rechner angeschlossen sind. Mit zwei verschiedenen Adaptern, etwa eth0 und (anstelle von eth0:1 in der folgenden Konfiguration) eth1, sollte das aber analog funktionieren.
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
|
auto eth0
iface eth0 inet static
address 10.0.0.123
netmask 255.255.255.0
gateway 10.0.0.1
auto eth0:1
iface eth0:1 inet static
address 192.168.0.123
netmask 255.255.255.0
|
Hier hat der konfigurierte Host also jeweils die IP-Adresse .123 in den Netzen 10.0.0.0/24 und 192.168.0.0/24.
Dieses speicherst du als Shellscript ab, z.B. 'setup_nat.sh':
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#/bin/sh
# flush tables
iptables -F
iptables -F -nat
iptables -F -t mangle
iptables -X
iptables -X -t nat
iptables -X -t mangle
# set up forwarding
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
|
Damit werden die IP-Tables geleert, IP-Forwarding aktiviert sowie alles (zusätzlich) über eth0 nach Außen weitergeleitet.
So ganz stecke ich da auch nicht drin, aber es hat funktioniert. Ergänzende Möglichkeiten und Erklärungen sind also willkommen.