configuração de rede linux IPV4

1

Estou com problemas para descobrir o que configurei errado. Eu não consigo levar pacotes de volta do velodyne para um servidor Fedora com 2 interfaces eth em1 e em2. Eu tenho velodyne conectado ao host em1 para hospedar com cabo eth.

Eu sei que o velodyne está bombeando pacotes UDP em 2368 Eu posso vê-los em wireshark. Eu sei que o velodyne está reagindo porque responde ao ping:

ping 192.168.0.27
PING 192.168.0.27 (192.168.0.27) 56(84) bytes of data.
64 bytes from 192.168.0.27: icmp_seq=1 ttl=64 time=1.36 ms
64 bytes from 192.168.0.27: icmp_seq=2 ttl=64 time=0.521 ms
64 bytes from 192.168.0.27: icmp_seq=3 ttl=64 time=0.353 ms
64 bytes from 192.168.0.27: icmp_seq=4 ttl=64 time=0.485 ms

Ele grava datagramas UDP de difusão em 255.255.255.255. O endereço do host em em1 é 192.168.0.200. velodyne é 192.168.0.67

ifconfig -a
em1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.200  netmask 255.255.0.0  broadcast 192.168.255.255
        inet6 fe80::222:19ff:feab:d328  prefixlen 64  scopeid 0x20<link>
        ether 00:22:19:ab:d3:28  txqueuelen 1000  (Ethernet)
        RX packets 20457575  bytes 24210246456 (22.5 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 52  bytes 6272 (6.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Aqui está a tabela de rotas:

     route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         131.135.134.240 0.0.0.0         UG    0      0        0 em2
131.135.134.0   0.0.0.0         255.255.255.0   U     0      0        0 em2
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 em1
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 em2
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 em1
192.168.0.0     0.0.0.0         255.255.0.0     U     0      0        0 em1

Eu iniciei um soquete UDP C, mas ele permanece desconectado

netstat -an | grep udp
udp        0      0 192.168.0.200:2368      0.0.0.0:*                          
udp        0      0 0.0.0.0:43329           0.0.0.0:*                          
udp        0      0 0.0.0.0:43348           0.0.0.0:*                          
udp        0      0 0.0.0.0:68              0.0.0.0:*  



ss -l | grep 2368
tcp    UNCONN     0      0        192.168.0.200:ipproto-2368               *:*    

Aqui está um cabeçalho extraído de um pacote IP / TCP / UDP do velodyne:

Ethernet II, Src: Velodyne_20:13:62 (60:76:88:20:13:62), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
1   0.000000000 192.168.0.27    255.255.255.255 UDP 1248    Source port: opentable(2368) 
 Destination port: opentable (2368)

User Datagram Protocol, Src Port: opentable (2368), Dst Port: opentable (2368)

O que estou fazendo de errado? Importa que seja uma interface IPV4 e IPV6 ao mesmo tempo? Existe outra maneira de adicionar host à tabela de roteamento?

    
por daemondave 03.11.2015 / 02:07

2 respostas

1

A primeira coisa que eu verificaria é que você não tem um firewall bloqueando os datagramas UDP de entrada. Se você pode vê-los no Wireshark, mas eles não estão chegando ao aplicativo, isso seria um bom indicador de que algo está bloqueando-os.

Sem saber mais sobre o seu servidor, é difícil dizer exatamente o que está fazendo o bloqueio, mas sendo um sistema Fedora é mais provável netfilter , que faz parte do kernel do Linux.

Você pode verificar quais regras de firewall estão em vigor para conexões de entrada usando iptables -vL INPUT (como root), ou você pode usar a GUI do Fedora executando system-config-firewall como detalhado nos documentos do fedora .

Se você quiser adicionar uma regra à tabela para permitir esse tipo de tráfego em seu sistema, eu usaria este comando:

sudo iptables -t filter -A INPUT -i em1 -p udp --dport 2368 -j ACCEPT
    
por 03.11.2015 / 04:07
0

Resolvido;

Não tenho certeza se foi tudo ou alguns dos seguintes itens:

Eu configurei o selinux para o mínimo;

Eu adicionei sua regra ACCEPT e adicionei esta linha ao iptables

iptables -t raw -I PREROUTING 1 -p udp --dport 2368 -j NOTRACK

e eu desinstalei o netfilter_conntrack.

Parece que libnfnet_conntrack o kmod nf_conntrack foi parte do problema porque foi a última mudança.

    
por 05.11.2015 / 03:59