Fork me on GitHub

Туннель между FreeBSD и Linux

1
2
3
4
5
6
7
8
Server1:
ОС: Linux
Сетевой интерфейс: eth0
IP: 100.100.100.100
Server2:
ОС: FreeBSD
Сетевой интерфейс: fxp0
IP: 200.200.200.200

Нам необходимо получить IPv4 over IPv4 тунель со следующими параметрами между указанными серверами:

1
2
Server1: 10.0.0.1 / 255.255.255.252
Server2: 10.0.0.2 / 255.255.255.252

Для настройки описанной конфигурации на Linux-сервере нам нужно выполнить следующие шаги:

Создадим ipip-тунельный интерфейс:

1
ip tunnel add tun0 mode ipip remote 200.200.200.200 local 100.100.100.100 dev eth0

Установим IP-адреса:

1
ifconfig tun0 10.0.0.1 netmask 255.255.255.252 pointopoint 10.0.0.2

Установим MTU и поднимем интерфейс:

1
 ifconfig tun0 mtu 1500 up

Теперь на Linux-сервере мы имеем следующий интерфейс:

1
2
3
4
5
6
7
8
ifconfig tun0 tun77 Link encap:IPIP Tunnel HWaddr

inet addr:10.0.0.1  P-t-P:10.0.0.2  Mask:255.255.255.252
UP POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:504 (504.0 b)  TX bytes:624 (624.0 b)

Следующим шагом будет настройка конца тунеля на стороне FeeeBSD-сервера:

Создаем gif-интерфейс для тунеля:

1
ifconfig gif0 create

Устанавливаем транспортные IP-адреса:

1
gifconfig gif0 inet 200.200.200.200 100.100.100.100

Устанавливаем IP-адреса тунеля:

1
ifconfig gif0 10.0.0.2 netmask 255.255.255.252 10.0.0.1

Устанавливаем MTU и поднимаем интерфейс:

1
ifconfig gif0 mtu 1500 up

В результате на стороне FreeBSD видим следующее:

1
2
ifconfig gif0
gif0: flags=8051 mtu 1500
1
2
tunnel inet 200.200.200.200 --> 100.100.100.100
inet 10.0.0.2 --> 10.0.0.1 netmask 0xfffffffc

Comments