Skip to content

Multicast traffic cannot pass through bridge of virt-launcher pod. #2292

@kononovn

Description

@kononovn

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:

/kind bug

/kind enhancement

What happened:
Multicast traffic can not pass from/to VM via virt-launcher pod network.
What you expected to happen:
All kind of traffic can pass transparently from/to VM via virt-launcher pod network
How to reproduce it (as minimally and precisely as possible):
Create 2 VM and configure direct L2 link between them, use connection type 'bridge' and configure some multicast protocol(LLDP for example). You will see that traffic goes out of VM but doesn't pass via virt-launcher pod.
Anything else we need to know?:
Possible solution is to add following flag into virt-launcher pod bridge
echo 65528 > /sys/class/net/virbr0/bridge/group_fwd_mask
Environment:

  • KubeVirt version (use virtctl version):
    Client Version: version.Info{GitVersion:"v0.16.0", GitCommit:"06d91198bededc7a9353ac774221c83580ee3373", GitTreeState:"clean", BuildDate:"2019-04-05T15:24:49Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
    Server Version: version.Info{GitVersion:"v0.16.0-gb37c22bbf", GitCommit:"$Format:%H$", GitTreeState:"", BuildDate:"2019-04-18T08:47:30Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
  • Kubernetes version (use kubectl version):
    [root@zeus06 cnv-tests]# kubectl version
    Client Version: version.Info{Major:"1", Minor:"10+", GitVersion:"v1.10.0+d4cacc0", GitCommit:"d4cacc0", GitTreeState:"clean", BuildDate:"2018-12-06T18:30:39Z", GoVersion:"go1.11.2", Compiler:"gc", Platform:"linux/amd64"}
    Server Version: version.Info{Major:"1", Minor:"12+", GitVersion:"v1.12.4+0ba401e", GitCommit:"0ba401e", GitTreeState:"clean", BuildDate:"2019-03-31T22:28:12Z", GoVersion:"go1.10.8", Compiler:"gc", Platform:"linux/amd64"}
  • VM or VMI specifications:
    VM-A
apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachine
metadata:
metadata:
  name: vma
  namespace: myproject
spec:
  running: false
  template:
    spec:
      domain:
        devices:
          disks:
            - name: containerdisk
              disk:
                bus: virtio
            - name: cloudinitdisk
              disk:
                bus: virtio
          interfaces:
            - name: default
              bridge: {}
            - name: br1
              bridge: {}
        resources:
          requests:
            memory: 1G
        cpu:
          cores: 2
      volumes:
        - name: containerdisk
          containerDisk:
            image: kubevirt/fedora30-cloud-container-disk-demo:latest
        - name: cloudinitdisk
          cloudInitNoCloud:
            userData: |-
              #cloud-config
              password: fedora
              chpasswd: { expire: False }
      networks:
        - name: default
          pod: {}
        - multus:
            networkName: br1
          name: br1

VM-B

apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachine
metadata:
metadata:
  name: vmb
  namespace: myproject
spec:
  running: false
  template:
    spec:
      domain:
        devices:
          disks:
            - name: containerdisk
              disk:
                bus: virtio
            - name: cloudinitdisk
              disk:
                bus: virtio
          interfaces:
            - name: default
              bridge: {}
            - name: br1
              bridge: {}
        resources:
          requests:
            memory: 1G
        cpu:
          cores: 2
      volumes:
        - name: containerdisk
          containerDisk:
            image: kubevirt/fedora30-cloud-container-disk-demo:latest
        - name: cloudinitdisk
          cloudInitNoCloud:
            userData: |-
              #cloud-config
              password: fedora
              chpasswd: { expire: False }
      networks:
        - name: default
          pod: {}
        - multus:
            networkName: br1
          name: br1

Metadata

Metadata

Assignees

Labels

kind/buglifecycle/rottenDenotes an issue or PR that has aged beyond stale and will be auto-closed.sig/network

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions