Fork me on GitHub

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

Server1:
    ОС: Linux
    Сетевой интерфейс: eth0
    IP: 100.100.100.100
Server2:
    ОС: FreeBSD
    Сетевой интерфейс: fxp0
    IP: 200.200.200.200

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

Server1: 10.0.0.1 / 255.255.255.252
Server2: 10.0.0.2 / 255.255.255.252

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

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

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

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

ifconfig tun0 10.0.0.1 netmask 255.255.255.252 pointopoint 10.0.0.2

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

ifconfig tun0 mtu 1500 up

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

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-интерфейс для тунеля:

ifconfig gif0 create

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

gifconfig gif0 inet 200.200.200.200 100.100.100.100

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

ifconfig gif0 10.0.0.2 netmask 255.255.255.252 10.0.0.1

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

ifconfig gif0 mtu 1500 up

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

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

Comments