| 25 Jun 2025 |
matthewcroughan - nix.zone | Like I did sudo ip link add link wlan0 name macvtap0 type macvtap mode bridge and I didn't get any errors, but I'm also not having any success with the thing I expect to be working | 17:10:42 |
hexa | android on my ipv6-only wlan has been stable since I enabled multicast-to-unicast translation | 23:15:14 |
| 26 Jun 2025 |
magic_rb | Normally to be able to bridge wifi you need it in 4addr mode, check with iw | 06:02:40 |
| blaxxmith joined the room. | 09:10:40 |
matthewcroughan - nix.zone | Even with 4addr mode, you still can't bridge | 10:35:34 |
matthewcroughan - nix.zone | only if you're running as an AP does this work, not a client | 10:36:20 |
matthewcroughan - nix.zone | Hmm, I'm creating a bridge in systemd networkd, and it won't become UP | 13:18:48 |
matthewcroughan - nix.zone | systemd.network = {
networks = {
"10-eth-priority" = {
matchConfig.Name = "enp196s0";
DHCP = "yes";
dhcpV4Config.RouteMetric = 1023;
dhcpV6Config.RouteMetric = 1023;
};
"30-enp196s0" = {
matchConfig.Name ="enp196s0";
linkConfig = {
Unmanaged = "yes";
};
linkConfig.RequiredForOnline = "enslaved";
networkConfig = {
Bridge = "br0";
};
};
"40-tap0" = {
matchConfig.Name ="tap0";
bridgeConfig = { };
linkConfig.RequiredForOnline = "enslaved";
networkConfig = {
Bridge = "br0";
};
};
"40-br0" = {
matchConfig.Name = "br0";
bridgeConfig = {};
linkConfig = {
RequiredForOnline = "carrier";
};
};
};
netdevs = {
"20-tap0" = {
enable = true;
netdevConfig = {
Kind = "tap";
Name = "tap0";
};
};
"20-br0" = {
enable = true;
netdevConfig = {
Kind = "bridge";
Name = "br0";
};
};
};
};
| 13:19:05 |
matthewcroughan - nix.zone | * systemd.network = {
networks = {
"10-eth-priority" = {
matchConfig.Name = "enp196s0";
DHCP = "yes";
dhcpV4Config.RouteMetric = 1023;
dhcpV6Config.RouteMetric = 1023;
};
"30-enp196s0" = {
matchConfig.Name ="enp196s0";
linkConfig = {
Unmanaged = "yes";
};
linkConfig.RequiredForOnline = "enslaved";
networkConfig = {
Bridge = "br0";
};
};
"40-tap0" = {
matchConfig.Name ="tap0";
bridgeConfig = { };
linkConfig.RequiredForOnline = "enslaved";
networkConfig = {
Bridge = "br0";
};
};
"40-br0" = {
matchConfig.Name = "br0";
bridgeConfig = {};
linkConfig = {
RequiredForOnline = "carrier";
};
};
};
netdevs = {
"20-tap0" = {
enable = true;
netdevConfig = {
Kind = "tap";
Name = "tap0";
};
};
"20-br0" = {
enable = true;
netdevConfig = {
Kind = "bridge";
Name = "br0";
};
};
};
};
| 13:19:06 |
matthewcroughan - nix.zone | ❯ networkctl
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
2 enp196s0 ether routable configured
4 wlan0 wlan routable configuring
6 tailscale0 none routable unmanaged
7 tap0 ether no-carrier configured
8 br0 bridge no-carrier configuring
| 13:19:19 |
matthewcroughan - nix.zone | 7: tap0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel master br0 state DOWN group default qlen 1000
link/ether 66:f4:2d:a9:1b:fb brd ff:ff:ff:ff:ff:ff
8: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 16:3d:f3:58:00:14 brd ff:ff:ff:ff:ff:ff
inet6 fe80::143d:f3ff:fe58:14/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
| 13:19:30 |
matthewcroughan - nix.zone | 2: enp196s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 06:e0:4c:68:00:9b brd ff:ff:ff:ff:ff:ff
altname enx06e04c68009b
inet 192.168.5.156/24 metric 1023 brd 192.168.5.255 scope global dynamic enp196s0
valid_lft 86262sec preferred_lft 86262sec
| 13:19:44 |
adamcstephens | br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> says up to me | 13:20:44 |
matthewcroughan - nix.zone | Why does it say state DOWN | 13:21:49 |
matthewcroughan - nix.zone |  Download image.png | 13:21:59 |
adamcstephens | what does bridge link show? | 13:26:13 |
matthewcroughan - nix.zone | bridge link
7: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 2
| 13:26:43 |
adamcstephens | so it's not linked to your physical interface | 13:26:55 |
adamcstephens | could be why it's showing no-carrier | 13:28:12 |
matthewcroughan - nix.zone | But I thought it would be given I put this in the networkd config | 13:28:29 |
matthewcroughan - nix.zone | ...
"30-enp196s0" = {
matchConfig.Name ="enp196s0";
linkConfig = {
Unmanaged = "yes";
};
linkConfig.RequiredForOnline = "enslaved";
networkConfig = {
Bridge = "br0";
};
};
...
| 13:28:33 |
matthewcroughan - nix.zone | Is this not telling enp196s0 to be a slave to the bridge? | 13:29:26 |
matthewcroughan - nix.zone | I am really just following https://wiki.nixos.org/wiki/Systemd/networkd#Bridge | 13:29:56 |
adamcstephens | networkConfig.Bridge should yes. but I've not seen/used linkConfig.Unmanaged. Why did you add that? | 13:30:25 |
matthewcroughan - nix.zone | Ah, copy paste from somewhere | 13:30:38 |
matthewcroughan - nix.zone | https://discourse.nixos.org/t/setup-networking-between-multiple-vms/44910/2 | 13:30:44 |
matthewcroughan - nix.zone | I looked here first | 13:30:47 |
matthewcroughan - nix.zone | I'll remove it and see what happens | 13:30:50 |
adamcstephens |
When "yes", no attempts are made to bring up or configure matching links, equivalent to when there are no matching network files. Defaults to "no".
| 13:30:54 |
adamcstephens | that seems undesirable | 13:30:59 |