要在出口设备上实现IPv4/IPv6双栈上网且不经过NAT转换,核心思路是让设备作为一台纯三层路由器,为IPv4和IPv6流量分别配置路由。
第一步:全局与接口配置
首先,需要在设备上全局启用IPv6,并在内网、外网接口分别配置好IPv4和IPv6地址。
# 1. 全局启用IPv6转发功能(部分H3C设备默认关闭,必须手动开启)[reference:0]
system-view
ipv6
# 2. 配置外网接口 (假设为 GE0/0)
interface GigabitEthernet 0/0
ip address <公网IPv4地址> <掩码>
ipv6 address <公网IPv6地址>/<前缀长度>
ipv6 enable
quit
# 3. 配置内网接口 (假设为 GE0/1)
interface GigabitEthernet 0/1
ip address <内网IPv4网关> <掩码>
ipv6 address <内网IPv6网关>/<前缀长度>
ipv6 enable
quit
注意:内网接口的IPv6地址应使用运营商提供的全球单播地址段,而非fc00::/7这类私有地址,这样才能确保内网主机直接通过该地址访问互联网。
第二步:配置路由(核心步骤)
由于不使用NAT,设备需要知道如何将内网流量路由到外网,以及如何将外网回程流量路由回内网。
1. 配置默认路由(指向外网网关)
这是实现上网的关键,IPv4和IPv6都需要配置。
# IPv4 默认路由
ip route-static 0.0.0.0 0 <IPv4外网网关>
# IPv6 默认路由(:: 0 代表默认路由)
ipv6 route-static :: 0 <IPv6外网网关>
配置后,设备会将所有未知目的地的流量都送往运营商网关。
2. 配置回程路由(在内网设备上)
这是非常关键的一步。内网的核心交换机或下层路由器上,必须配置指向出口设备内网接口IP的静态路由,否则外网返回的流量会在内网设备上被丢弃,导致只能发出请求却收不到回应。
# 在内网核心交换机上配置(示例)
# 假设出口设备内网口IPv4为10.0.0.1,IPv6为2001:db8:1::1
ip route-static 0.0.0.0 0 10.0.0.1
ipv6 route-static :: 0 2001:db8:1::1
如果你的内网运行了OSPF、OSPFv3等动态路由协议,也可以通过发布默认路由的方式让内网设备自动学习。
第三步:安全策略与策略路由(按需)
1. 安全策略(防火墙设备必需)
如果你的出口设备是防火墙,必须在安全策略中放行内网到外网(Trust到Untrust)的流量。务必同时配置IPv4和IPv6两条策略,仅配置IPv4策略会导致IPv6流量被默认丢弃。
# 示例:放行IPv4和IPv6流量
security-policy ip
rule name Allow_IPv4_Out
source-zone Trust
destination-zone Untrust
action permit
quit
security-policy ipv6
rule name Allow_IPv6_Out
source-zone Trust
destination-zone Untrust
action permit
quit
2. 策略路由(多出口场景)
如果你有多个出口(例如一条IPv4专线,一条IPv6专线),则需要配置策略路由(PBR) 来引导流量走正确的链路。
# IPv4策略路由示例:指定特定源地址走特定下一跳
acl basic 2000
rule 0 permit source <内网IPv4网段> <反掩码>
quit
policy-based-route pbr_ipv4 permit node 10
if-match acl 2000
apply next-hop <IPv4专线网关>
quit
interface GigabitEthernet 0/1
ip policy-based-route pbr_ipv4
quit
# IPv6策略路由配置逻辑类似,使用 ipv6 policy-based-route 命令[reference:5]
第四步:DNS解析配置
为了让内网用户能够解析域名,需要在出口设备上配置DNS服务器。
dns resolve
dns server <IPv4 DNS服务器地址> # 例如 114.114.114.114 或运营商提供的DNS[reference:6]
dns server <IPv6 DNS服务器地址> # 例如 2400:3200::1(阿里公共DNS)
配置完成后,内网主机通过DHCP获取到该设备的内网接口IP作为DNS服务器,即可正常解析域名。
暂无评论