Conectando dois clientes Windows em sub-redes separadas através de um roteador Debian

3

Eu tenho dois ambientes Windows em diferentes sub-redes ( 192.168.1.80/30 & 172.16.21.0/25 ), ambos estaticamente designados com endereços que se conectam a um único Debian. roteador com dois NICs. Eu marquei 172.16.21.1 para eth1 e 192.168.1.81 para eth2 . Cada ambiente Windows está usando seu respectivo IP de gateway.

Como faço para permitir que os ambientes do Windows façam ping em outro usando as tabelas de roteamento? Eu já habilitei net.ipv4.ip_forward = 1 no arquivo /etc/sysctl.conf . Tentei usar tabelas de roteamento separadas, mas minha configuração não funcionou. No momento, eu só fiz a configuração IP em cada máquina, todo o resto está no padrão.

saída ifconfig:

eth1      Link encap:Ethernet  HWaddr 00:0c:29:08:05:01  

          inet addr:172.16.21.1  Bcast:172.16.21.127  Mask:255.255.255.128

          inet6 addr: fe80::20c:29ff:fe08:501/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:526 errors:0 dropped:0 overruns:0 frame:0

          TX packets:562 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:44822 (43.7 KiB)  TX bytes:40642 (39.6 KiB)

          Interrupt:17 Base address:0x20a4 



eth2      Link encap:Ethernet  HWaddr 00:0c:29:08:05:0b  

          inet addr:192.168.1.81  Bcast:192.168.1.83  Mask:255.255.255.252

          inet6 addr: fe80::20c:29ff:fe08:50b/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:856 errors:0 dropped:0 overruns:0 frame:0

          TX packets:909 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:71421 (69.7 KiB)  TX bytes:85064 (83.0 KiB)

          Interrupt:17 Base address:0x2424 



lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:65536  Metric:1

          RX packets:47 errors:0 dropped:0 overruns:0 frame:0

          TX packets:47 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:4733 (4.6 KiB)  TX bytes:4733 (4.6 KiB)

Tabela de roteamento (usando rota -n):

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         172.16.21.1     0.0.0.0         UG    0      0        0 eth1

169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth1

172.16.21.0     172.16.21.1     255.255.255.128 UG    0      0        0 eth1

192.168.1.80    192.168.1.81    255.255.255.252 UG    0      0        0 eth2

tcpdump na eth1:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
14:35:38.591460 IP 172.16.21.2 > 192.168.1.82: ICMP echo request, id 1, seq 71, length 40
14:35:43.126147 ARP, Request who-has router (00:0c:29:08:05:01 (oui Unknown)) tell 172.16.21.2, length 46
14:35:43.126189 ARP, Reply router is-at 00:0c:29:08:05:01 (oui Unknown), length 28
14:35:43.141954 IP 172.16.21.2 > 192.168.1.82: ICMP echo request, id 1, seq 72, length 40
14:36:08.894329 IP router.mdns > 224.0.0.251.mdns: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
14:36:09.658277 ARP, Request who-has 199.7.91.13 tell router, length 28
14:36:10.656763 ARP, Request who-has 199.7.91.13 tell router, length 28
14:36:10.707265 IP6 fe80::20c:29ff:fe08:501.mdns > ff02::fb.mdns: 0 [2q] PTR (QM)? _ipps._tcp.local. PTR (QM)? _ipp._tcp.local. (45)
    
por kevind 23.11.2016 / 20:10

2 respostas

2

Para que uma máquina Linux funcione como um roteador, é necessário informar como rotear o tráfego das duas sub-redes.

Você precisa usar o comando route para adicionar as rotas para cada sub-rede, algo como isso deve funcionar:

route add -net 192.168.1.80/30 gw 192.168.1.81 dev eth2
route add -net 172.16.21.0/25 gw 172.16.21.1 dev eth1

Se você já tiver ativado net.ipv4.ip_forward=1 como você disse, isso deve funcionar. Se você tem um firewall habilitado na máquina debian, você precisa fazer a configuração apropriada.

    
por 23.11.2016 / 21:52
0

De acordo com link , o encaminhamento de uma interface de rede para outra (digamos de eth0 para eth1) requer as seguintes regras iptables

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

Dado que você deseja o encaminhamento para os dois lados, também é necessário ter as regras opostas:

sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
sudo iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
    
por 23.11.2016 / 21:24