working VM setup
This commit is contained in:
@@ -437,7 +437,23 @@ pub fn vm_start(id: &str) -> Result<(), CloudHvError> {
|
||||
|
||||
// Ensure bridge, NAT, and DHCP
|
||||
net::ensure_bridge(&nat.bridge_name, &nat.bridge_addr_cidr, ipv6_bridge_cidr.as_deref())?;
|
||||
net::ensure_nat(&nat.subnet_cidr)?;
|
||||
// Derive IPv6 subnet for NAT
|
||||
let ipv6_subnet = ipv6_bridge_cidr.as_ref().map(|cidr| {
|
||||
let parts: Vec<&str> = cidr.split('/').collect();
|
||||
if parts.len() == 2 {
|
||||
let addr = parts[0];
|
||||
if let Ok(ip) = addr.parse::<std::net::Ipv6Addr>() {
|
||||
let seg = ip.segments();
|
||||
let pfx = std::net::Ipv6Addr::new(seg[0], seg[1], seg[2], seg[3], 0, 0, 0, 0);
|
||||
format!("{}/64", pfx)
|
||||
} else {
|
||||
"".to_string()
|
||||
}
|
||||
} else {
|
||||
"".to_string()
|
||||
}
|
||||
});
|
||||
net::ensure_nat(&nat.subnet_cidr, ipv6_subnet.as_deref())?;
|
||||
let lease_used = net::ensure_dnsmasq(
|
||||
&nat.bridge_name,
|
||||
&nat.dhcp_start,
|
||||
|
Reference in New Issue
Block a user