Thanks to @buraktamturk here
Here is solution for tethering (both usb and wireless).
Tether just as usual. Then disable tethering and re-enable it. (this step is important otherwise dhcp server is not started)
After doing that both your phone and computer will not connect internet, because of invalid routing table. (internal bug from l preview)
just connect to the phone shell with 'adb shell', or terminal software on android (connectbot or android terminal emulator will fine)
shell@hammerhead:/ $ su
root@hammerhead:/ # ip route | grep rmnet0 | grep link
10.64.70.120/29 dev rmnet0 proto kernel scope link src 10.64.70.124
Note the gateway here (10.64.70.124), and set this default gateway. (and yes, my provider gives me nat'ed private ip addresses)
root@hammerhead:/ # route add default gw 10.64.70.124 dev rmnet0
Enjoy the tethering!