I appreciate your input and help.  sorry for the delay, I'm finally getting back to this project.

to answer some of your questions.  I am starting the container with --network=testmac1 
I used you config but unfortunately, I get the same result, not receiving any traffic back to the container.  Do you have any kind of special routes added to the host that would be affecting things?

podman network ls is showing the testmac1 network.  here is the out put of ip -a inside the container
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0@if4: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP
    link/ether e2:bb:95:70:e1:6a brd ff:ff:ff:ff:ff:ff
    inet brd scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::e0bb:95ff:fe70:e16a/64 scope link
       valid_lft forever preferred_lft forever

here is the output of ip -r
default via dev eth0 dev eth0  proto kernel  scope link  src

ultimately, the whole issue is that I need to Multicast traffic, that is hitting the physical host, to be forwarded to the container.  From what I can tell, that isn;t possible with the default bridge device podman uses.  There were a few mentions of macvlan being able to do this.  If I am missing something simple, that would be great and would love for someone to point it out to me :) .   the only way I have managed this is by using --network-host.  However, the requirements for this project are that the container can ssh to other physical jenkins nodes, be able to receive multicast traffic  AND ssh to itself (ssh ${HOSTNAME}).  when using the host network, ssh ${HOSTNAME} just connects back to the physical host.

thanks for any other help you can offer.


On Fri, Feb 26, 2021 at 2:15 PM Jan Hutař <jhutar@redhat.com> wrote:
On 2021-02-25 16:03 -0500, Rusty Sapper wrote:
>I’m having trouble setting up a macvlan.  I created my config under
>/etc/cni/net.d and can successfully start my continater with the macvlan
>However, when I exec into the container, it has no network access to
>anything except itself.  I apologize, I'm new to podman.  I need to be able
>to ssh into other hosts(jenkins nodes) to run tests.  I am unable to use
>the host network due to other requirements.
>Any help would be appreciated.  here is my macvlan config:
>   "cniVersion": "0.4.0",
>   "name": "testmac1",
>   "plugins": [
>      {
>         "type": "macvlan",
>         "master": "eno1np0",
>         "ipam": {
>            "type": "host-local",
>            "routes": [
>               {
>                  "dst": ""
>               }
>            ],
>            "ranges": [
>                [
>                    {
>                        "subnet": "",
>                        "gateway": ""
>                    }
>                ]
>            ]
>         }
>      },
>      {
>          "type": "portmap",
>          "capabilities": {
>            "portMappings": true
>          }
>      }
>   ]

although I admit I do not know what am I doing, I got externally
accessible containers via macvlan working. I do not have a "portmap"
plugin, but mine config have this:

       "type": "tuning",
       "capabilities": {
         "mac": true

Whole config that works for me (as an ansible template) looks like this:

       "cniVersion": "0.4.0",
       "name": "macvlanprivate",
       "plugins": [
           "type": "macvlan",
           "master": "ens4",
           "ipam": {
             "type": "host-local",
             "ranges": [
                   "subnet": "{{ (private_ip + '/' + private_netmask) | ipaddr('0') }}",
                   "gateway": "{{ private_gw }}",
                   "rangeStart": "{{ (private_ip + '/' + containers_netmask) | ipaddr('1') | ipaddr('address') }}",
                   "rangeEnd": "{{ (private_ip + '/' + containers_netmask) | ipaddr('-4') | ipaddr('address') }}"
             "routes": [
                 "dst": ""
           "type": "tuning",
           "capabilities": {
             "mac": true

Also can you ping your from your container host? Are you
running your host with:

     podman run --net testmac1 ...

Is following showing your network config?

     podman network ls

Can you see IP in:

     podman inspect --format "{{.NetworkSettings.Networks.testmac1.IPAddress}}" "<container>"

What does `ip a` and `ip r` say in the container?

Just trying obvious as nobody answered yet :) Feel free to ignore me.


Jan Hutar   Performance Engineering
jhutar@redhat.com     Red Hat, Inc.