This paper shows that deterministic consensus in synchronous distributed systems with link faults is possible, despite the impossibility result of (Gray, 1978). Instead of using randomization, we overcome this impossibility result by moderately restricting the inconsistency that link faults may cause system-wide. Relying upon a novel perception-based hybrid fault model that provides different classes of faults for both nodes and links, we prove that the m+1-round Byzantine agreement algorithms OMH (Lincoln & Rushby, 1993) and its authenticated variants OMHA, ZA (Gong, Lincoln & Rushby, 1995) require n > 2\ls + \lr + \lra + 2(\a+\s) + \o + \c + m n > 2\ls + \lr + 2(\a+\s) + \o + \c + m n > \ls + \lr + \a + \s +\o + \c + 1 nodes for transparently masking at most \ls broadcast and \lr receive link faults (including at most \lra arbitrary ones) per node(!)\ in each round, in addition to at most \a, \s, \o, \c arbitrary, symmetric, omission, and manifest node faults, provided that m <= \a+\o+1. If signatures are broken, OMHA degrades to OMH, whereas ZA can be made tolerant to \fb broken signatures by increasing \a accordingly. An analysis of the assumption coverage in systems where links fail independently with probability p reveals that adding nodes for tolerating link faults yields a vanishing probability of violating the fault model as long as np < 1. A number of theoretical results, including tight lower bounds for the number of nodes in presence of link faults and a precise characterization of what makes a node fault Byzantine, establish a sound theoretical foundation for our framework as well. Keywords: Fault-tolerant distributed systems, fault models, link faults, consensus, Byzantine agreement, authentication, impossibility results, lower bounds.