Envisagez de suivre:
WAN IP1: aaa.aaa.aaa.aaa/23
WAN IP2: bbb.bbb.bbb.bbb/25
LAN Subnet: 10.3.0.0/24
LES DEUX adresses WAN ont été acheminées vers un serveur Linux et le serveur Linux est accessible sur les deux adresses. Je souhaite router bbb.bbb.bbb.bbb vers un autre hôte sur une interface LAN (10.3.0.2).
INTERNET -- Linux Server
(aaa.aaa.aaa.aaa/23, bbb.bbb.bbb.bbb/25 ens3)
(10.3.0.1/24 tap0) -------- Router
(10.3.0.2/24 tap0)
INTERNET -- ISP NAT -- (xxx.xxx.xxx.xxx/xx eth0)
(172.16.1.0/24 br-lan)
Maintenant, je veux router bbb.bbb.bbb.bbb sur mon routeur le 10.3.0.2 via tap0 (bbb.bbb.bbb.bbb était une adresse sur l’ens3). Donc, mon routeur aura une adresse IP publique. Voici ce que j'ai fait:
ip addr del bbb.bbb.bbb.bbb/25 dev ens3 # remove from ens3
ip route add bbb.bbb.bbb.bbb dev tap0 # route it to tap0
Le graphique sera comme:
INTERNET -- Linux Server
(aaa.aaa.aaa.aaa/23 ens3)
(10.3.0.1/24 tap0) -------- Router
(10.3.0.2/24, bbb.bbb.bbb.bbb tap0)
INTERNET -- ISP NAT -- (xxx.xxx.xxx.xxx/xx eth0)
(172.16.1.0/24 br-lan)
Et, table de routage sur serveur Linux:
% ip -4 route
default via aaa.aaa.aaa.1 dev ens3 onlink
10.3.0.0/24 via 10.3.0.1 dev tap0
10.3.0.1 dev ens3 scope link
aaa.aaa.aaa.0/23 dev ens3 proto kernel scope link src aaa.aaa.aaa.aaa
bbb.bbb.bbb.bbb dev tap0 scope link
169.254.0.0/16 dev ens3 scope link
Et sur mon routeur, j'ai ajouté l'adresse bbb.bbb.bbb.bbb
et je peux maintenant faire un ping bbb.bbb.bbb.bbb
sur un serveur Linux.
Cependant, je ne peux pas cingler bbb.bbb.bbb.bbb
sur d'autres hôtes. Alors j'ai essayé:
iptables -t nat -A POSTROUTING -j MASQUERADE
Avec cette règle, j'ai pu faire un ping bbb.bbb.bbb.bbb
sur Internet. Et si je fais un traceroute, je peux voir que bbb.bbb.bbb.bbb est derrière aaa.aaa.aaa.aaa, c'est-à-dire:
...
10. ???
11. aaa.aaa.aaa.aaa 0.0% 16 45.3 43.6 43.1 45.5 0.8
12. bbb.bbb.bbb.bbb 0.0% 16 53.7 54.8 51.2 79.4 7.1
Cependant, je veux la véritable adresse IP source au point de terminaison du tunnel (10.3.0.2) - maintenant, je reçois tout le trafic 10.3.0.1 sur mon routeur, car le serveur Linux utilise SNAT. Comment devrais-je faire ça?