Моя проблема заключается в пересылке пакетов от eth2, который является моей локальной сетью, к eth1, который имеет доступ к Интернету, чтобы разрешить доступу eth2 к Интернету, вот моя конфигурация:

auto eth1
iface eth1 inet static
    address 192.168.3.1
    netmask 255.255.255.0
    network 192.168.3.0
    broadcast 192.168.3.255
    gateway 192.168.3.254

auto eth2
iface eth2 inet static
    address 10.101.26.1
    netmask 255.255.0.0
    network 10.101.0.0
    broadcast 10.101.255.255

Конфигурация iptables:

iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT

Уже раскомментируйте net.ipv4.ip forward = 1 в /etc/sysctl.conf и напишите 1 в /proc/sys/net/ipv4/ip_forward.

Если я провожу тестирование с ПК, подключенным к локальной сети с шлюзом 10.101.26.1, я не могу подключиться к Интернету, так как я могу решить эту проблему?

Спасибо за любую помощь! С уважением

2 ответа2

1

Вам понадобится какое-то маскирующее заявление. Причина этого заключается в том, что в настоящее время пакеты, поступающие с eth2 на eth1, идентифицируются по адресам 10.101.0.0/16. Эти пакеты 10.101.0.0/16 затем пытаются пройти через сеть через eth1 (192.168.3.0/24). Это терпит неудачу, потому что те пакеты еще не были замаскированы как пакеты от 192.168.3.1.

Небольшой скрипт, подобный приведенному ниже, должен помочь. Изменить по необходимости:

#! /bin/bash

IPTABLES=/sbin/iptables

WANIF='eth1'
LANIF='eth2'

# enable ip forwarding in the kernel
echo 'Enabling Kernel IP forwarding...'
/bin/echo 1 > /proc/sys/net/ipv4/ip_forward

# flush rules and delete chains
echo 'Flushing rules and deleting existing chains...'
$IPTABLES -F
$IPTABLES -X

# enable masquerading to allow LAN internet access
echo 'Enabling IP Masquerading and other rules...'
$IPTABLES -t nat -A POSTROUTING -o $LANIF -j MASQUERADE
$IPTABLES -A FORWARD -i $LANIF -o $WANIF -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -i $WANIF -o $LANIF -j ACCEPT

$IPTABLES -t nat -A POSTROUTING -o $WANIF -j MASQUERADE
$IPTABLES -A FORWARD -i $WANIF -o $LANIF -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -i $LANIF -o $WANIF -j ACCEPT

echo 'Done.'
0

Исходя из вашего описания, я предполагаю, что ваш компьютер находится за маршрутизатором, а eth1 подключен к Интернету через маршрутизатор. Вам необходимо создать статический маршрут на вашем маршрутизаторе к 10.101.0.0/16 через 192.168.3.1, чтобы ответные пакеты, предназначенные для указанной сети, могли быть перенаправлены на ваш ПК.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .