Since bsnl mitm's http traffic and inserts ad scripts into served http responses, this is hard to completely block without vpns. To block their site hijacks (the 4 month rent waive ad etc), it's sort of enough to block all pkts from the relevant bsnl ad server. So adding something like below to openwrt firewall rules works for me.
Code:
iptables -A forwarding_rule -s 117.254.84.212 -j DROP
iptables -A forwarding_rule -d 117.254.84.212 -j REJECT
(got that server ip by wireshark; has stayed the same throughout for me, so I guess it's for everybody, but might be different for others on different lco networks). Note that putting that IP in hosts will not work - that server replies to any valid http request and since it's closer, its responses reach us before the original server's.
They also add scripts to every http page, which can be blocked by ad blockers.