diff options
| author | David Lönnhager <david.l@mullvad.net> | 2024-04-10 00:24:27 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2024-04-17 10:16:53 +0200 |
| commit | 84d15c421fc7efe55da0be45e09fc8d12fc2eddb (patch) | |
| tree | cfdfeacdb7c0926c01abfb9c456855d66687a494 /test/test-manager/src/vm | |
| parent | d1e928106c2aacb848d16092b72fcf475c89083a (diff) | |
| download | mullvadvpn-84d15c421fc7efe55da0be45e09fc8d12fc2eddb.tar.xz mullvadvpn-84d15c421fc7efe55da0be45e09fc8d12fc2eddb.zip | |
Remove dummy interfaces
Diffstat (limited to 'test/test-manager/src/vm')
| -rw-r--r-- | test/test-manager/src/vm/network/linux.rs | 35 | ||||
| -rw-r--r-- | test/test-manager/src/vm/network/macos.rs | 35 | ||||
| -rw-r--r-- | test/test-manager/src/vm/network/mod.rs | 3 |
3 files changed, 3 insertions, 70 deletions
diff --git a/test/test-manager/src/vm/network/linux.rs b/test/test-manager/src/vm/network/linux.rs index f54d218b2f..c767a35072 100644 --- a/test/test-manager/src/vm/network/linux.rs +++ b/test/test-manager/src/vm/network/linux.rs @@ -25,15 +25,6 @@ pub const BRIDGE_NAME: &str = "br-mullvadtest"; /// TAP interface used by the guest pub const TAP_NAME: &str = "tap-mullvadtest"; -/// Pingable dummy LAN interface (name) -pub const DUMMY_LAN_INTERFACE_NAME: &str = "lan-mullvadtest"; -/// Pingable dummy LAN interface (IP) -pub const DUMMY_LAN_INTERFACE_IP: Ipv4Addr = Ipv4Addr::new(172, 29, 1, 200); -/// Pingable dummy interface with public IP (name) -pub const DUMMY_INET_INTERFACE_NAME: &str = "net-mullvadtest"; -/// Pingable dummy interface with public IP (IP) -pub const DUMMY_INET_INTERFACE_IP: Ipv4Addr = Ipv4Addr::new(1, 3, 3, 7); - // Private key of the wireguard remote peer on host. const CUSTOM_TUN_REMOTE_PRIVKEY: &str = "gLvQuyqazziyf+pUCAFUgTnWIwn6fPE5MOReOqPEGHU="; // Public key of the wireguard remote peer on host. @@ -47,9 +38,9 @@ data_encoding_macro::base64_array!( "pub const CUSTOM_TUN_LOCAL_PRIVKEY" = "mPue6Xt0pdz4NRAhfQSp/SLKo7kV7DW+2zvBq0N9iUI=" ); -/// "Real" (non-tunnel) IP of the wireguard remote peer as defined in `setup-network.sh`. +/// "Real" (non-tunnel) IP of the wireguard remote peer on the host #[allow(dead_code)] -pub const CUSTOM_TUN_REMOTE_REAL_ADDR: Ipv4Addr = Ipv4Addr::new(172, 29, 1, 200); +pub const CUSTOM_TUN_REMOTE_REAL_ADDR: Ipv4Addr = Ipv4Addr::new(172, 29, 1, 1); /// Port of the wireguard remote peer as defined in `setup-network.sh`. #[allow(dead_code)] pub const CUSTOM_TUN_REMOTE_REAL_PORT: u16 = 51820; @@ -134,28 +125,6 @@ table ip mullvad_test_nat {{ )) .await?; - log::debug!("Set up pingable hosts"); - - run_ip_cmd(["link", "add", DUMMY_LAN_INTERFACE_NAME, "type", "dummy"]).await?; - run_ip_cmd([ - "addr", - "add", - "dev", - DUMMY_LAN_INTERFACE_NAME, - &DUMMY_LAN_INTERFACE_IP.to_string(), - ]) - .await?; - - run_ip_cmd(["link", "add", DUMMY_INET_INTERFACE_NAME, "type", "dummy"]).await?; - run_ip_cmd([ - "addr", - "add", - "dev", - DUMMY_INET_INTERFACE_NAME, - &DUMMY_INET_INTERFACE_IP.to_string(), - ]) - .await?; - log::debug!("Create WireGuard peer"); create_local_wireguard_peer().await?; diff --git a/test/test-manager/src/vm/network/macos.rs b/test/test-manager/src/vm/network/macos.rs index ef815f203a..78653df41c 100644 --- a/test/test-manager/src/vm/network/macos.rs +++ b/test/test-manager/src/vm/network/macos.rs @@ -4,9 +4,6 @@ use anyhow::{anyhow, Context, Result}; use futures::future::{self, Either}; use tokio::{io::AsyncWriteExt, process::Command}; -/// Pingable dummy LAN interface (IP) -pub const DUMMY_LAN_INTERFACE_IP: Ipv4Addr = Ipv4Addr::new(192, 168, 64, 254); - // Private key of the wireguard remote peer on host. const CUSTOM_TUN_REMOTE_PRIVKEY: &str = "gLvQuyqazziyf+pUCAFUgTnWIwn6fPE5MOReOqPEGHU="; // Public key of the wireguard remote peer on host. @@ -50,41 +47,9 @@ pub async fn setup_test_network() -> Result<()> { .await .context("Failed to create WireGuard interface")?; - // A bit of trickery to detect when the bridge is available. - tokio::spawn(async move { - for _ in 0..30 { - let Ok(interface) = find_vm_bridge() else { - tokio::time::sleep(Duration::from_secs(1)).await; - continue; - }; - match create_dummy_interface(interface).await { - Ok(_) => log::debug!("Created dummy interface"), - Err(error) => log::error!("Failed to create dummy interface: {error}"), - } - return; - } - log::error!("Failed to create dummy interface: timed out"); - }); - Ok(()) } -async fn create_dummy_interface(interface: String) -> Result<()> { - let mut cmd = Command::new("/usr/bin/sudo"); - cmd.args([ - "/sbin/ifconfig", - &interface, - "alias", - &DUMMY_LAN_INTERFACE_IP.to_string(), - ]); - let output = cmd.output().await.context("Create dummy interface")?; - if output.status.success() { - Ok(()) - } else { - Err(anyhow!("ifconfig failed: {:?}", output.status.code())) - } -} - /// A hack to find the Tart bridge interface using `NON_TUN_GATEWAY`. /// It should be possible to retrieve this using the virtualization framework instead, /// but that requires an entitlement. diff --git a/test/test-manager/src/vm/network/mod.rs b/test/test-manager/src/vm/network/mod.rs index 944e241013..de055376b0 100644 --- a/test/test-manager/src/vm/network/mod.rs +++ b/test/test-manager/src/vm/network/mod.rs @@ -12,8 +12,7 @@ pub use macos as platform; pub use platform::{ CUSTOM_TUN_GATEWAY, CUSTOM_TUN_INTERFACE_NAME, CUSTOM_TUN_LOCAL_PRIVKEY, CUSTOM_TUN_LOCAL_TUN_ADDR, CUSTOM_TUN_REMOTE_PUBKEY, CUSTOM_TUN_REMOTE_REAL_ADDR, - CUSTOM_TUN_REMOTE_REAL_PORT, CUSTOM_TUN_REMOTE_TUN_ADDR, DUMMY_LAN_INTERFACE_IP, - NON_TUN_GATEWAY, + CUSTOM_TUN_REMOTE_REAL_PORT, CUSTOM_TUN_REMOTE_TUN_ADDR, NON_TUN_GATEWAY, }; /// Port on NON_TUN_GATEWAY that hosts a SOCKS5 server |
