No, rhyming doesn't have to be different consonant sounds -- the same words will obviously rhyme with each other. It's generally called a "repeated rhyme" or "identical rhyme" and is most often found in comedic poems, for ironic effect, or in country-western songs because the writers are being lazy 
Generally speaking, it's frowned on by most poets as lacking imagination, but it's not against any rules and it's not the most egregious sin a writer can commit. And similarly, there's no reason why homonyms shouldn't have a place in rhyming poetry -- there should be no exclusions just because the other meaning of the word has already taken up one rhyme space. While "know" with that particular spelling obviously has only the one meaning, what about "bank" or "bow"? And then there is the case of deliberate repetition -- if we assume that "know" doesn't rhyme with "know", then it would follow that "and miles to go before I sleep" doesn't rhyme with "and miles to go before I sleep".

Generally speaking, it's frowned on by most poets as lacking imagination, but it's not against any rules and it's not the most egregious sin a writer can commit. And similarly, there's no reason why homonyms shouldn't have a place in rhyming poetry -- there should be no exclusions just because the other meaning of the word has already taken up one rhyme space. While "know" with that particular spelling obviously has only the one meaning, what about "bank" or "bow"? And then there is the case of deliberate repetition -- if we assume that "know" doesn't rhyme with "know", then it would follow that "and miles to go before I sleep" doesn't rhyme with "and miles to go before I sleep".
It could be worse
