+ -
当前位置:首页 → 问答吧 → 有关禁用Ipv4协议栈/保留IPV6协议栈的问题

有关禁用Ipv4协议栈/保留IPV6协议栈的问题

时间:2010-12-22

来源:互联网

有关禁用Ipv4协议栈/保留IPV6协议栈的问题
系统版本:fedora 13
内核版本:2.6.33.3-85

禁用Ipv4协议栈/保留IPV6协议栈后要达到的效果:
1.        不能建立IPV4类型的socket
2.        可以建立IPV6类型的socket进行通信

已经尝试的方法:
1. 尝试动态卸载IPV4模块:失败,可能是因为IPV4协议栈不可动态加载。
2. 尝试重新编译内核:在配置编译选项时,发现当取消IPV4协议栈时,IPV6也被取消了, 也就是说IPV6协议栈的编译是依赖IPV4协议栈的。并且也不能按照动态加载方式来编译IPV4协议栈。

/lib/modules/2.6.33.3-85.fc13.i686.PAE/kernel/net/ipv4目录下的模块列表
ah4.ko
esp4.ko
inet_diag.ko
ipcomp.ko
ip_gre.ko
ipip.ko
netfilter(目录)
tcp_bic.ko
tcp_diag.ko
tcp_highspeed.ko
tcp_htcp.ko
tcp_hybla.ko
tcp_illinois.ko
tcp_lp.ko
tcp_scalable.ko
tcp_vegas.ko
tcp_veno.ko
tcp_westwood.ko
tcp_yeah.ko
tunnel4.ko
xfrm4_mode_beet.ko
xfrm4_mode_transport.ko
xfrm4_mode_tunnel.ko
xfrm4_tunnel.ko

问题:
1.        目前linux内核现状有没有可能实现纯IPV6的配置?
2.        如果1是可能的,有什么好方法?
3.        Linux内核IPV6的实现是否依赖于IPV4的实现?(现状是IPV6兼容IPV4)

作者: hitcsguy   发布时间: 2010-12-22

LZ 能否说一下,你想卸载 ipv4 的模块时,是卸载的那个啊?

作者: Godbach   发布时间: 2010-12-22

我了解到一种使用 IPv6 的方式就是 IPv6-over-IPv4.
因为主干网络还是 IPv4,两台公网的 IPv6 设备要通信,一种方式就是上面提到的。这时候,IPv6 实际上是封装在 IPv4 包头之下的。


QUOTE:
# cat /etc/protocols  | grep IPv6
ipv6    41      IPv6            # IPv6



可以看到 proctols 文件中,IPv6 是以编号 41 放在 IPv4 中的。

作者: Godbach   发布时间: 2010-12-22

IPv4 应该是静态编译进内核了,IPv6 可以选择以内核模块方式编译


QUOTE:
Symbol: IPV6 [=m]                                                                                                                                                        
  Type  : tristate                                                                                                                                                         
  Prompt: The IPv6 protocol                                                                                                                                                
     Defined at net/ipv6/Kconfig:6                                                                                                                                          
     Depends on: NET [=y] && INET [=y]                                                                                                                                      
     Location:                                                                                                                                                               
       -> Networking support (NET [=y])                                                                                                                                      
         -> Networking options                                                                                                                                               
           -> TCP/IP networking (INET [=y])

作者: Godbach   发布时间: 2010-12-22

不过我觉得你可以试试,保证 CONFIG_INET 和 CONFIG_NET 这两个选项均配置,其他的关于 ipv4 的都去掉,编译一下。

作者: Godbach   发布时间: 2010-12-22