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

Я создаю тестовую среду. В котором у меня есть производственная сеть, изолированная сеть и машина linux. В машине Linux с двумя сетевыми картами один сетевой адаптер подключен к рабочей сетевой среде, затем ему назначается IP-адрес, а другой является изолированной сетью.

PROD-------(eth0)[LINUXMACHINE](eth1)-----ISOALTED NETWORK 

В приведенном выше представлении после настройки одного сетевого адаптера (eth0) я могу выполнить команду ping с компьютеров рабочей сети на Linux Machine. Затем я настраиваю eth1 на шлюз по умолчанию изолированной сети. После включения eth1 может отправлять эхо-запросы с Linux-компьютера на изолированную среду. Теперь я не могу пинговать с Prod на Linux-машину. Если я отключаю средство eth1, оно будет работать, иначе не получится.

Я новичок в сети. Я не знаю точно, где проблема и что я сделал не так. Я включил следующее

IP-пересылка, MASQUERADE и некоторые правила iptables

Любой может предложить мне хороший способ сделать эту работу.

заранее спасибо

отредактированный

Ifconfig

eth0      Link encap:Ethernet  HWaddr 00:50:56:8f:68:e7  
          inet addr:192.168.108.13  Bcast:192.168.108.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fe8f:68e7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:335609 errors:0 dropped:3107 overruns:0 frame:0
          TX packets:48332 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:131610506 (131.6 MB)  TX bytes:4424737 (4.4 MB)

eth1      Link encap:Ethernet  HWaddr 00:50:56:8f:0a:c6  
          inet addr:192.168.103.1  Bcast:192.168.103.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fe8f:ac6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:18773 errors:0 dropped:0 overruns:0 frame:0
          TX packets:35645 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1816084 (1.8 MB)  TX bytes:50940327 (50.9 MB)

iptables -t nat -nvL

Chain PREROUTING (policy ACCEPT 3 packets, 375 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   31  2604 DNAT       all  --  *      *       0.0.0.0/0            192.168.103.246      to:192.168.103.246

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 1985  138K MASQUERADE  all  --  *      eth0    0.0.0.0/0            0.0.0.0/0           
    0     0 MASQUERADE  all  --  *      eth0    0.0.0.0/0            0.0.0.0/0           

Chain VL (0 references)
 pkts bytes target     prot opt in     out     source               destination 

iptables -nvL

Chain INPUT (policy ACCEPT 49159 packets, 38M bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 32 packets, 3393 bytes)
 pkts bytes target     prot opt in     out     source               destination         
13459  582K ACCEPT     all  --  eth1   *       0.0.0.0/0            0.0.0.0/0           
21264   38M ACCEPT     all  --  eth0   eth1    0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  eth1   eth0    0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
19109 1919K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0 


cat /proc/sys/net/ipv4/ip_forward 1

3 ответа

Поскольку оба интерфейса находятся в одной подсети, просто соедините их, используя команды ниже

brctl addbr bridge1

brctl addif bridge1 eth0

brctl addif bridge1 eth1

это должно работать

Вы используете одну и ту же подсеть в обеих сетях, по сути, это как одна и та же сеть. Сначала измените это, например, используя 192.168.109.0/255.255.255 в качестве подсети для своей лаборатории тестирования, и повторите попытку.

Хорошо, теперь, когда вы разделились на две подсети, я заметил еще одну вещь: у вас есть некоторые правила брандмауэра и некоторые NAT, которые, по крайней мере, для меня не имеют смысла. Попробуйте очистить ваши правила iptables:

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

iptables -F
iptables -X
iptables -Z

Затем прочитал только NAT один:

iptables -t nat -A POSTROUTING -o eth0 -J MASQUERADE

Затем попробуйте проверить связь с машиной в частной сети, которая должна работать.

Итак, насколько я понимаю, у вас следующая ситуация

subnet1 ---> eth0 -Linux PC- eth1 <----subnet 2

Вы пытаетесь использовать этот ПК с Linux в середине как маршрутизатор между 2 подсетями?

В этом случае сделайте 2 вещи:
1) Отключите iptables (только для проверки. Вы можете включить их позже и определить свои правила)
2) Включить IP-пересылку на ПК с Linux. Добавьте это в ваш /etc/sysctl.conf

ipv4.ip_forward = 1

и беги

sysctl -p

Теперь в подсети 1 на хостах, которым нужен доступ к подсети 2, вам нужно будет настроить статические маршруты.

Давайте предположим, что следующие подсети (на основе вашего вопроса)

подсеть 1 192.168.108.0/24 eth0 .13

подсеть 2 192.168.103.0/24 eth1 .1

В этом случае на хостах в подсети 1 вам нужно будет запустить этот

route add -net 192.168.103.0/24 gw 192.168.108.13

И на хостах в подсети 2 вам нужно будет запустить этот

route add -net 192.168.108.0/24 gw 192.168.103.1

После этого должен работать ping, инициированный с хостов в подсети 1 на хосты в подсети 2. И наоборот.

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