  In this paper, we study a survivable network design problem on directed
graphs, 2-Connected Directed Steiner Tree (2-DST): given an $n$-vertex weighted
directed graph, a root $r$, and a set of $h$ terminals $S$, find a min-cost
subgraph $H$ that has two edge/vertex disjoint paths from $r$ to any $t\in S$.
2-DST is a natural generalization of the classical Directed Steiner Tree
problem (DST), where we have an additional requirement that the network must
tolerate one failure. No non-trivial approximation is known for 2-DST. This was
left as an open problem by Feldman et al., [SODA'09; JCSS] and has then been
studied by Cheriyan et al. [SODA'12; TALG] and Laekhanukit SODA'14]. However,
no positive result was known except for the special case of a $D$-shallow
instance [Laekhanukit, ICALP'16].
  We present an $O(D^3\log D\cdot h^{2/D}\cdot \log n)$ approximation algorithm
for 2-DST that runs in time $O(n^{O(D)})$, for any $D\in[\log_2h]$. This
implies a polynomial-time $O(h^\epsilon \log n)$ approximation for any constant
$\epsilon>0$, and a poly-logarithmic approximation running in quasi-polynomial
time. We remark that this is essentially the best-known even for the classical
DST, and the latter problem is $O(\log^{2-\epsilon}n)$-hard to approximate
[Halperin and Krauthgamer, STOC'03]. As a by product, we obtain an algorithm
with the same approximation guarantee for the $2$-Connected Directed Steiner
Subgraph problem, where the goal is to find a min-cost subgraph such that every
pair of terminals are $2$-edge/vertex connected.
