anchor.diff:            $client->waitUntilSucceeds("ip addr show dev eth1 | grep -q '192.168.1'");
             $client->waitUntilSucceeds("ip addr show dev macvlan | grep -q '192.168.1'");
   
  -          # Print diagnosting information
  +          # Print lots of diagnostic information
  +          $router->log('**********************************************');
             $router->succeed("ip addr >&2");
  +          $router->succeed("ip route >&2");
  +          $router->execute("iptables-save >&2");
  +          $client->log('==============================================');
             $client->succeed("ip addr >&2");
  +          $client->succeed("ip route >&2");
  +          $client->execute("iptables-save >&2");
  +          $client->log('##############################################');
   
             # Test macvlan creates routable ips
             $client->waitUntilSucceeds("ping -c 1 192.168.1.1");
  
positive.code:       name = "MACVLAN";
        nodes.router = router;
        nodes.client = { pkgs, ... }: with pkgs.lib; {
          virtualisation.vlans = [ 1 ];
          networking = {
            useNetworkd = networkd;
            firewall.allowPing = true;
            useDHCP = true;
            macvlans.macvlan.interface = "eth1";
  
negative.code:     let
        vlanIfs = range 1 (length config.virtualisation.vlans);
      in {
        environment.systemPackages = [ pkgs.iptables ]; # to debug firewall rules
        virtualisation.vlans = [ 1 2 3 ];
        boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = true;
        networking = {
  