ospf配置实例
作者:AnonSaber
本文的方案是为标准代理服务器 HTTP(S) 与 Socks 而设计的。
背景
由于 ChromeOS 的生态链一直算不上完整,尽管同时拥有 ChromeOS Android Linux \r\n三个平台的软件资源,但是就实际使用而言,并不能做到很好的互通有无,比如如何在 ChromeOS \r\n上不使用开发者模式实现全局使用代理服务器,就是个比较麻烦的事情。为此要在网络层面下功夫,实现设备级的全局代理。
我们先看一下现状,看一下现在大家所采用的主流的代理服务器技术。因为在计算机行业,弄出来个新东西的根本思路就是把当前的技术东拼西凑,哪怕创造一门新的语言也是如此,所以接下来我们要怎么解决问题也会是如此。所以笔者比较赞成计算机科学是不存在的,只有计算机工程,你当然可以有你的理解,这不是本文要讨论的东西。言归正传,我们讲回正题。
标准的代理服务器常用的有两种,HTTP(S) 与 Socks,基于 Iptables 实现的 Redirect 虽然实现了和代理服务器同样的效果,但是并不能称之为代理服务器,不过我们这里同样将它也视为一种现状。
方案设计
现在,我们提出解决问题的思路:
如果希望一个设备在接入网络后不需要做任何配置就能够实现全局代理(对该设备而言也是透明代理)的话,我们需要实现当设备访问到路由器时能够在路由器内部实现分流。
我们需要在路由器里面设计 Iptables Redirect 到 HTTP(S)/Socks/Redir,或是使用路由表将流量引入到 HTTP(S)/Socks/Redir 代理所在的服务器。
到这里,可能 Iptables Redirect 是最受广大软路由玩家青睐的,这个做法我觉得是可行的,搭配一些脚本实现健康检查也不是非常困难的事情,它应该能工作的很好。
然而我并不喜欢使用 ipset 这样的方式去处理流量,因为我算不上是个软路由玩家,相比起来软路由,我更喜欢商业路由器,不过本文的方案依旧能够在 OPNSense 或是 OpenWRT 上工作。
如果我们放弃了使用 Iptables Redirect 的方案,那么就产生了下面两个问题:
如何将路由表导入到路由器内部,进而将流量路由到特定的网络位置?
如何将三层协议路由过去的流量导入到三层协议以上的 HTTP(S)/Socks/Redir 代理所在的服务器?
对于第一个问题,这个问题的解决办法有很多,我们暂时不做讨论。
再看第二个问题,对于 HTTP(S) 代理服务器,笔者找到了 tun2proxy,对于 Socks 代理服务器,tun2socks \r\n就很好用,而对于 Redir,很抱歉,笔者没有什么建议,因此才有了本文的第一句话「本文的方案是为标准代理服务器 HTTP(S) 与 Socks \r\n而设计的」。顺便一提,由于 Socks 代理比 HTTP(S) 有更好的性能,笔者推荐使用 Socks + tun2socks。而 \r\ntun2socks 与 tun2proxy,简单来说就是能够实现将进入到 tun 虚拟网卡的流量转发到 Socks/HTTP(S) 代理服务器。
接着,我们可以利用一种办法从路由器按照特定的路由表将流量引流到 tun 虚拟网卡上(tun 虚拟网卡的位置可以是在 \r\nHTTP(S)/Socks/Redir 代理所在的服务器,也可以是另外一台机器,笔者推荐将 tun 虚拟网卡启动在 \r\nHTTP(S)/Socks/Redir 代理所在的服务器上面)以实现设备的全局透明代理。
现在回看第一个问题,尽管第一个问题的解决方案有很多,但是如何较为轻松的维护这个路由表实际上还是值得讨论的。笔者这里使用了 idndx.com 提供的解决方案。该作者制作了非大陆 IP 的路由表,能够搭配 OSPF 实现动态的更新路由器内部的路由表。
实现过程
我们假设,你已经有了一个 socks 代理服务器,以及已经有了一个无污染的 DNS,随便他们部署在什么位置,只要他们是可用的。
后续的演示仅针对 IPv4,对于 Ipv6 同样可以照葫芦画瓢实现,对于防火墙放行规则,请自行查阅文档处理。
Tun2socks
开启服务器的路由转发
sudo sysctl -w net.ipv4.ip_forward=1
创建 TUN 虚拟网卡
sudo ip tuntap add mode tun dev tun0
sudo ip addr add 198.18.0.1/15 dev tun0
sudo ip link set dev tun0 up
开启 tun 虚拟网卡到 socks5 的转发
sudo tun2socks -device tun0 -proxy socks5://
我们不需要按照 Tun2socks 的 Wiki 为 tun 虚拟网卡开启任何的路由规则,因为这些路由规则将有 Bird 来做。
Bird
安装并启动 bird,略。
生成使用 tun 网卡的路由表规则 [/etc/bird/routes4.conf]
你可以使用 nchnroutes 来生成这张表,要记得注意修改出接口的名字。
配置 OSPF 将路由表广播给路由器 [/etc/bird/bird.conf]
export all: 将路由插入到内核路由表
router id: OSPF 实例的唯一标识符,一般填写本设备的 IP 地址。
interface: 使用哪张网卡进行 OSPF 路由广播。
authentication: 有多种选项,simple 是指明文传输,其他的请自己查阅文档
password: 顾名思义
Reload Bird 使配置生效
sudo birdc configure
你可以使用 curl --interface tun0 https://example.com 测试你的 tun 虚拟网卡是否工作(访问的地址需要在上面的路由表内)。
配置路由器
在路由器上配置 OSFP 接受来自 Bird 的路由广播,请参考你的路由器使用手册,如果一切正常,你能够在你的路由器里面看到接收到的来自 Bird 的路由表。
宕机测试
关闭 bird 服务或是关闭 tun 网卡与 bird 所在服务器后,路由器中的路由表会消失。
注意事项
有些时候为了能够使 tun 虚拟网卡能够接受其他网卡的数据包,你可能需要关闭下面的内核选项。
sudo sysctl net.ipv4.conf.all.rp_filter=0
sudo sysctl net.ipv4.conf.eth0.rp_filter=0
查看文章精彩评论,请前往什么值得买进行阅读互动
","gnid":"9c76747af9743c532","img_data":[{"flag":2,"img":[{"desc":"","height":"377","title":"","url":"https://p0.ssl.img.360kuai.com/t0198eaa0886c25e101.jpg","width":"547"},{"desc":"","height":"556","title":"","url":"https://p0.ssl.img.360kuai.com/t011815deb01c0c1a8b.jpg","width":"600"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"hbase","pub_time":1685371835000,"pure":"","rawurl":"http://zm.news.so.com/136cc2d3fd7d8b98ace91a1c375da2d3","redirect":0,"rptid":"2d471b4e87a90ef7","rss_ext":[],"s":"t","src":"什么值得买","tag":[{"clk":"ktechnology_1:路由器","k":"路由器","u":""}],"title":"网络方案 篇三:OSPF + tun2socks 自动全局代理
农莫心943如何使用OSPF路由协议配置的身份验证?
连陈迫18369115407 ______ OSPF 配置 Router ospf 进程号 Redistribute 其它路由协议 Network 端口网络 反掩码 area 区域号 Area 区域号 range 网络号 掩码 Area 区域号 default-cost 花销值 Ip ospf ...
农莫心943OSPF的路由如何再分配?
连陈迫18369115407 ______ 现在,我们来详细看看到底什么是路由再分配,让我们来做一个实际的路由再分配的... 2.2.2.1 255.255.255.0 路由器1的路由配置router ospf 1redistribute rip ...
农莫心943OSPF的基本配置步骤有哪些呢?
连陈迫18369115407 ______ l在路由器上启用OSPF router(config)#router ospf process-id l指明将路由器上的哪些IP网络作为OSPF的一部分 router(config-router)#network address wildcard-mask area ...
农莫心943OSPF动态路由配置
连陈迫18369115407 ______ 静态路由 RTA: #ip route-static 192.168.2.0 255.255.255.0 192.168.10.2 RTB: #ip route-static 192.168.1.0 255.255.255.0 192.168.10.1 ospf RTA: #router id 192.168.1.1 #int f0/0 #ip address 192.168.1.1 24 #int s0/0 #ip address 192.198.10.1 24 ...
农莫心943谁有配置OSPF的4种类型的完整命令?
连陈迫18369115407 ______ 4种类型,你是指OSPF网络类型?我把命令给你输出来如有不明白的请继续提问. ip ospf network {broadcast | non-broadcast | {point-to-multipoint [non-broadcast] | point-to-point}}.这些是在OSPF上配置网络类型的命令.但并不是全部,如果需要我可以写给你.
农莫心943怎样在三层交换机上配置OSPF协议~~?? -
连陈迫18369115407 ______ 全局模式下 敲ip routing启用路由功能 其他和路由一样 router ospf 进程号 network需要发布的地址 有3种方法 一.0.0.0.0 255.255.255.255 area 区域号 发布所有该交换机的所有网段 二. 发布一个网段 +反码 如192.168.1.0 0.0.0.255 area区域号 三.192.168.1.1 0.0.0.0 area 区域号
农莫心943cisco路由器配置是什么?
连陈迫18369115407 ______ 路由配置是路由器的一个重要的配置任务之一,路由是指路由器选择到达目的网络最短的路径,路由器在判断目的网络时使用目的网络的IP地址.为了能够正确的路由数据...
农莫心943如何配置应用路由再分配?
连陈迫18369115407 ______ 一、什么时候使用路由再分配? 路由再分配通常在那些负责从一个自治系统学习路由,然后向另一个自治系统广播的路由器上进行配置.如果你在使用I G R P或E I G R P...
农莫心943关于ospf配置问题
连陈迫18369115407 ______ router ospf 100 后面的这个数字是进程ID可以不一样的,eigrp的那个是必须要一样,OSPF的可以不同,不影响
农莫心943OSPF实验要有哪些求?
连陈迫18369115407 ______ 1、各接口的IP及所在区域如下:2、在路由器R1-R4上配置OSPF,在R4的E0/1的辅助IP和R5上配置RIP-V23、配置区域1为完全末梢区域,配置区域2为非完全末梢区域(NSSA)4、在各台路由器上使用show ip route和ping命令进行结果验证.