diff --git a/script/CMakeLists.txt b/script/CMakeLists.txt index 47b4745..04273ea 100644 --- a/script/CMakeLists.txt +++ b/script/CMakeLists.txt @@ -1,3 +1,5 @@ install(PROGRAMS user/r2_tfe DESTINATION ./ COMPONENT Program) install(PROGRAMS user/r3_tfe DESTINATION ./ COMPONENT Program) -install(FILES system/80-tfe.conf DESTINATION /etc/sysctl.d/ COMPONENT Program) +install(FILES sysctl/80-tfe.conf DESTINATION /etc/sysctl.d/ COMPONENT Program) +install(FILES service/tfe-env.service DESTINATION /usr/lib/systemd/system/ COMPONENT Program) +install(FILES service/tfe-env-config DESTINATION /etc/sysconfig/ COMPONENT Profile) diff --git a/script/service/tfe-env-config b/script/service/tfe-env-config new file mode 100644 index 0000000..70e13dd --- /dev/null +++ b/script/service/tfe-env-config @@ -0,0 +1,6 @@ + +TFE_DEVICE_DATA_INCOMING=ens1f1 +TFE_LOCAL_MAC_DATA_INCOMING=fe:65:b7:00:00:01 +TFE_PEER_MAC_DATA_INCOMING=aa:bb:cc:dd:ee:ff +TFE_LOCAL_IP_DATA_INCOMING=172.16.241.2 +TFE_PEER_IP_DATA_INCOMING=172.16.241.1 diff --git a/script/service/tfe-env.service b/script/service/tfe-env.service new file mode 100644 index 0000000..6dc3f9c --- /dev/null +++ b/script/service/tfe-env.service @@ -0,0 +1,46 @@ +[Unit] +Description=Tango Frontend Engine - Running Environment Setup + +[Service] +EnvironmentFile=/etc/sysconfig/tfe-env-config +Type=oneshot +RemainAfterExit=yes + +# all works are done in execstartpre, this is only a fake target +ExecStart=/bin/true +ExecStop=/bin/true + +# dataincoming interface +ExecStartPost=/usr/sbin/ip link set ${TFE_DEVICE_DATA_INCOMING} address ${TFE_LOCAL_MAC_DATA_INCOMING} +ExecStartPost=/usr/sbin/ip link set ${TFE_DEVICE_DATA_INCOMING} up +ExecStartPost=/usr/sbin/ip addr flush dev ${TFE_DEVICE_DATA_INCOMING} +ExecStartPost=/usr/sbin/ip addr add ${TFE_LOCAL_IP_DATA_INCOMING}/30 dev ${TFE_DEVICE_DATA_INCOMING} +ExecStartPost=/usr/sbin/ip neigh flush dev ${TFE_DEVICE_DATA_INCOMING} +ExecStartPost=/usr/sbin/ip neigh add ${TFE_PEER_IP_DATA_INCOMING} lladdr ${TFE_PEER_MAC_DATA_INCOMING} dev ${TFE_DEVICE_DATA_INCOMING} nud permanent + +# policy route +ExecStartPost=/usr/sbin/ip rule add iif ${TFE_DEVICE_DATA_INCOMING} tab 100 +ExecStartPost=/usr/sbin/ip route add local default dev lo table 100 +ExecStartPost=/usr/sbin/ip rule add fwmark 0x65 lookup 101 +ExecStartPost=/usr/sbin/ip route add default dev ${TFE_DEVICE_DATA_INCOMING} via ${TFE_PEER_IP_DATA_INCOMING} table 101 + +# policy route v6 +ExecStartPost=/usr/sbin/ip addr add fd00::02/64 dev ${TFE_DEVICE_DATA_INCOMING} +ExecStartPost=/usr/sbin/ip -6 route add default via fd00::01 +ExecStartPost=/usr/sbin/ip -6 rule add iif ${TFE_DEVICE_DATA_INCOMING} tab 102 +ExecStartPost=/usr/sbin/ip -6 route add local default dev lo table 102 +ExecStartPost=/usr/sbin/ip -6 neigh add fd00::01 lladdr ${TFE_PEER_MAC_DATA_INCOMING} dev ${TFE_DEVICE_DATA_INCOMING} nud permanent + +# stop +ExecStopPost=/usr/sbin/ip rule del iif ${TFE_DEVICE_DATA_INCOMING} tab 100 +ExecStopPost=/usr/sbin/ip route del local default dev lo table 100 +ExecStopPost=/usr/sbin/ip rule del fwmark 0x65 lookup 101 +ExecStopPost=/usr/sbin/ip route del default dev ${TFE_DEVICE_DATA_INCOMING} via ${TFE_PEER_IP_DATA_INCOMING} table 101 +ExecStopPost=/usr/sbin/ip -6 rule del iif ${TFE_DEVICE_DATA_INCOMING} tab 102 +ExecStopPost=/usr/sbin/ip -6 route del default via fd00::01 +ExecStopPost=/usr/sbin/ip -6 route del local default dev lo table 102 +ExecStopPost=/usr/sbin/ip addr del fd00::02/64 dev ${TFE_DEVICE_DATA_INCOMING} +ExecStopPost=/usr/sbin/ip link set ${TFE_DEVICE_DATA_INCOMING} down + +[Install] +WantedBy=multi-user.target diff --git a/script/system/80-tfe.conf b/script/sysctl/80-tfe.conf similarity index 100% rename from script/system/80-tfe.conf rename to script/sysctl/80-tfe.conf