GRE tunnel

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

Первый сервер [донор] c двумя IP: 190.115.28.132, 190.115.28.133 (его и будем переносить).
Второй сервер [приемник] с одним IP: 188.165.69.24 Оригинал статьи на habrahabr.ru

Первый сервер

Редактируем /etc/sysctl.conf

net.ipv4.ip_forward = 1

Чтобы изменения вступили в силу выполним.

# sysctl -p

Редактируем /etc/network/interfaces

allow-hotplug eth0
auto eth0
iface eth0 inet static
	address 190.115.28.132
	netmask 255.255.255.192
	network 190.115.28.128
	broadcast 190.115.28.191
	gateway 190.115.28.129

auto tun0
iface tun0 inet static
	address 10.10.10.1
	netmask 255.255.255.0
	pointopoint 190.115.28.133
	pre-up modprobe ip_gre
	pre-up ip tunnel add tun0 mode gre local 190.115.28.132 remote 188.165.69.24 ttl 255 dev eth0
	up ifconfig tun0 multicast
	up arp -sD 190.115.28.133 eth0 pub
	post-down ip tunnel del tun0

Второй сервер

Редактируем /etc/network/interfaces

auto eth0
iface eth0 inet static
	address 188.165.69.24
	netmask 255.255.255.255
	post-up route add 37.187.170.254 dev eth0
	post-up route add default gw 37.187.170.254
	pre-down route del 37.187.170.254 dev eth0
	pre-down route del default gw 37.187.170.254

auto tun0
iface tun0 inet static
	address 190.115.28.133
	netmask 255.255.255.0
	pointopoint 10.10.10.1
	pre-up modprobe ip_gre
	pre-up iptunnel add tun0 mode gre local 188.165.69.24 remote 190.115.28.132 ttl 255 dev eth0
	up ifconfig tun0 multicast
	post-up ip ru add from 190.115.28.133 lookup tun0 priority 32765
	post-up ip ro add default via 10.10.10.1 dev tun0 src 190.115.28.133 table tun0
	pre-down ip ro del default via 10.10.10.1 dev tun0 src 190.115.28.133 table tun0
	pre-down ip ru del from 190.115.28.133 lookup tun0 priority 32765
	post-down iptunnel del tun0

Редактируем /etc/iproute2/rt_tables

200 tun0

Включаем GRE tunnel

Включаем tun0 на двух серверах.

# ifup tun0

Проверяем ifconfig.

tun0      Link encap:UNSPEC  HWaddr BE-73-1C-84-30-30-3A-30-00-00-00-00-00-00-00-00
          inet addr:10.10.10.1  P-t-P:190.115.28.133  Mask:255.255.255.255
          inet6 addr: fe80::200:5efe:be73:1c84/64 Scope:Link
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1476  Metric:1
          RX packets:537 errors:0 dropped:0 overruns:0 frame:0
          TX packets:509 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:70988 (69.3 KiB)  TX bytes:52031 (50.8 KiB)

tun0      Link encap:UNSPEC  HWaddr BC-A5-45-18-30-30-3A-30-00-00-00-00-00-00-00-00
          inet addr:190.115.28.133  P-t-P:10.10.10.1  Mask:255.255.255.255
          inet6 addr: fe80::200:5efe:bca5:4518/64 Scope:Link
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1476  Metric:1
          RX packets:494 errors:0 dropped:0 overruns:0 frame:0
          TX packets:534 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:49119 (47.9 KiB)  TX bytes:72960 (71.2 KiB)

Проверяем tunnel.

# /sbin/ip tunnel show
gre0: gre/ip  remote any  local any  ttl inherit  nopmtudisc
tun0: gre/ip  remote 188.165.69.24  local 190.115.28.132  dev eth0  ttl 255
tunl0: ip/ip  remote any  local any  ttl inherit  nopmtudisc

# /sbin/ip tunnel show
gre0: gre/ip  remote any  local any  ttl inherit  nopmtudisc
tun0: gre/ip  remote 190.115.28.132  local 188.165.69.24  dev eth0  ttl 255

На втором сервере на port 85 у меня стоит nginx.
Попробую открыть через браузер http://190.115.28.133:85/ => да, все работает.
ab62fba69f184e35da94e0739211.png