A general methodology for developing absorbing boundary conditions is presented. For planar surfaces, it is based on a straightforward solution of the system of block difference equations that arise from partial discretization in the directions transversal to the artificial boundary followed by discretization on a constant step 1D grid in the direction normal to the boundary. This leads to an eigenvalue problem of the size of the number of degrees of freedom in the lateral discretization. The eigenvalues are classified as right- or left-going and the absorbing boundary condition consists in imposing a null value for the ingoing modes, leaving free the outgoing ones. Whereas the classification is straightforward for operators with definite sign, like the Laplace operator, a virtual dissipative mechanism has to be added in the mixed case, usually associated with wave propagation phenomena, like the Helmholtz equation. The main advantage of the method is that it can be implemented as a black-box routine, taking as input the coefficients of the linear system, obtained from standard discretization (FEM or FDM) packages and giving on output the absorption matrix. We present the application of the DNL methodology to typical wave problems, like Helmholtz equations and potential flow with free surface (the ship wave resistance and sea-keeping problems).