Skip to content

Make omping work with nat #40

Description

@jfriesse

Looks like libvirt with nat translates multicast. Replies are then visible as a bridge address and not as a source. Example network:

<name>default</name>
<forward mode='nat'>
<nat>
   <port start='1024' end='65535'/>
  </nat>
  </forward>
 <bridge name='virbr0' stp='on' delay='0'/>
 <ip address='192.168.122.1' netmask='255.255.255.0'>
   <dhcp>
     <range start='192.168.122.2' end='192.168.122.254'/>
   </dhcp>
 </ip>
</network>

and omping then

omping.c:421 Received multicast message from 192.168.122.1 type A (0x41), len 69

Solution seems to be to:

  • Add source address as one of option
    • Such option is not in the RFC so has to use custom one
    • Add CLI option to force strict RFC behavior (= source address option is not included)
  • When mcast packet with source address option is received display it in some kind of special format (example multicast(forwarded/nat/... by 192.168.122.1), seq=6, size=69 bytes, dist=0, time=0.514ms)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions