net: add option to make vmnet the default route#1392
Conversation
|
The behaviour was similar to this before i.e. the However, some issues were reported (usually VPN related) when network address is enabled. Making Due to that, I am leaning towards leaving the current behaviour and make it opt-in for |
|
The previous solution I used was to add a Another idea is to replace the NAT( |
|
Also, I've adjusted the implementation of this PR to make the behavior opt-in by introducing a |
|
There is one more thing to do, kindly modify the embedded config file to include the corresponding section for the config. |
|
Sorry, I missed that. |
|
Thanks :) |
|
Hi! I am not sure this is the best place to ask my question, but seems relevant. |
@a0s it is not supported at the moment. |
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [abiosoft/colima](https://github.com/abiosoft/colima) | minor | `v0.8.4` -> `v0.9.1` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>abiosoft/colima (abiosoft/colima)</summary> ### [`v0.9.1`](https://github.com/abiosoft/colima/releases/tag/v0.9.1) [Compare Source](abiosoft/colima@v0.9.0...v0.9.1) #### Highlights This is a hotfix release to address disk error issues for a subset of users. Check [v0.9.0 release notes](https://github.com/abiosoft/colima/releases/tag/v0.9.0) for the main release notes. #### Commits - vm: fix root disk size getting set to zero by [@​abiosoft](https://github.com/abiosoft) in [#​1418](abiosoft/colima#1418) - k3s: customizable listen port by [@​abiosoft](https://github.com/abiosoft) in [#​1419](abiosoft/colima#1419) **Full Changelog**: <abiosoft/colima@v0.9.0...v0.9.1> ### [`v0.9.0`](https://github.com/abiosoft/colima/releases/tag/v0.9.0) [Compare Source](abiosoft/colima@v0.8.4...v0.9.0) #### Highlights This is a new release with several fixes and new features. #### New Features ##### Bridged network This has been a long requested feature and it is finally here. A new `--network-mode` flag has been introduced. Valid options are `shared` and `bridged` with the default being `shared`. ``` colima start --network-address --network-mode bridged ```⚠️ Bridged should only be used if required and the local network is compatible. Shared networking is still the recommended option and remains the default. ##### Persistent Disk **This applies only to newly created instances.** Colima now uses a separate virtual machine disk for container data as a means to guard against accidental loss of data. A deleted instance would not delete the container data disk, and a subsequent `colima start` would attempt to reinstate the data. Supported for Docker, Containerd and Incus runtimes. Kubernetes however is not yet support. To delete all data, the `--data` flag should be passed to `colima delete`. ```sh colima delete --data # delete instance and container data ```⚠️ While it works reliably, there are no guarantees against loss of data. It should be used as a disaster recovery mechanism. #### Fixes - The previous behaviour with templates has been reinstated. i.e. Colima would load config from template file if present. It can still be disabled by passing `--template=false` to `colima start`. - DNS resolution for `host.docker.internal` has been improved and now works fine in Docker, Containerd and Kubernetes containers. - `/tmp/colima` has been removed as a default mount due to issues caused when Colima is being run by multiple users on macOS. - Port forwarder is now configurable between `ssh` and `grpc` with the `--port-forwarder` flag. Defaults to `ssh`. - Fix for 386 architecture emulation when Rosetta is enabled. - Introduction of `--network-preferred-route` flag to use the network address interface as the default route when network address is enabled. This resolves networking issue for some users. - The size of the default storage pool for Incus runtime is now synced on startup to align with the available disk space on the virtual machine. ##### Runtime version bumps **NOTE:** container runtime versions can be updated manually by running the `colima update` command. - Docker version updated to `v28.4.0` - Nerdctl version updated to `v2.1.4` - Incus version updated to `v6.16` - K3s version defaults to `v1.33.4+k3s1 ` #### Commits - k3s: retry ip address retrieval during setup by [@​Nevon](https://github.com/Nevon) in [#​1374](abiosoft/colima#1374) - build(deps): bump actions/download-artifact from 4.3.0 to 5.0.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1377](abiosoft/colima#1377) - build(deps): bump actions/checkout from 4.2.2 to 5.0.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1378](abiosoft/colima#1378) - chore: replace net.ParseIP("0.0.0.0") with net.IPv4zero by [@​alexandear](https://github.com/alexandear) in [#​1375](abiosoft/colima#1375) - chore: remove tmp mount by [@​abiosoft](https://github.com/abiosoft) in [#​1379](abiosoft/colima#1379) - cli: default template flag to true. by [@​abiosoft](https://github.com/abiosoft) in [#​1380](abiosoft/colima#1380) - net: use internal dnsmasq by [@​abiosoft](https://github.com/abiosoft) in [#​1381](abiosoft/colima#1381) - net: add support for bridged mode by [@​abiosoft](https://github.com/abiosoft) in [#​1382](abiosoft/colima#1382) - misc: improve password prompt message for network setup by [@​abiosoft](https://github.com/abiosoft) in [#​1383](abiosoft/colima#1383) - vm: make port forwarder configurable by [@​abiosoft](https://github.com/abiosoft) in [#​1384](abiosoft/colima#1384) - chore: fix default value for portForwarder by [@​abiosoft](https://github.com/abiosoft) in [#​1385](abiosoft/colima#1385) - core: update disk images by [@​abiosoft](https://github.com/abiosoft) in [#​1387](abiosoft/colima#1387) - chore: update start command k3s-args example by [@​jessegonzalez](https://github.com/jessegonzalez) in [#​1386](abiosoft/colima#1386) - vm: enable 386 emulation regardless of rosetta by [@​abiosoft](https://github.com/abiosoft) in [#​1388](abiosoft/colima#1388) - config: consider MountPoint in checkOverlappingMounts by [@​sakkyoi](https://github.com/sakkyoi) in [#​1391](abiosoft/colima#1391) - net: add option to make vmnet the default route by [@​sakkyoi](https://github.com/sakkyoi) in [#​1392](abiosoft/colima#1392) - build(deps): bump actions/setup-go from 5.5.0 to 6.0.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​1394](abiosoft/colima#1394) - docs: add contribution instructions. by [@​abiosoft](https://github.com/abiosoft) in [#​1396](abiosoft/colima#1396) - vm: use external disk for container runtime by [@​abiosoft](https://github.com/abiosoft) in [#​1397](abiosoft/colima#1397) - core: update disk images by [@​abiosoft](https://github.com/abiosoft) in [#​1398](abiosoft/colima#1398) - vm: fix service clash with runtime disk mount by [@​abiosoft](https://github.com/abiosoft) in [#​1399](abiosoft/colima#1399) - vm: fix runtime disk mount directories for containerd by [@​abiosoft](https://github.com/abiosoft) in [#​1400](abiosoft/colima#1400) - vm: validate container runtime for the runtime disk by [@​abiosoft](https://github.com/abiosoft) in [#​1401](abiosoft/colima#1401) - vm: improve container runtime disk by [@​abiosoft](https://github.com/abiosoft) in [#​1404](abiosoft/colima#1404) - docs: add how to edit colima default template file to README by [@​olamilekan000](https://github.com/olamilekan000) in [#​1405](abiosoft/colima#1405) - Improvements to dedicated runtime disk by [@​abiosoft](https://github.com/abiosoft) in [#​1408](abiosoft/colima#1408) - chore: code cleanups by [@​abiosoft](https://github.com/abiosoft) in [#​1409](abiosoft/colima#1409) - incus: fix unavailable storage pool on restart by [@​abiosoft](https://github.com/abiosoft) in [#​1410](abiosoft/colima#1410) - Pre release cleanup by [@​abiosoft](https://github.com/abiosoft) in [#​1411](abiosoft/colima#1411) - incus: rework runtime disk by [@​abiosoft](https://github.com/abiosoft) in [#​1412](abiosoft/colima#1412) - expose configuration for root disk size by [@​abiosoft](https://github.com/abiosoft) in [#​1413](abiosoft/colima#1413) - Disk Cleanups by [@​abiosoft](https://github.com/abiosoft) in [#​1414](abiosoft/colima#1414) - incus: sync size of the default pool on startup by [@​abiosoft](https://github.com/abiosoft) in [#​1415](abiosoft/colima#1415) #### New Contributors - [@​jessegonzalez](https://github.com/jessegonzalez) made their first contribution in [#​1386](abiosoft/colima#1386) - [@​sakkyoi](https://github.com/sakkyoi) made their first contribution in [#​1391](abiosoft/colima#1391) **Full Changelog**: <abiosoft/colima@v0.8.4...v0.9.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMjcuMiIsInVwZGF0ZWRJblZlciI6IjQxLjEzMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
Description
Fix network routing issues when using multiple network interfaces with bridged mode.
Problem
When starting Colima with bridged networking mode, the routing table may not be configured correctly, leading to connectivity issues between containers and the host network.
Example before fix:
if interested in what happens, tcpdumps is here
ping from same subnet (works):
ping from different subnet (does not work):
There are no replies because the default route for
col0has a higher metric (300) thaneth0(200), causing traffic to prefereth0overcol0.And
eth0is not able to reach subnet outside192.168.5.0/24.The problem here is that the default route for
col0has a higher metric (300) thaneth0(200), causing traffic to prefereth0overcol0.So, requests coming into
col0would not be replied fromcol0by default if the remote host is not in the same subnet.Observed behavior
Working cases (metric adjusted):
col0when the destination is outside192.168.5.0/24.NAT mode (shared or without
--network-address)or
Solutions
col0to be lower thaneth0(e.g. 100).Note
This change does not affect the existing behavior for networks using only the default NAT interface (
eth0).192.168.5.0/24subnet will still go througheth0as before.col0will be affected.This change will ensure that traffic to and from the
col0interface is properly routed, allowing for seamless communication between containers and the host network.Open to discussion if there’s a more robust approach.