Как направить исходящий трафик для определенного IP-адреса назначения в GRE Tunnel в CentOS?

Здравствуйте, я пытаюсь настроить сеть, как эта схема сети:-

введите описание здесь

Что ж, мне нужно создать GRE-туннель на моем альфа-сервере и направить некоторый конкретный трафик на GRE-туннель. Я хочу выполнить настройки в CentOS. Я объясню сценарий ниже:

У меня есть две сетевые карты на моем сервере. Одна из них - eth0, а одна - eth1. eth1 подключен к Интернету, а eth0 подключен к сети A. Теперь я создал GRE-туннель через Интернет, который проходит через eth1. Теперь я хочу исходящий трафик, например, с IP-адресом назначения, как 190.93.247.183 или www.faultserver.ru. мой GRE Tunnel и остальные весь трафик должен проходить через eth0. Как мне это сделать? Я думаю, что это возможно с помощью статической маршрутизации. Пожалуйста, объясните команды шаг за шагом, так как я не очень хорошо разбираюсь в CentOS и Networking. Спасибо.

2 ответа

Решение

Хотя в вашем описании недостаточно информации (например, IP-адресов и т. Д.), Чтобы мы могли предоставить полный / полный ответ, основная идея состоит в том, что вы создаете статический маршрут, чтобы любой трафик для этого конкретного IP-адреса, который вы хотите, проходил через туннель GRE.

Так что если, например, вы хотите направить 190.93.247.183 через туннель GRE вы добавляете статический маршрут с помощью следующей команды.

ip route add 190.93.247.183 via 10.0.0.1 dev tun0

10.0.0.1 адрес - это удаленный адрес туннеля GRE (не публичный адрес), который будет использоваться в качестве шлюза.
Таким образом, вы заменяете его тем, что настроили в своем туннеле. В вашей диаграмме вы упоминаете этот адрес как gre addr,

Также вам нужно заменить tun0 с любым именем вашего интерфейса GRE Tunnel.

Этот маршрут должен быть добавлен на client сторона (я не уверен, какая сторона на вашей диаграмме, вы упоминаете альфа и бета там, но не в своем описании)

Это будет маршрутизировать все (UDP,TCP,ICMP...) для этого IP через туннель.
Также имейте в виду, что это работает только для IP-адресов. Поэтому, если вы хотите направить www.faultserver.ru (который разрешается на несколько IP-адресов - и может время от времени меняться), вы не можете сделать это через DNS. Вам необходимо добавить статические маршруты для всех связанных IP-адресов, которые вы хотите направить через туннель.

Наконец, имейте в виду, что статический маршрут будет потерян после перезагрузки.
Вам нужно будет добавить его в некоторый файл конфигурации, чтобы сохранить его после перезагрузки. В зависимости от вашего дистрибутива это разные.

Вот пример для Debian (или на основе Debian):

В файле /etc/network/interfaces

auto tun1
iface tun1 inet static
    address <tunnel IP>
    netmask <tunnel subnet mask>
    pre-up iptunnel add tun1 mode gre local <local IP> remote <remote IP> ttl 255
    up ifconfig tun1 multicast
    pointopoint <remote tunnel IP>
    post-up ip route add <IP to route via tunnel> via <remote tunnel IP> dev tun0
    post-down iptunnel del tun1

Редактировать:

Мои извинения, я не видел, чтобы вы упомянули, что вы используете CentOS.
Ниже описано, как добавить постоянные статические маршруты в поле CentOS (или на основе RHEL).

Вам необходимо создать файл маршрута на основе имени вашего интерфейса.
Так, например, если имя вашего интерфейса (туннель в вашем случае) tun0 Затем вам нужно создать следующий файл:/etc/sysconfig/network-interfaces/route-tun0

В него вы просто добавляете следующее:

<IP to route via tunnel> via <remote tunnel IP>

Для любых дополнительных IP-адресов или подсетей, которые вы хотите направить через туннель, вы просто добавляете больше строк, таких как одна отсутствующая, в тот же файл.
Для подсетей вы можете добавить их в следующем формате: 10.0.0.0/8

Наконец, чтобы применить вышеуказанную конфигурацию, вы можете либо отключить, а затем запустить интерфейс tun0.

ifdown tun0 ; ifup tun0

или полностью перезагрузите сеть

service network restart

Добавьте правило маршрутизации, которое направляет предполагаемые IP-адреса (те, что находятся в удаленной локальной сети) на удаленный IP-адрес в сети GRE (удаленный маршрутизатор)

Другие вопросы по тегам