I apologize for being so late.
The rank of the matrix is 5.
In[35]:= MatrixRank[{{1, 0, 0, -1, 0, 0}, {0, 1, 0, 0, -1, 0}, {0, 0,
1, 0, 0, -1}, {a1, a2, a3, 0, 0, 0}, {b1, b2, b3, 0, 0, 0}}]
Out[35]= 5
Excellent! This gives an explanation that the dimension of the set of solutions of eq2 is equal to 1 (6-5 : the number of variables minus the rank of the matrix).
So we can apply now eliminate:
In[36]:= Eliminate[eq2, {z1, z2, z3, u3}]
Out[36]= a3 b1 u1 + a3 b2 u2 - a2 b3 u2 == a1 b3 u1
More the more, we can apply Solve[]:
In[37]:= Solve[eq2, {u1, u2, u3, z1, z2, z3}]
During evaluation of In[36]:= Solve::svars: Equations may not give solutions for all "solve" variables.
Out[37]= {{u2 -> -(((a3 b1 - a1 b3) u1)/(a3 b2 - a2 b3)),
u3 -> -1 - ((-a2 b1 + a1 b2) u1)/(a3 b2 - a2 b3), z1 -> u1,
z2 -> -(((a3 b1 - a1 b3) u1)/(a3 b2 - a2 b3)),
z3 -> -(((-a2 b1 + a1 b2) u1)/(a3 b2 - a2 b3))}}
Both from Eliminate[] and Solve[] we obtain the same result relative to the dimension of the set of the solutions. It's equal to 1.
Additionally, we can apply Solve[] to the initial system:
In[38]:= Solve[{a1 u1 + a2 u2 + a3 (1 + u3) == 0,
b1 u1 + b2 u2 + b3 (1 + u3) == 0}, {u1, u2, u3}]
During evaluation of In[38]:= Solve::svars: Equations may not give solutions for all "solve" variables.
Out[38]= {{u2 -> -(((a3 b1 - a1 b3) u1)/(a3 b2 - a2 b3)),
u3 -> -1 - ((-a2 b1 + a1 b2) u1)/(a3 b2 - a2 b3)}}
Evidently, this system and eq2 has the same solution set. So, we must admit that the transformations are equivalent!