IPIP Тунель

Материал из FedoraMD.org Wiki
Перейти к навигации Перейти к поиску

ВНИМАНИЕ: команды предваряемые символом '#' должны выполняться с правами root (Суперпользователь). Открыв терминал (или находясь в консоли) с правами обычного пользователя, введите команду $ su - для повышения уровня привелегий. Символы '$' и '#' в начале строки не являются частью команды и не должны вводится. Прочие команды могут выполняться с правами обыкновенного пользователя.


Иногда бывают ситуации, когда необходимо соединить удаленные Unix-сервера тунелем для того, чтобы предоставить локальным пользователям определенные сервисы из удаленной сети или просто для того, чтобы получить доступ к удаленной внутренней сети.

Предположим, что у нас 2 сервера:

  • Server1:
    • ОС: Linux
    • Сетевой интерфейс: eth0
    • IP: 100.100.100.100
  • Server2:
    • ОС: Linux
    • Сетевой интерфейс: eth1
    • 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

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

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

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

# ifconfig tun0 10.0.0.1 netmask 255.255.255.252 \
> pointopoint 10.0.0.2

3. Поднимем интерфейс:

# ifconfig tun0 up

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

# ifconfig tun0

Соответственно делаем настройки для Server2:

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

# ip tunnel add tun0 mode ipip \
> remote 100.100.100.100 local 200.200.200.200 dev eth1

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

# ifconfig tun0 10.0.0.2 netmask 255.255.255.252 \
> pointopoint 10.0.0.1

3. Поднимем интерфейс:

# ifconfig tun0 up

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

# ifconfig tun0

Проверяем на Server1:

# ping 10.0.0.2

Проверяем на Server2:

# ping 10.0.0.1

Пакеты ходят через IPIP тунель. Для объединения разных сетей необходимо построить таблицу рутирования и разрешить ядру перебрасывать пакеты между интерфейсами.

Примечание: При использовании тунеля через firewall необходимо разрешить принимать протокол IPIP (94):

  • для Server1
# iptables -A INPUT -p ipip -s 100.100.100.100 -j ACCEPT
  • для Server2
# iptables -A INPUT -p ipip -s 200.200.200.200 -j ACCEPT

Источники: