diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-10-15 14:12:10 +0200 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-10-15 14:12:10 +0200 |
commit | f91e40c1fa272e14d3687e1ddeea26f806e93bdf (patch) | |
tree | f70ba5aa836df28df85c535a18e45d6802f5001a | |
parent | fdb922be79b7fa02dc7cd0a2e0fb97c75393790a (diff) |
config dslite0 on SIGUSR1
-rw-r--r-- | src/main.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs index 9b27725..59e5807 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,6 +9,8 @@ use rsdsl_ip_config::DsConfig; use rsdsl_pd_config::PdConfig; use signal_hook::{consts::SIGUSR1, iterator::Signals}; +const ADDR_AFTR: Ipv4Addr = Ipv4Addr::new(192, 0, 0, 1); +const ADDR_B4: Ipv4Addr = Ipv4Addr::new(192, 0, 0, 2); const LINK_LOCAL: Ipv6Addr = Ipv6Addr::new(0xfe80, 0, 0, 0, 0, 0, 0, 1); fn main() -> Result<()> { @@ -156,6 +158,24 @@ fn configure_wan() -> Result<()> { vlan_name, vlan_addr, zone ); } + + if link::exists("dslite0".to_string())? { + link::up("dslite0".to_string())?; + + addr::flush("dslite0".to_string())?; + addr::add("dslite0".to_string(), ADDR_B4.into(), 29)?; + + if ds_config.v4.is_none() { + route::add4( + Ipv4Addr::UNSPECIFIED, + 0, + Some(ADDR_AFTR), + "dslite0".to_string(), + )?; + } + + println!("[info] config dslite0 {}/29", ADDR_B4); + } } } } |