独孤九贱
讨论,2.6kernel多IP地址时的目的地址转换
网络情况:
偶有100个公网IP,只有一个用于本机通讯,其它99个需要做目的地址转换。
2.6上面,好像只有把100个地址全部配置到网络接口上,目的地址转换才能正常工作,否则,本机无法进行其它99个IP地址的ARP应答,大家有没有什么好的方法??(配100个IP地址太累且没有必要)
查了一个资料:
说是老内核当设置了地址转换,启用代理ARP时,内核设置RTCF_DNAT 标志,就可自动进行代理的ARP应答了,不用全配IP地址,也看了一下代码:
[code] if (addr_type == RTN_LOCAL) {
... ... ...
} else if (IN_DEV_FORWARD(in_dev)) {
if ((rt->rt_flags&RTCF_DNAT) ||
(addr_type == RTN_UNICAST && rt->u.dst.dev != dev &&
(arp_fwd_proxy(in_dev, rt) ||
pneigh_lookup(&arp_tbl, &tip, dev, 0)))) {
[/code]
的确是这样。但是,好像在2.6上,RTCF_DNAT标志没有再被使用了……
[code]RTCF_SNAT
RTCF_DNAT
RTCF_NAT
这些标志不再被IPv4使用。它们以前被FastNAT特性使用,该特性
在2.6内核中已经被删除(参见第32章“最近废弃的选项”小节)。[/code]
大家有没有好的方法来解决这个问题呢?讨论一下。
[[i] 本帖最后由 独孤九贱 于 2008-4-30 10:38 编辑 [/i]]
wysilly
arpd( iprouter2 自带的arpd 不会自动reply arp 请求,arpd 会自动回应),
[url]http://www.citi.umich.edu/u/provos/honeyd/[/url]
什么时候用arpd?
当对端(接入方),没有明确在route table中指定分配给你的ip段的所使用的路由ip时,即你与对端在同一广播段时使用,否则不用.
[[i] 本帖最后由 wysilly 于 2008-4-30 12:13 编辑 [/i]]
独孤九贱
[quote]原帖由 [i]wysilly[/i] 于 2008-4-30 12:08 发表 [url=http://linux.chinaunix.net/bbs/redirect.php?goto=findpost&pid=6573820&ptid=997920][img]http://linux.chinaunix.net/bbs/images/common/back.gif[/img][/url]
arpd( iprouter2 自带的arpd 不会自动reply arp 请求,arpd 会自动回应),
[url]http://www.citi.umich.edu/u/provos/honeyd/[/url]
什么时候用arpd?
当对端(接入方),没有明确在route table中指定分配给你的ip段的所 ... [/quote]
能否说详细点?
wysilly
举例说时使用方法: 比如你有10.0.0.0/25的网段,你的接入方使用(10.0.0.1/25),你使用(eth1-10.0.0.2/25做为nat的对外接口),对内部192.168.0.0/24的网络nat
arp -i eht1 10.0.0.0/25
这时假如192.168.0.1在数据传输,数据流为.
192.168.0.1->nat(转为 10.0.0.3)->10.0.0.1->internet
回包为
internet ->10.0.0.1(此设备与10.0.0.3在同一网段,这时它就会询问arp信息)->nat(arpd回答10.0.0.3在这,mac地址与10.0.0.2相同)->192.168.0.1
同时如果在10.0.0.0/25段中有不用nat的对外机器,这时arpd通过侦听网络中的arp广播信息来,自动更新它所维护的arp表.
platinum
[quote]原帖由 [i]独孤九贱[/i] 于 2008-4-30 14:17 发表 [url=http://linux.chinaunix.net/bbs/redirect.php?goto=findpost&pid=6573935&ptid=997920][img]http://linux.chinaunix.net/bbs/images/common/back.gif[/img][/url]
是的,我看了其代码实现,也就是我3楼中说的第二种方式,不过这个软件真的不容易编译呀,configure文件做得有点奇怪,源码中也使用了低版本gcc的宏,呵呵,不过不论如何,我已经安装好它了,它也能正常工作了。 ... [/quote]
也就是说,arpd 解决了你的问题吗?