Как настроить шлюз между роутером и клиентами в одной сети?

Как можно настроить виртуальную машину с tun2socks (192.168.0.105) таким образом, чтобы она функционировала в качестве стандартного шлюза для хоста (192.168.0.10), направляя трафик от хоста через шлюз tun2socks? Учитывая, что на ВМ с tun2socks уже настроены два шлюза с командами:  
ip route add default via 198.18.0.1 dev tun0 metric 1  
ip route add default via 192.168.0.200 dev enp0s3 metric 10.
  • 5 сентября 2024 г. 8:32
Ответы на вопрос 2
Для настройки виртуальной машины с tun2socks (192.168.0.105) в качестве шлюза для хоста (192.168.0.10) с целью перенаправления всего трафика от хоста через этот шлюз, необходимо выполнить следующие шаги:

### 1. Настройка IP-адреса и маршрутизации

Убедитесь, что на виртуальной машине с tun2socks настроен IP-адрес и она может видеть хост. Также потерь маршрутов между виртуальной машиной и хостом быть не должно.

### 2. Включение IP Forwarding на ВМ

Для того чтобы виртуальная машина могла выполнять функции маршрутизатора, нужно включить IP Forwarding. Это делается командой:

```sh
echo 1 > /proc/sys/net/ipv4/ip_forward
```

Временное изменение, чтобы сделать его постоянным, необходимо отредактировать файл `/etc/sysctl.conf` и добавить/раскомментировать строку:

```sh
net.ipv4.ip_forward = 1
```

После изменения файла выполните команду:

```sh
sysctl -p
```

### 3. Настройка правила iptables для NAT

Нужно настроить правила `iptables` для перенаправления трафика от хоста. Предполагая, что интерфейс, подключенный к внутренней сети, - это `enp0s3`, выполните следующие команды:

```sh
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
```

Это правило позволяет вашей виртуальной машине заменять исходящий IP-адрес на IP-адрес интерфейса `tun0`.

### 4. Настройка маршрута на хосте

Теперь необходимо настроить маршруты на хосте (192.168.0.10), чтобы весь трафик через шлюз (192.168.0.105) направлялся через него. Включите маршрут следующим образом:

```sh
ip route add default via 192.168.0.105
```

### 5. Проверка соединения

После того как вы настроили настройки маршрутизации и правила NAT, проверьте, работает ли данная конфигурация. Попробуйте выполнить пинг на внешний адрес с хоста:

```sh
ping 8.8.8.8
```

Используйте `tcpdump` или аналогичные инструменты на ВМ (предположительно `enp0s3` или `tun0`), чтобы убедиться, что трафик действительно проходит через виртуальную машину.

### 6. Тестирование

Если у вас есть какие-либо ошибки, используйте инструменты диагностики, такие как `traceroute`, чтобы проверить, куда направляется трафик. Убедитесь, что другие параметры сети настроены правильно, иначе это может привести к проблемам.

### Примечания

1. **Защита сети**: Убедитесь, что у вас настроены правила брандмауэра на виртуальной машине для защиты от несанкционированного доступа.
2. **Стабильность**: После завершения всех шагов, вам может быть полезно протестировать соединение в течение нескольких часов или даже дней, чтобы убедиться в его надежности и стабильности.
Если рисунок корректный, то 192.168.0.10 подключен не коммутатору, а непосредственно к порту enp0s8. 
Тогда выносим их в другую сеть (например 192.168.1.0/24).

1. Меняем:
192.168.0.10 на 192.168.1.10
192.168.0.107 на 192.168.1.107

2. На 192.168.1.10 прописываем маршрут по умолчанию: ip route add default via 198.168.1.107

3. Не забываем позаботимся о том, чтобы пакеты правильно возвращались в сеть 198.168.1.0/24.
Сделать трансляцию NAT или прописать маршруты в зависимости от конфигурации там где надо.
Похожие вопросы