圣者
精华
|
战斗力 鹅
|
回帖 0
注册时间 2014-5-3
|
网关说的是你在跨网段传输流量的时候,默认这些流量都从网关节点转发,而不同于同一网段内的节点访问都是直连的
所以,你要使用网关帮你转发需要有这几个前提:
1、你能通过ARP协议找到网关IP对应的MAC地址,这是你发包的前提
2、网关能通过ARP协议找到你本端IP对应的MAC地址,这是你收包的前提
你能访问192.168.1.233,是因为有宿舍里的192.168.0.1(估且把它当作你宿舍的网关)帮你转发
如果你只是需要流量通过192.168.1.233的某张路由表转发出去,你需要做的应该是
I、首先是宿舍网关,设置针对你宿舍的某些IP地址设置下一跳为192.168.1.233
如果写在主路由表,大概就是ip route add 0/0 from <your_dorm_ip_or_subnet> via 192.168.1.233 table main
如果不写主路由表,大概就是ip route add 0/0 via 192.168.1.233 table <table_id, e.g. 100>,然后ip rule add <iif xxx> from <your_dorm_ip_or_subnet> lookup <table_id>,
更复杂点的你可以利用ipset和iptables来简化(复杂化)这件事情
II、然后是宿舍网关,针对你宿舍某些IP地址设置定制化路由
假设你这里已经有一张作特殊目标的路由表了,比方说从某个pppoe出口出去,假设有ip route add 0/0 dev pppoe0 table <table_id2>,那你只要写一条ip rule add <iif yyy> from <your_dorm_ip_or_subnet> lookup <table_id2>就行了
ip rule add <iif yyy> from <your_dorm_ip_or_subnet> lookup <table_id2>这条规则我我猜测在routeros上对应的配置大概应该是这样的
你先设置一个firewall group->address group(或subnet group),把<your_dorm_ip_or_subnet>存起来(ipset的能力)
然后再设置一个规则系列,我参照的ubnt系列路由器,它是在modify下面,然后添加一条在匹配source的前提下查找对应<table_id2>的规则
最后是在interface找到入接口yyy,然后使其应用上面一行新建的规则
复杂一点的你可以利用bgp和mpls来做这个,毕竟路由表是没有状态的,你需要针对同一对象进行反复匹配,而bgp和mpls可以少去这一匹配过程直接把路由导向的信息传递给前置节点(也就是你的宿舍的路由),达到减少前置节点和最终节点之间一部分重复的配置,但这样做起来就比较麻烦了,而且导入mpls还会不得不考虑mtu损失的问题
|
|