sashkets
@sashkets
Прекратил отвечать после 24.02.2022

Маршрутизация между сетями. Где ошибка?

Имеется 2 географически удаленных сервера А (генту) и Б (фрибсд). Между ними настроен канал (ipsec+racoon).
адрес внутреннего интерфейса А - 192.168.4.5
адрес внутреннего интерфейса Б - 192.168.8.1

netstat -rn на А
....
192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.8.0 192.168.175.2 255.255.255.0 UG 0 0 0 tun8
192.168.175.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun8

А пингует любой хост сети 192.168.8.0

В сети 192.168.4.0 имеется сервер В (192.168.4.2), который должен иметь доступ в сеть 192.168.8.0

netstat -rn на В

192.168.4.0/24 link#3 U net0
192.168.4.2 link#3 UHS lo0
192.168.8.0/24 192.168.4.5 UGS net0
192.168.175.0/24 192.168.4.5 UGS net0

Однако пинга с В на 192.198.8.1 нет

Подозреваю, что решение на поверхности

iptables сервера A

#!/bin/bash

iptables -F
iptables -X
iptables -t nat -F

iptables -P INPUT ACCEPT
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# NAT
iptables -I FORWARD -i eth0 -d 192.168.0.0/255.255.0.0 -j DROP
iptables -A FORWARD -i eth0 -s 192.168.0.0/255.255.0.0 -j ACCEPT
iptables -A FORWARD -i eth1 -d 192.168.0.0/255.255.0.0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

iptables -A INPUT -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Allow any via interface lo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Allow icmp, icmp-type
iptables -A INPUT -p icmp -m icmp --icmp-type echo-reply -j ACCEPT
iptables -A OUTPUT -p icmp -m icmp --icmp-type echo-request -j ACCEPT

# Allow dns requests
iptables -A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --sport 53 -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 53 -j ACCEPT

П.С.
На А установлена гента. До этого была фря, где все работало
  • Вопрос задан
  • 669 просмотров
Решения вопроса 1
piromanlynx
@piromanlynx
Системный администратор в Perfect Solutions
У вас:
iptables -P FORWARD DROP
iptables -I FORWARD -i eth0 -d 192.168.0.0/255.255.0.0 -j DROP
iptables -A FORWARD -i eth0 -s 192.168.0.0/255.255.0.0 -j ACCEPT
iptables -A FORWARD -i eth1 -d 192.168.0.0/255.255.0.0 -j ACCEPT

А сеть вашего VPS живет не на интерфейсе eth0, а на tun8 судя по netstat -rn на А.
Сходу попробуйте:
iptables -P FORWARD ACCEPT
Если всё заработает - то вам нужно править ваши правила под tunXX, который определяется динамически при поднятии тоннеля (post-up скрипты получают имя интерфейса, и там можно добавить правила в iptables)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы