«Телепортируем» белый ip-адрес на другой сервер при помощи ipip-туннеля

Материал из poiuty wiki
Перейти к: навигация, поиск

В связке участвуют два сервера.
Сервер (первый) донор, два ip адреса: 192.168.0.101 -> основной адрес, 192.168.0.199 -> адрес, который будем телепортировать.
192.168.0.199 -> не должен в текущий момент использоваться на сервере.
Сервер (второй) приемник, один ip адрес - 192.168.0.102.

Редактируем /etc/network/interfaces на первом сервере.

auto tun0
iface tun0 inet static
	address 192.168.1.1
	netmask 255.255.255.255
	pointopoint 192.168.0.199
	mtu 1350
	pre-up /sbin/ip tunnel add tun0 mode ipip remote 192.168.0.102 local 192.168.0.101 dev eth0
	post-down /sbin/ip tunnel del tun0

Редактируем /etc/sysctl.conf на первом сервере.

net.ipv4.ip_forward=1
net.ipv4.conf.default.proxy_arp = 1
net.ipv4.conf.all.proxy_arp = 1

Применяем настройки.

sysctl -p

Редактируем /etc/network/interfaces на втором сервере.

auto tun0
iface tun0 inet static
	address 192.168.0.199
	netmask 255.255.255.255
	pointopoint 192.168.1.1
	mtu 1350
	pre-up /sbin/ip tunnel add tun0 mode ipip remote 192.168.0.101 local 192.168.0.102 dev eth0
	post-up /sbin/ip ru add from 192.168.0.199 lookup 17 priority 17
	post-up /sbin/ip ro add default via 192.168.1.1 dev tun0 src 192.168.0.199 table 17 mtu 1350 advmss 1310
	pre-down /sbin/ip ro del default via 192.168.1.1 dev tun0 src 192.168.0.199 table 17 mtu 1350 advmss 1310
	pre-down /sbin/ip ru del from 192.168.0.199 lookup 17 priority 17
	post-down /sbin/ip tunnel del tun0

Теперь на первом и втором сервере запускаем tun0.

ifup tun0

С другого сервера проверяем.

# ping 192.168.0.199
PING 192.168.0.199 (192.168.0.199) 56(84) bytes of data.
64 bytes from 192.168.0.199: icmp_req=1 ttl=63 time=0.297 ms
64 bytes from 192.168.0.199: icmp_req=2 ttl=63 time=0.348 ms

                             My traceroute  [v0.80]
ubuntu (0.0.0.0)                                       Sun Aug  3 04:51:01 2014
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                       Packets               Pings
 Host                                Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 192.168.0.101                     0.0%     3    0.3   0.3   0.3   0.3   0.0
 2. 192.168.0.199                     0.0%     2    0.5   0.5   0.4   0.5   0.1

Теперь проверим, передается ли реальный IP. Поднимаю nginx, захожу по адресу http://192.168.0.199 -> вижу "Welcome to nginx!"
Смотрю логи, отлично IP определяется правильно.

192.168.0.100 - - [03/Aug/2014:04:34:20 +0400] "GET / HTTP/1.1" 200 ...

Оригинал статьи -> https://debian.pro/1578