IPIP Тунель
ВНИМАНИЕ: команды предваряемые символом '#
' должны выполняться с правами 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
Источники: