KL Rahul ended his 9-year drought without a Test century on Indian soil, capping a fine performance in the first innings with a well-deserved ton on the brink of lunch on Day 2.