- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
iproute高级路由相关知识
文档编号:00-6201-100
当前版本:1.0.0.0
创建日期:2011-8-17
编写作者:ganjingwei
基本命令
显示链路:
ip link list
显示地址:
ip address show
显示路由:
ip route show
route –n
显示ARP映射表:
ip neigh show
删除ARP缓存:
ip neigh delete [IP] dev [dev]
显示路由表规则优先顺序:
ip rule list
显示指定的路由表:
ip route list table [table name]
增加新的路由表
ip rule add from [IP] table [table name]
为路由表增加表项
ip route add [IP/defaulte] via [src IP] dev [dev] table [table name]
刷新路由缓存
ip route flush cache
负载均衡
ip route add [IP/default] scope [scope/global] nexthop via [gateway] dev [dev] weight [weight] nexthop ……
具体应用
对某个LAN 口发出来到WAN 侧的数据包,查找路由使用已创建的路由表
1 标记数据包
ebtables -t broute -A BROUTING -i eth0 -j mark --set-mark 0x1
2 创建路由表ID
(由于broadcom这个平台比较特殊,路由表ID的文件不同于我的虚拟机,也不同于网上其他资料所叙述的情况。它在/etc/iproute2/目录下只有一个指向/var/iproute2/rt_tables的软链接文件,而/var/iproute2/rt_tables要我们自己创建,事先不存在。我猜想是要经过某些配置,比如网页配置了高级路由功能以后,这个文件才会被创建,这个等待后续学习来证实。现在我们只有手动创建。)
mkdir /var/iproute2/
echo 201 gjw /etc/iproute2/rt_tables
3 创建路由表
ip rule add fwmark 0x1 table gjw
4 确定已创建路由表
ip rule ls/list
5 添加表项
ip route add default dev ppp0.1 table gjw
总结
关于ebtables
经过最近的使用和学习,我对ebtables有了一定程度的了解。
首先,ebtables工作在网络协议层次结构中的二层——数据链路层。经过函数跟踪,我发现,ebtables原理和iptables的原理相同。iptables利用三层处理流程中的诸多HOOK点过滤、更改、操作数据包。而ebtables是利用二层处理中的HOOK点。原理相同,但是作用的位置不同。这也解释了之前看代码的时候,在看桥接代码中发现一些和三层Netfilter一样的一些宏。
其次,我跟踪了以上的
ebtables -t broute -A BROUTING -i eth0 -j mark --set-mark 0x1
这一条命令的结果,发现,数据包在经过BR_PRE_ROUTING以后,mark位发生了变化(如图3-1)。说明broute这个table中BROUTING点操作的位置在这里。这也解释了为什么ebtables可以在桥组以下识别接口,并配合高级路由。
图3-1 mark值发生了变化
关于高级路由
高级路由ip命令主要功能是对路由表、路由表项进行添加、删除、修改、查看。首先,使用ip rule add命令添加一个路由表的时候,需要在/etc/iproute2/rt_tables文件里面添加我们自己的路由表的ID。这个ID就是内核中fib_table_hash[]数组的下标,255是LOCAL表,254是MAIN表。
添加了路由表以后,还要配置,哪些条件的数据包,要查询这个路由表,这样才完成建立了一个路由表。
然后再试向路由表中添加表项。
内核中,创建了新路由表以后,net-ipv4.rules_ops中会添加新项目,从而在fib_rules_lookup函数中会找到这个表。
文档评论(0)