# covert tests/manual/net* to auto ## Should be added - coreos-docs-net-testing.sh: - ext.config.networking.mtu-on-bond-kargs: configure MTU on a VLAN subinterface for the bond, which is combined with bond and vlan with static ip in our testing - maybe ipv6 in future? - coreos-network-testing.sh: - Test ifcfg file, only for rhel8 now (https://github.com/coreos/fedora-coreos-config/pull/1994) ## Done - Test multiple "nameserver=<dns server 1> nameserver=<dns server 2>" with kernel arguments (refer to https://bugzilla.redhat.com/show_bug.cgi?id=1763341) - check `/etc/NetworkManager/system-connections/*` and `/etc/resolv.conf` both have the namesevers - https://github.com/coreos/fedora-coreos-config/pull/2031 - merged - coreos.no_persist_ip and rd.net.timeout.carrier= - https://github.com/coreos/fedora-coreos-config/pull/2073 - merged - networking/tests: add bridge and team tests - https://github.com/coreos/fedora-coreos-config/pull/2092 - merged ## Find existed networking test scenarios - ext.config.networking.default-network-behavior-change - Verify default networking configuration changes with `ip=auto` in NetworkManager - ext.config.networking.force-persist-ip - Verify **coreos.force_persist_ip** makes kargs works, if same network device with two configurations - appendKernelArgs: "ip=10.10.10.10::10.10.10.1:255.255.255.0:myhostname:eth1:none:8.8.8.8 net.ifnames=0 coreos.force_persist_ip" - ignition: method=auto ``` # Setup configuration for a single NIC with two ways at the same time: # - kargs provide static network config for eth1 and coreos.force_persist_ip # - ignition provides dhcp network config for eth1 # Expected result: # - with coreos.force_persist_ip ip=kargs wins ``` - ext.config.networking.prefer-ignition-networking - similar with force-persist-ip, without coreos.force_persist_ip, Ignition networking configuration wins, verify that eth1 gets ip via dhcp - appendKernelArgs: "ip=10.10.10.10::10.10.10.1:255.255.255.0:myhostname:eth1:none:8.8.8.8 net.ifnames=0" - ignition: method=auto - ext.config.networking.mtu-on-bond-kargs - Combined with vlan and bond, verify `configure MTU on a VLAN subinterface for the bond` using kernel arguments works - appendKernelArgs: "bond=bond0:eth1,eth2:mode=active-backup,miimon=100:9000 ip=10.10.10.10::10.10.10.1:255.255.255.0:staticvlanbond:bond0.100:none:9000 vlan=bond0.100:bond0 net.ifnames=0" - ext.config.networking.mtu-on-bond-ignition - Combined with vlan and bond, verify `configure MTU on a VLAN subinterface for the bond` using ignition works ``` # kargs="bond=bond0:eth1,eth2:mode=active-backup,miimon=100:9000 \ # ip=10.10.10.10::10.10.10.1:255.255.255.0:staticvlanbond:bond0.100:none:9000: \ # vlan=bond0.100:bond0" # $/usr/libexec/nm-initrd-generator -s -- $kargs # Set MTU on a VLAN subinterface for the bond using ignition config and check # - verify MTU on the bond matches config # - verify MTU on the VLAN subinterface for the bond matches config # - verify ip address on the VLAN subinterface for the bond matches config ``` - ext.config.networking.dnsmasq-service - Verify dnsmasq.service systemd unit is masked on FCOS - ext.config.networking.kargs-rd-net - Veirfy **rd.net.timeout.dhcp** and **rd.net.dhcp.retry** are supported by NetworkManager. - "appendFirstbootKernelArgs": "rd.net.timeout.dhcp=30 rd.net.dhcp.retry=8" - ext.config.networking.hostname.fallback-hostname - Verify that the fallback hostname is set to `localhost` by first disabling NetworkManager from setting the hostname via DHCP or DNS and then verifying that the hostname is set from the fallback hostname and is `localhost`. - ext.config.networking.network-online-service - Verify unit network-online.target inactive - ext.config.networking.nic-naming - Verify NIC naming not starts with eth[0-9] expect azure platform - ext.config.networking.nm-dhcp-client - Verify NetworkManager's internal DHCP client is running - ext.config.networking.nm-start - Verify by default on qemu NetworkManager not started in initramfs, but on aws NetworkManager should started in initramfs - ext.config.networking.no-default-initramfs-net-propagation.bootif - Verify when BOOTIF= or rd.bootif= are provided on the kernel command line (typically from PXE servers) that we don't propagate networking configs - "appendFirstbootKernelArgs": "BOOTIF=52:54:00:12:34:56" - ext.config.networking.no-default-initramfs-net-propagation.default - Verify defaults no networking should have been propagated from the initramfs. - ext.config.networking.resolv.systemd-resolved - Verify `systemd-resolved` should be enabled on FCOS - coreos.network.initramfs.second-boot - verify that networking is not started in the initramfs on the second boot. - rhcos.network.multiple-nics - verify mulitple nics - rhcos.network.bond-with-dhcp - following the same network configuration used on https://github.com/RHsyseng/rhcos-slb - rhcos.network.bond-with-restart - same as above, reboot and check the connection ## manual testing - compared to https://docs.fedoraproject.org/en-US/fedora-coreos/sysconfig-network-configuration/#_host_network_configuration_options - coreos-docs-net-testing.sh: - via the dracut kernel networking arguments - via the NM keyfiles provided by Ignition ( using $ /usr/libexec/nm-initrd-generator -s -- $kargs ) - static ip for nic ip=10.10.10.10::10.10.10.1:255.255.255.0:staticip:eth1:none:8.8.8.8 - static ip for bond ip=10.10.10.10::10.10.10.1:255.255.255.0:staticbond:bond0:none:8.8.8.8 bond=bond0:eth1,eth2:mode=active-backup,miimon=100 - static ip for vlan ip=10.10.10.10::10.10.10.1:255.255.255.0:staticvlan:eth1.100:none:8.8.8.8 vlan=eth1.100:eth1 - dhcp for bridge ip=br0:dhcp bridge=br0:eth1,eth2 - dhcp for team ip=team0:dhcp team=team0:eth1,eth2 ~~- dhcp for vlan on bond~~ ip=bond0.100:dhcp bond=bond0:eth1,eth2:mode=active-backup,miimon=100 vlan=bond0.100:bond0 - coreos-network-testing.sh: - Testing ifcfg file via Ignition disables initramfs propagation (should add) - Testing coreos.no_persist_ip disables initramfs propagation - ~~Testing coreos.force_persist_ip forces initramfs propagation (covered by force-persist-ip)~~ - Testing initramfs nameserver= option - ~~Testing net.ifnames=0 gives us legacy NIC naming (covered by mtu-on-bond-kargs)~~ - loop