既存のipv4 natに機能しているipv6 natを追加する

既存のipv4 natに機能しているipv6 natを追加する

私は既存のタスクipv4 natにipv6を追加したいと思います。これは proxmox ホストで、クライアントは仮想マシンです。

natデバイス(proxmoxホスト)にそのファイルを追加して機能しようとしました。 /etc/network/interfaces ファイルは次のようになります。

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback
iface lo inet6 loopback

auto eno1
iface eno1 inet static
  address 124.202.254.99
  netmask 255.255.255.192
  gateway 126.202.254.129
  up route add -net 116.202.254.128 netmask 255.255.255.192 gw 116.202.254.129 dev eno1

iface eno1 inet6 static
  address 2a01:4f8:543:4122::12
  netmask 64
  gateway fe80::1

auto vmbr0
iface vmbr0 inet static
        address  192.168.20.1
        netmask  255.255.255.0
        bridge_ports none
        bridge_stp off
        bridge_fd 0
        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up iptables -t nat -A POSTROUTING -s '192.168.20.0/24' -o eno1 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '192.168.20.0/24' -o eno1 -j MASQUERADE
        post-up   iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1
        post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1
        # Port 80 (http)
        post-up   iptables -t nat -A PREROUTING -i eno1 -p tcp --dport 80 -j DNAT --to-destination 192.168.20.200
        post-down iptables -t nat -D PREROUTING -i eno1 -p tcp --dport 80 -j DNAT --to-destination 192.168.20.200

        # Port 443 (https)
        post-up   iptables -t nat -A PREROUTING -i eno1 -p tcp --dport 443 -j DNAT --to-destination 192.168.20.200
        post-down iptables -t nat -D PREROUTING -i eno1 -p tcp --dport 443 -j DNAT --to-destination 192.168.20.200


iface vmbr0 inet6 static
        address fcc9::1
        netmask 64
        bridge_ports none
        bridge_stp off
        bridge_fd 0
     # Port 80 (http)  - hex c8 is 200 decimal!
        post-up   ip6tables -t nat -A PREROUTING -i eno1 -p tcp --dport 80 -j DNAT --to-destination fcc9::c8
        post-down ip6tables -t nat -D PREROUTING -i eno1 -p tcp --dport 80 -j DNAT --to-destination fcc9::c8

        # Port 443 (https) - hex c8 is 200 decimal!
        post-up   ip6tables -t nat -A PREROUTING -i eno1 -p tcp --dport 443 -j DNAT --to-destination fcc9::c8
        post-down ip6tables -t nat -D PREROUTING -i eno1 -p tcp --dport 443 -j DNAT --to-destination fcc9::c8

クライアントの /etc/network/interfaces は次のようになります。

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug ens18
iface ens18 inet static
    address 192.168.20.200/24
    gateway 192.168.20.1
    # dns-* options are implemented by the resolvconf package, if installed
    # put nameservers in /etc/resolv.conf

iface ens18 inet6 static
    address fcc9::c8
    netmask 64
    gateway fcc9::1

proxmoxホストで私は走ったsysctl -w net.ipv6.conf.all.forwarding=1

proxmoxホストからipv6を持つインターネット上のすべてのホストにping6を送信できます。クライアントでもpingでき、クライアントfcc9::1でもpingできますが、クライアントではpingでき2a01:4f8:543:4122::12ません。google.com住所が正しく確認されます。

ベストアンサー1

おすすめ記事