Двойная сетевая карта для обратного доступа NAT

Нужна помощь с этой целью:

Internet
    <-- TP_LINK Router(192.168.0.1)
        <-- PC1(eth0:192.168.0.8)
        <-- PC2(eth0:192.168.0.81)

Когда я использую кабель для подключения ПК2 eth1 к ПК3 eth0 и настраиваю настройки IP2 для ПК2 eth1 на "общий доступ к другим компьютерам", то ПК2 и ПК3 получают IP-адреса ниже:

    PC2(eth1:10.42.0.1)
        <-- PC3(eth0: 10.42.0.169)

Теперь я хочу сделать что-нибудь на маршруте или iptables, чтобы я мог "пинговать 10.42.0.169" на ПК1.

Это возможно? Ниже я попробовал:

  • Сконфигурируйте таблицу статических маршрутов маршрутизатора TP_LINK: 10.42.0.0(цель) - 255.255.255.0(маска сети) - 192.168.0.81(шлюз).

Теперь я получаю результат на ПК1:

$ traceroute 10.42.0.169
traceroute to 10.42.0.169 (10.42.0.169), 64 hops max, 52 byte packets
1  192.168.0.1 (192.168.0.1)  4.018 ms  0.905 ms  0.768 ms
2  ay11 (192.168.0.81)  1.140 ms  1.273 ms  1.482 ms
3  ay11 (192.168.0.81)  1.104 ms  1.041 ms  1.127 ms

Мы видим, что если PC2 может пересылать пакеты на 10.42.0.0/24, может быть, все будет идеально?

Вот конфигурации на ПК2:

$ route
default         192.168.0.1     0.0.0.0         UG    100    0        0 eth1
10.42.0.0       *               255.255.255.0   U     100    0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 eth1
192.168.0.1     *               255.255.255.255 UH    100    0        0 eth1

$ sudo iptables -L
[sudo] password for mlhch: 
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:bootps
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             10.42.0.0/24         state RELATED,ESTABLISHED
ACCEPT     all  --  10.42.0.0/24         anywhere            
ACCEPT     all  --  anywhere             anywhere            
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Что мне делать с маршрутом или iptables?

Спасибо!

2 ответа

Попробуйте это установить PC2 Первое, что нужно сделать, это включить IP-пересылку. Это делается либо с помощью

echo "1" > /proc/sys/net/ipv4/ip_forward

Затем мы добавим правило, указывающее переадресацию трафика.

sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

Спасибо за ваши старания.

Для /proc/sys/net/ipv4/ip_forward это уже было "1", и я настроил net.ipv4.ip_forward=1 в /etc/sysctl.conf

Я выполнил ваши команды iptables, они просто добавляются ниже 2 строк в разделе "Цепочка FORWARD":

ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED

Тогда чуда не происходит. Но это заставляет меня заметить 2 линии ОТКЛОНИТЬ

REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Я их удаляю и все работает отлично! На самом деле я также удаляю только что добавленные строки и сохраняю только 1 строку "ПРИНЯТЬ все - где угодно".

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