1 linux路由udp包,选择不同的路由
1.1 背景
linux启用tun接口后, 例如启动 tun2sock, 系统会把所有的包,默认转发到 tun设备上. 但有些tun设备,只能处理tcp连接,无法处理udp,这种情况下,需要把 udp包路由到系统原来的网络接口上.
1.2 配置命令
在rt_tables中,增加一个 udp_table表项目
#sudo echo "200 udp_table" >> /etc/iproute2/rt_tables
把udp协议都是用udp_table路由
#sudo ip rule add ipproto UDP table udp_table
假设 192.168.5.1 和 ens33 是原来的以太网设备接口 ip ,把缺省路由添加到udp_table
#sudo ip route add default via 192.168.5.1 dev ens33 table udp_table
执行下面的命令,检查结果
#p route show table udp_table
default via 192.168.5.1 dev ens33
#ip rule show table udp_table
9498: from all ipproto udp lookup udp_table
测试一下
#ip route get 223.5.5.5
223.5.5.5 via 192.168.5.1 dev ens33 table udp_table src 192.168.5.239 uid 1000
cache
2 google voice and wifi call支持
在路由器上增加路由, 注意这里的 route_ip,需要能够真正到达 目的IP.
#for ultra mobile wifi call
route add -net 208.54.4.0/24 gw router_ip
route add -net 208.54.39.0/24 gw router_ip
#for google voice call
route add -net 74.125.0.0/16 gw router_ip