Difference between revisions of "OpenWRT: IPv6"

From OnnoWiki
Jump to navigation Jump to search
 
(36 intermediate revisions by the same user not shown)
Line 53: Line 53:
  
 
  /etc/config/network
 
  /etc/config/network
 
+
 
  config interface wan
 
  config interface wan
 
         option ipv6 1 # hanya dibutuhkan untuk protocol yang berbasis PPP
 
         option ipv6 1 # hanya dibutuhkan untuk protocol yang berbasis PPP
Line 74: Line 74:
  
 
  vi /etc/config/network
 
  vi /etc/config/network
 
+
 
  config interface wan
 
  config interface wan
 
         option ifname  eth1
 
         option ifname  eth1
Line 120: Line 120:
 
===6rd tunnel (Dukungan untuk Transisi ISP IPv6)===
 
===6rd tunnel (Dukungan untuk Transisi ISP IPv6)===
  
6rd is a tunnelmechanism based on 6to4. Unlike other tunneling mechanisms 6rd is usually provided by the ISP itself. The values for the tunnel are usually obtained with the DHCPv4 request for the WAN interface.
+
6rd adalah sebuah mekanisme tunnel berbasis pada 6to4. Tidak seperti mekanisme tunneling lain, 6rd biasanya di berikan oleh ISP itu sendiri. Nilai dari tunnel biasanya di peroleh dengan DHCPv4 request untuk WAN interface.
  
:!: In Chaos Calmer and later the configuration is usually auto-detected and manual configuration is not needed, simply installing the 6rd package (and rebooting) is usually enough.
+
Sejak OpenWRT Chaos Calmer dan selanjutnya, konfigurasi ini biasanya auto-detecte sehingga konfigurasi manual biasanya tidak dibutuhkan. Cukup instalasi package 6rd dan rebooting biasanya sudah cukup.
 
 
/etc/config/network:
 
  
 +
/etc/config/network:
 +
 
  config interface 'wan'
 
  config interface 'wan'
 
         option ifname 'eth0.2'
 
         option ifname 'eth0.2'
Line 134: Line 134:
 
         option zone6rd wan
 
         option zone6rd wan
  
To debug 6rd via DHCP, first check if the parameters are sent. Create a /etc/udhcpc.user with the following content:
+
Untuk 6rd via DHCP, pertama kali kita perlu men-cek jika parameter memang dikirim. Buat /etc/udhcpc.user dengan content berikut:
  
 
  #!/bin/sh
 
  #!/bin/sh
 
  env >> /tmp/udhcpc.log
 
  env >> /tmp/udhcpc.log
  
Reboot the router and check the log file for the following line:
+
Reboot router dan cek log file, apakah ada kalimat kira-kira seperti berikut:
  
 
  ip6rd=16 40 2001:0838:ad00:0000:0000:0000:0000:0000 77.174.0.2
 
  ip6rd=16 40 2001:0838:ad00:0000:0000:0000:0000:0000 77.174.0.2
  
If this line isn't present, you need to obtain the correct values for peeraddr, ip6prefix, ip6prefixlen and ip4prefixlen from your ISP. The above ip6rd or the obtained values can be used to hardcode the 6RD tunnel. Remove or comment out the iface6rd line in the wan section.
+
Jika kalimat tersebut tidak ada, kita perlu memperoleh nilai yang benar untuk peeraddr, ip6prefix, ip6prefixlen dan ip4prefixlen dari ISP kita. Nilai ip6rd di atas atau nilai yang kita peroleh dari ISP, dapat di tulis (hardcode) ke 6RD tunnel. Buang atau di-comment kalimat iface6rd dari wan section.
  
/etc/config/network:
+
/etc/config/network
  
 
  config interface 'wan6'
 
  config interface 'wan6'
Line 154: Line 154:
 
         option ip4prefixlen '16'
 
         option ip4prefixlen '16'
  
:!: In Chaos Calmer the default /etc/config/network works after installing the 6rd package. The mentioned dhcpv6 is ignored if it doesn't succeed. The above configuration for Barrier Breaker works also in later variants and may be less confusing.
+
Di Chaos Calmer dan Barrier Breaker default /etc/config/network akan bekerja setelah kita menginstalasi package 6rd. dhcpv6 akan di abaikan jika tidak berhasil.
  
:!: If you choose a name for your tunnel-interface that is different from 'wan6' make sure to add that name to the network-option of the firewall-zone 'wan' in /etc/config/firewall.
+
Jika kita memilih nama tunnel-interface bukan 'wan6' maka pastikan bahwa nama interface tersebut masuk ke network-option di firewall-zone 'wan' di /etc/config/firewall.
  
:!: The package 6rd must be installed to use 6rd-tunnels. See protocol_6rd_ipv6_rapid_deployment for advanved configuration options.
+
Package 6rd harus di instalasi untuk menggunakan 6rd-tunnel.
  
===6pe, L2TP tunnel, softwire (ISP-provided IPv6 transition)===
 
  
This is another transitional mechanism for IPv6, used by some ISPs. It relies on a L2TPv2 tunnel.
 
 
Detailed configuration: ipv6.softwire
 
  
 
===6to4 tunnel===
 
===6to4 tunnel===
  
6to4 is the simplest IPv6 tunneling mechanism and relies on publicly available gateways.
+
6to4 adalah mekanisme IPv6 tunneling yang paling sederhana, yang menggantungkan diri pada gateway yang tersedia secara publik.
 
 
/etc/config/network:
 
  
 +
/etc/config/network:
 +
 
  config 'interface' 'wan6'
 
  config 'interface' 'wan6'
 
         option 'proto' '6to4'
 
         option 'proto' '6to4'
Line 180: Line 176:
 
  ...
 
  ...
  
:!: If you choose a name for your tunnel-interface that is different from 'wan6' make sure to add that name to the network-option of the firewall-zone 'wan' in /etc/config/firewall.
+
Jika kita memilih nama tunnel-interface bukan 'wan6' pastikan bahwa nama interface tersebut masuk ke network-option di firewall-zone 'wan' di /etc/config/firewall.
  
:!: The package 6to4 must be installed to use 6to4-tunnels. See protocol.6to4.ipv6-in-ipv4.tunnel for advanved configuration options.
+
Package 6to4 harus di instalasi untuk menggunakan 6to4-tunnel.
  
 
===Dual-Stack Lite tunnel (ds-lite IPv4 in IPv6)===
 
===Dual-Stack Lite tunnel (ds-lite IPv4 in IPv6)===
  
ds-lite is a transitioning-mechanism which is used by ISPs to support legacy IPv4-connectivity over a native IPv6 connection.
+
ds-lite adalah sebuah mekanisme transisi yang digunakan oleh ISP untuk mendukung IPv4-connectivity di atas sambungan native IPv6.
  
:!: In Chaos Calmer and later the configuration is usually auto-detected and manual configuration is not needed, simply installing the ds-lite package (and rebooting) is usually enough.
+
Di Chaos Calmer dan versi selanjutnya, konfigurasi ds-lite biasanya auto-detect sehingga konfigurasi manual tidak diperlukan. Cukup dengan menginstalasi package ds-lite dan reboot biasanya sudah cukup.
 
 
/etc/config/network:
 
  
 +
/etc/config/network:
 +
 
  config 'interface' 'wan6'
 
  config 'interface' 'wan6'
 
         option 'ifname' 'eth1'
 
         option 'ifname' 'eth1'
Line 198: Line 194:
 
  config 'interface' 'wan'
 
  config 'interface' 'wan'
 
         option 'proto' 'dslite'
 
         option 'proto' 'dslite'
         option 'peeraddr' '2001:db80::1' # Your ISP's DS-Lite AFTR
+
         option 'peeraddr' '2001:db80::1' # ISP DS-Lite AFTR
  
:!: If you choose a name for your tunnel-interface that is different from 'wan' make sure to add that name to the network-option of the firewall-zone 'wan' in /etc/config/firewall.
+
Jika kita memilih nama tunnel-interface bukan 'wan6' pastikan bahwa nama interface tersebut masuk ke network-option di firewall-zone 'wan' di /etc/config/firewall.
  
:!: The package ds-lite must be installed to use ds-lite-tunnels. See protocol.dslite.dual-stack.lite for advanved configuration options.
+
Package ds-lite harus di instalasi untuk menggunakan ds-lite-tunnel.
  
===Downstream configuration for LAN-Interfaces===
+
==Konfigurasi Downstream LAN-Interface==
  
OpenWrt includes a flexible local prefix delegation mechanism. It can be tuned for each downstream-interface individually with 3 parameters which are all optional:
+
OpenWRT menyediakan mekanisme delegasi prefix local yang flexible. Ini dapat di aktifkan untuk masing-masing LAN-interface dengan 3 parameter yang masing-masing optional:
  
    ip6assign: Prefix size used for assigned prefix to the interface (e.g. 64 will assign /64-prefixes)
+
* ip6assign: Prefix size digunakan untuk assigned prefix ke interface (contoh, 64 akan assign /64-prefixes)
    ip6hint: Subprefix ID to be used if available (e.g. 1234 with an ip6assign of 64 will assign prefixes of the form …:1234::/64)
+
* ip6hint: Subprefix ID yang akan digunakan jika ada (contoh, 1234 dengan ip6assign 64 akan assign prefix :1234::/64)
    ip6class: Filter for prefix classes to accept on this interface (e.g. wan6 will only assign prefixes with class "wan6" but not e.g. "local")
+
* ip6class: Filter untuk prefix class yang dapat di terima di interface (contoh, wan6 hanya akan assign prefix dengan kelas "wan6" tapi tidak untuk, misalnya, "local")
  
ip6assign and / or ip6hint-settings might be ignored if the desired subprefix cannot be assigned. In this case OpenWrt will first try to assign a prefix with the same length but different subprefix-ID. If this fails as well the prefix length is reduced until the assignment can be satisfied. If ip6hint is not set an arbitrary ID will be chosen. Setting the ip6assign-parameter to a value < 64 will allow the DHCPv6-server to hand out all but the first /64 via DHCPv6-Prefix Delegation to downstream routers on the interface. If the ip6hint is not suitable for the given ip6assign it will be rounded down to the nearest possible value.
+
Setting ip6assign dan / atau ip6hint akan di abaikan jika subprefix yang di inginkan tidak bisa di assign. Dalam hal ini, OpenWrt akan pertama kali berusaha untuk mencoba assign sebuah prefix dengan panjang yang sama, tapi berbeda subprefix-ID. Jika ini gagal maka panjang prefix akan di kurangi sampai assignment sesuai dengan yang di inginkan. Jika ip6hint tidak di set maka ID sembarang akan di pilih. Setting ip6assign-parameter ke nilai < 64 akan membuat e DHCPv6-server untuk memberikan /64 pertama via DHCPv6-Prefix Delegation ke downstream router di Interface. Jika ip6hint tidak cocok dengan ip6assign yang diberikan dia akan membulatkan ke bawah ke nilai yang paling mungkin.
  
If ip6class is not set then all prefix classes are accepted on this interface. The default class for a prefix is the interface-name (e.g. "wan6") or "local" for the ULA-prefix. This can be used to select upstream interfaces from which subprefixes are assigned. For prefixes received from dynamic-configuration methods like DHCPv6 it is possible that the prefix-class is not equal to the source-interface but e.g. augmented with an ISP-provided numeric prefix class-value.
+
Jika ip6class tidak di set maka semua prefix class akan di terima pada interface ini. Default class untuk sebuah prefix adalah interface-name (seperti "wan6") atau "local" untuk ULA-prefix. Ini dapat digunakan untuk memilih upstream interface dari mana subprefix akan di assigned. Untuk prefix yang diterima dari metoda dynamic-configuration seperti DHCPv6 sangat mungkin prefix-class tidak sama dengan source-interface tapi, misalnya, merupakan potongan dari nilai class prefix yang diberikan ISP.
 
 
Example (/etc/config/network):
 
  
 +
/etc/config/network
 +
 
  config globals globals
 
  config globals globals
 
         option ula_prefix fd00:db80::/48   
 
         option ula_prefix fd00:db80::/48   
Line 239: Line 235:
 
         ...
 
         ...
  
The results of that configuration would be:
+
Hasil dari konfigurasi di atas adalah:
  
    The lan interface will be assigned the prefixes 2001:db80:0:10::/60 and fd00:db80:0:10::/60.
+
* LAN interface akan diberikan prefix 2001:db80:0:10::/60 dan fd00:db80:0:10::/60.
    The DHCPv6-server can offer both prefixes except 2001:db80:0:10::/64 and fd00:db80:0:10::/64 to downstream routers on lan via DHCPv6-PD.
+
* DHCPv6-server dapat memberikan ke dua prefixes kecuali 2001:db80:0:10::/64 dan fd00:db80:0:10::/64 ke downstream router di LAN via DHCPv6-PD.
    The guest interface will only get assinged the prefix 2001:db80:0:abcd::/64 due to the class filter.
+
* guest interface hanya akan di assinged prefix 2001:db80:0:abcd::/64 karena class filter.
  
===Router Advertisement & DHCPv6===
+
==Router Advertisement & DHCPv6==
  
OpenWrt features a versatile RA & DHCPv6 server and relay. Per default SLAAC, stateless and stateful DHCPv6 are enabled on an interface. If there are prefix of size /64 or greater present then addresses will be handed out from each prefix. If all prefixes on an interface have a size greater /64 then DHCPv6-Prefix Delegation is enabled for downstream-routers. If a default route is present the router advertises itself as default router on the interface.
+
OpenWRT dapat memberikan RA & DHCPv6 server dan relay. Secara default SLAAC, stateless dan stateful DHCPv6 di enable di sebuah interface. Jika ada prefix yang besarnya /64 atau lebih besar maka address yang akan di berikan dari masing-masing prefix. Jika semua prefix di sebuah interface mempunyai besar lebih dari /64 maka DHCPv6-Prefix Delegation akan diaktifkan untuk downstream-router. Jika sebuah default route ada, router akan advertise dirinya sebagai default router pada interface.
  
OpenWrt is also able to detect when there is no prefix available from an upstream interface and can switch into relaying mode automatically to extend the upstream interface configuration onto its downstream interfaces. This is useful for putting an OpenWrt behind another IPv6-router which doesn't offer prefixes via DHCPv6-PD.
+
OpenWRT juga mampu mendetek jika tidak ada prefix yang tersedia dari upstream interface dan dapat switch ke mode relay secara automatis untuk meng-extend konfigurasi dari upstream interface ke downstream interface. Hal ini sangat bermanfaat untuk meletakan OpenWRT dibelakang IPv6-router yang tidak memberikan prefix via DHCPv6-PD.
  
Example configuration section for SLAAC + DHCPv6 server mode (/etc/config/dhcp)
+
Contoh bagian konfigurasi untuk SLAAC + DHCPv6 server mode (/etc/config/dhcp)
  
 
  config dhcp lan
 
  config dhcp lan
Line 257: Line 253:
 
     option ra server
 
     option ra server
  
Example configuration section for SLAAC alone (/etc/config/dhcp)
+
Contoh bagian konfigurasi untuk SLAAC saja (/etc/config/dhcp)
  
 
  config dhcp lan
 
  config dhcp lan
Line 263: Line 259:
 
     option ra server
 
     option ra server
  
Example configuration section for relaying (/etc/config/dhcp)
+
Contoh bagian konfigurasi untuk relay (/etc/config/dhcp)
  
 
  config dhcp wan6
 
  config dhcp wan6
Line 276: Line 272:
 
     option ndp relay
 
     option ndp relay
  
:!: The package odhcpd must be installed to provide these services.
+
Package odhcpd harus di instalasi untuk dapat memberikan layanan ini.
Routing Mangement
+
 
 +
==Routing Mangement==
  
OpenWrt uses a source-address and source-interface based policy-routing system. This is required to correctly handle different uplink interfaces. Each delegated prefix is added with an unreachable route to avoid IPv6-routing loops.
+
OpenWRT menggunakan source-address dan source-interface sebagai dasar untuk policy-routing system. Teknik ini dibutuhkan agar dapat secara benar menangani berbagai uplink interface. Setiap delegated prefix akan ditambahkan dengan unreachable route untuk menghindari IPv6-routing loops.
  
To determine the current status of routes you can consult the information provided by ifstatus.
+
Untuk menentukan status dari route, kita dapat melihat informasi yang diberikan oleh ifstatus.
  
Example (ifstatus wan6):
+
Contoh (ifstatus wan6):
  
 
  ...
 
  ...
        "ipv6-address": [
+
"ipv6-address": [
                {
+
        {
                        "address": "2001:db80::a00:27ff:fe67:cd9c",
+
                "address": "2001:db80::a00:27ff:fe67:cd9c",
                        "mask": 64,
+
                "mask": 64,
                        "preferred": 1681,
+
                "preferred": 1681,
                        "valid": 7081
+
                "valid": 7081
                }
+
        }
        ],
+
],
        "ipv6-prefix": [
+
"ipv6-prefix": [
                {
+
        {
                        "address": "2001:db80:0:100::",
+
                "address": "2001:db80:0:100::",
                        "mask": 56,
+
                "mask": 56,
                        "preferred": 86282,
+
                "preferred": 86282,
                        "valid": 86282,
+
                "valid": 86282,
                        "class": "wan6",
+
                "class": "wan6",
                        "assigned": {
+
                "assigned": {
                                "lan": {
+
                        "lan": {
                                        "address": "2001:db80:0:110::",
+
                                "address": "2001:db80:0:110::",
                                        "mask": 60
+
                                "mask": 60
                                }
 
 
                         }
 
                         }
                }
+
                  }
        ],
+
          }
        "route": [
+
],
                {
+
"route": [
                        "target": "2001:db80::",
+
        {
                        "mask": 48,
+
                "target": "2001:db80::",
                        "nexthop": "fe80::800:27ff:fe00:0",
+
                "mask": 48,
                        "metric": 1024,
+
                "nexthop": "fe80::800:27ff:fe00:0",
                        "valid": 7081
+
                "metric": 1024,
                  },
+
                "valid": 7081
                {
+
          },
                        "target": "::",
+
        {
                        "mask": 0,
+
                "target": "::",
                        "nexthop": "fe80::800:27ff:fe00:0",
+
                "mask": 0,
                        "metric": 1024,
+
                "nexthop": "fe80::800:27ff:fe00:0",
                        "valid": 7081
+
                "metric": 1024,
                }
+
                "valid": 7081
        ],
+
        }
 +
],
 
  ...
 
  ...
  
Interpretation:
+
Interpretasinya adalah:
 +
 
 +
* Pada interface ada 2 route yang diberikan: 2001:db80::/48 dengan default-route via router fe80::800:27ff:fe00:0.
 +
* route ini hanya dapat digunakan oleh traffic yang dibuat secara lokal dan traffic dengan source-address yang benar, yaitu dari local address atau dari address yang diberikan oleh delegated prefix.
  
    On the interface 2 routes are provided: 2001:db80::/48 and a default-route via the router fe80::800:27ff:fe00:0.
+
OpenWRT menambahkan IPv6-route (seperti default routes) ke routing-table yang spesifik dan tidak ke main-table oleh karenanya mereka tidak akan terlihat secara default. Kita dapat menggunakan perintah ip -6 untuk melihat semua kebijakan routing yang ada.
    These routes can only be used by locally generated traffic and traffic with a suitable source-address, that is either one of the local addresses or an address out of the delegated prefix.
 
  
:!: OpenWrt adds IPv6-routes (like default routes) to specific routing-tables and not the main-table thus they may not be seen by default. You can use the command ip -6 rule to list all current routing policies.
+
==Migrasi dari Attitude Adjustment 12.09 atau sebelumnya==
Migration from Attitude Adjustment 12.09 and earlier
 
  
==IPv6 Forwarding==
+
===IPv6 Forwarding===
  
To ensure that IPv6 forwarding is working correctly, please check that your /etc/sysctl.conf contains the following entries:
+
Untuk memastikan IPv6 forwarding bekerja dengan benar, cek /etc/sysctl.conf berisi entri berikut:
  
 
  net.ipv6.conf.default.forwarding=1
 
  net.ipv6.conf.default.forwarding=1
 
  net.ipv6.conf.all.forwarding=1
 
  net.ipv6.conf.all.forwarding=1
  
==Downstream configuration for LAN-Interfaces==
+
===Konfigurasi Downstream untuk LAN-Interface===
  
It is discouraged to use ip6addr to set addresses / prefixes on downstream interfaces (e.g. lan) because it can easily lead to conflicts with the local address delegation. Also it might lead to unexpected result or brokenness due to the source-based policy-routing used in the IPv6-stack.
+
Sangat tidak di sarankan untuk menggunakan ip6addr untuk menset address / prefix di downstream interface (seperti lan) karena ini akan mudah menyebabkan konflik dengan local address delegation. Hal ini juga mungkin akan menyebabkan hasil yang tidak di inginkan atau rusak karena source-based policy-routing yang digunakan di IPv6-stack.
  
Please use the new options ip6assign and ip6hint instead.
+
Mohon menggunakan opsi baru ip6assign dan ip6hint .
  
Example: If your delegated prefix is 2001:db80:1234::/48 and you want your lan interface to have the subprefix 2001:db80:1234:5678::/64 you could use the following configuration:
+
Contoh: kita ingin prefix yang didelegasikan 2001:db80:1234::/48 dan kita ingin LAN interface kita mempunyai subprefix 2001:db80:1234:5678::/64 kita dapat menggunakan konfigurasi berikut:
  
 
  config 'interface' 'lan'
 
  config 'interface' 'lan'
Line 356: Line 354:
 
         ...
 
         ...
  
If the router can ping6 the internet, but lan machines get "Destination unreachable: Unknown code 5" or "Source address failed ingress/egress policy" then the ip6assign option is missing on your lan interface.
+
Jika router dapat ping6 ke internet, tapi mesin di lan memperoleh error "Destination unreachable: Unknown code 5" atau "Source address failed ingress/egress policy" maka opsi ip6assign tidak ada di lan interface anda.
Router Advertisement & DHCPv6
+
 
 +
===Router Advertisement & DHCPv6===
 +
 
 +
Penggunaan radvd saat ini menjadi keharusan. Layanan 6relayd digunakan untuk Router Advertisement dan DHCPv6 dan mengambil address dari interface secara automatis.
  
The use of radvd is now unnecessary. The service 6relayd is used for Router Advertisement and DHCPv6 and picks up addresses from interfaces automatically. To configure the 6relayd service see 6relayd.
+
===Upstream Configuration for WAN-Interfaces===
Upstream Configuration for WAN-Interfaces
 
  
==Generic Changes==
+
====Perubahan Generik====
  
Router Advertisements are not accepted by default anymore and thus OpenWrt will not configure itself with default routes and / or addresses. Also the interface-options accept_ra and send_rs have been removed. You should add an interface with proto dhcpv6 - also for receiving RAs only - as described in Native IPv6 Connection.
+
Router Advertisement tidak akan di terima secara defauly oleh karenanya OpenWRT tidak akan mengkonfigurasi diri sendiri dengan route default dan / atau address. Jika opsi interface accept_ra dan send_rs sudah dibuang. Kita harus menambahkan sebuah interface dengan proto dhcpv6 - juga untuk menerima RA saja.
6in4 tunnel and Static IPv6 connection
 
  
It is now necessary to add your routed-prefix (e.g. routed /48 of your tunnel) as option ip6prefix to the tunnel/static-interface in /etc/config/network. If you omit this option your lan-clients will not be able to reach the internet.
+
====6in4 tunnel dan sambungan Statik IPv6====
  
Example:
+
Saat ini perlu untuk menambah routed-prefix kita (misalnya  routed /48 dari tunnel kita) sebagai opsi ip6prefix ke tunnel/static-interface di /etc/config/network. Jika kita membuang opsi ini lan-client tidak akan bisa mencapai Internet.
 +
 
 +
Contoh:
  
 
  config 'interface' 'wan6'
 
  config 'interface' 'wan6'
Line 375: Line 376:
 
         option 'peeraddr' '62.12.34.56
 
         option 'peeraddr' '62.12.34.56
 
         option 'ip6addr' '2001:DB8:2222:EFGH::2/64'
 
         option 'ip6addr' '2001:DB8:2222:EFGH::2/64'
         option 'ip6prefix' '2001:DB8:1234:ABCD::/64' # <- Your routed prefix
+
         option 'ip6prefix' '2001:DB8:1234:ABCD::/64' # <- routed prefix kita
 
         ...
 
         ...
  
==6rd and 6to4 tunnel==
+
====6rd dan 6to4 tunnel====
 
 
Your public address prefix is now automatically calculated and sent to the network subsystem (netifd). You should follow the advice for lan-interface configuration.
 
  
 +
Public address prefix kita akan di hitung secara automatis dan akan dikirim ke network subsystem (netifd). Kita perlu mengikuti saran untuk konfigurasi lan-interface.
  
 
==Referensi==
 
==Referensi==
  
 
* http://wiki.openwrt.org/doc/uci/network6
 
* http://wiki.openwrt.org/doc/uci/network6

Latest revision as of 09:27, 13 July 2015

Sumber: http://wiki.openwrt.org/doc/uci/network6


Barrier Breaker dan versi selanjutnya

  • Native IPv6-support dengan DHCPv6, RA & DHCPv6-Server dan IPv6-firewall dapat di instalasi dan di konfigurasi secara default.
  • Teknologi transisi seperti 6in4, 6rd, 6to4 atau ds-lite dapat di instalasi menggunakan package dengan nama yang sama.
  • Dukungan WebUI dilakukan dengan instalasi package luci-proto-ipv6.

Implementasi

Fitur

  • Penanganan Prefix
    • Manajemen prefix, address dan route dari sambungan upstream dan local ULA-prefix
    • Manajemen prefix dari unreachable-routes, prefix deprecation (RFC 7084) dan prefix class
    • Distribusi prefix ke downstream interface (termasuk size, ID dan class hints)
    • Kebijakan routing yang berbasis Source agar secara benar menangani interface multiple uplink, ingress policy filtering (RFC 7084)
  • Konfigurasi Native IPv6
    • Automatic bootstrap dari SLAAC, stateless DHCPv6, stateful DHCPv6, DHCPv6-PD dan kombinasi lainnya
    • Penanganan preferred dan valid address dan prefix lifetimes
    • Duplicate address dan pendeteksian Link-MTU
    • DHCPv6 Extension: Reconfigure, Information-Refresh, SOL_MAX_RT=3600
    • DHCPv6 Extension: RDNSS, DNS Search Domain, NTP, SIP, ds-lite, prefix exclusion (experimental)
  • IPv6 teknologi transisi
    • Setup dan manajemen dari IPv6-in-IPv4 tunnel (6rd, 6to4, 6in4)
    • Setup dan manajemen dari IPv4-in-IPv6 tunnel (ds-lite, lw4o6, map-e)
    • Setup dan manajemen dari IPv4-to-IPv6 translation (map-t, 464xlat CLAT) [sejak Chaos Calmer]
    • Automatic setup dari tunnel dari DHCP dan DHCPv6 [sejak Chaos Calmer]
  • Konfigurasi Downstream IPv6
    • Dukungan Server untuk Router Advertisement, DHCPv6 (stateless dan stateful) dan DHCPv6-PD
    • Deteksi Automatis untuk announced prefixes, delegated prefixes, default routes dan MTU
    • Ubah deteksi untuk prefix dan route untuk men-trigger pengiriman ulang dari RA dan DHCPv6-Reconfigure
    • Deteksi dari client hostname dan export sebagai augmented hosts-file
    • Dukungan untuk RA & DHCPv6-relaying dan NDP-proxying untuk, misalnya, dukungan uplink tanpa prefix delegation

Compliance

OpenWRT berusaha untuk mengikuti RFC 7084 jika dimungkinkan. Walaupun complience belum di verifikasi secara penuh.

Persyaratan dari RFC 7084 saat ini di ketahui belum terpenuhi.RFC 7084 WAA-5 (SHOULD-requirement): NTP-Server yang di-request dan di-received saat ini tidak di process atau digunakan.

Konfigurasi Upstream WAN-Interface

Pada bagian ini akan di terangkan cara konfigurasi sambungan IPv6 ke ISP atau ke upstream router. Perlu di catat bahwa sebagian besar mekanisme tunneling seperti 6in4, 6rd dan 6to4 tidak dapat beroperasi dibelakang NAT-router.

Sambungan Native IPv6

Untuk sebuah uplink dengan sambungan native IPv6 kita dapat menggunakan contoh konfigurasi berikut. Konfigurasi ini dapat bekerja untuk uplink yang mendukung DHCPv6 dengan Prefix Delegation dan juga yang tidak mendukung DHCPv6-PD maupun DHCPv6 sama sekali (hanya SLAAC).

/etc/config/network

config interface wan
        option ipv6 1 # hanya dibutuhkan untuk protocol yang berbasis PPP
        ...

config interface wan6
        option ifname   eth1 # gunakan nama ifname yang sama dengan di wan-section atau "@wan"
        option proto    dhcpv6 

config interface lan
        option proto    static
        option ip6assign 60
        ...

package odhcp6c harus di instalasi untuk bisa menggunakan dhcpv6.

Sambungan IPv6 Statik

Konfigurasi statik untuk IPv6 uplink juga di dukung. Berikut adalah contoh caranya,

vi /etc/config/network

config interface wan
        option ifname   eth1
        option proto    static
        option ip6addr  2001:db80::2/64   # Address kita
        option ip6gw    2001:db80::1      # Address Gateway
        option ip6prefix 2001:db80:1::/48 # Prefix address untuk di distribusikan ke downstream interface
        option dns      2001:db80::1      # DNS server

config interface lan
        option proto    static
        option ip6assign 60
        ...

6in4 tunnel (HEnet tunnelbroker, sixxs static tunnel, ...)

6in4 tunnel biasanya diberikan oleh external tunnel provider seperti HE.net atau Sixxs. Kita dapat menggunakan contoh konfigurasi berikut sebagai dasar:

/etc/config/network:

config 'interface' 'wan6'
        option 'proto' '6in4'
        option 'mtu' '1424'                          # IPv6 tunnel MTU (optional)
        option 'peeraddr' '62.12.34.56'              # IPv4 tunnel endpoint
        option 'ip6addr' '2001:DB8:2222:EFGH::2/64'  # IPv6 tunnel 
        option 'ip6prefix' '2001:DB8:1234:ABCD::/64' # Prefix yang di routed
        # opsi konfigurasi di bawah hanya untuk HEnet tunnel. abaikan untuk tunnel yang lain.
        option tunnelid '123456'   # HE.net tunnel id
        option username 'username' # HE.net username, bukan User ID.
        option password 'password' # HE.net password jika tidak menggunakan updatekey untuk tunnel
        option updatekey 'updatekey' # HE.net updatekey pengganti password

config 'interface' 'lan'
        option 'proto' 'static'
        option ip6assign 60
...


Jika kita memilih nama tunnel-interface bukan 'wan6' maka pastikan untuk menambahkan nama interface ke network-option dari firewall-zone 'wan' di /etc/config/firewall.

Package 6in4 harus di install untuk menggunakan 6in4-tunnel.

Catatan: HE.net mengalokasikan sebuah "updatekey" secara default untuk tunnel baru sejak Februari 2014.Jika kita menggunakan updatekey, kita perlu menggunakannya bukan password. Dukungan untuk opsi ini mulai di lakukan dalam OpenWRT trunk dari revisi r39646. Tunnel lama tanpa updatekey akan tetap dapat berjalan menggunakan password.

6rd tunnel (Dukungan untuk Transisi ISP IPv6)

6rd adalah sebuah mekanisme tunnel berbasis pada 6to4. Tidak seperti mekanisme tunneling lain, 6rd biasanya di berikan oleh ISP itu sendiri. Nilai dari tunnel biasanya di peroleh dengan DHCPv4 request untuk WAN interface.

Sejak OpenWRT Chaos Calmer dan selanjutnya, konfigurasi ini biasanya auto-detecte sehingga konfigurasi manual biasanya tidak dibutuhkan. Cukup instalasi package 6rd dan rebooting biasanya sudah cukup.

/etc/config/network:

config interface 'wan'
        option ifname 'eth0.2'
        option proto 'dhcp'
        
        # The following two lines are only needed in Barrier Breaker
        option iface6rd wan_6rd
        option zone6rd wan

Untuk 6rd via DHCP, pertama kali kita perlu men-cek jika parameter memang dikirim. Buat /etc/udhcpc.user dengan content berikut:

#!/bin/sh
env >> /tmp/udhcpc.log

Reboot router dan cek log file, apakah ada kalimat kira-kira seperti berikut:

ip6rd=16 40 2001:0838:ad00:0000:0000:0000:0000:0000 77.174.0.2

Jika kalimat tersebut tidak ada, kita perlu memperoleh nilai yang benar untuk peeraddr, ip6prefix, ip6prefixlen dan ip4prefixlen dari ISP kita. Nilai ip6rd di atas atau nilai yang kita peroleh dari ISP, dapat di tulis (hardcode) ke 6RD tunnel. Buang atau di-comment kalimat iface6rd dari wan section.

/etc/config/network
config interface 'wan6'
        option proto '6rd'
        option peeraddr '77.174.0.2'
        option ip6prefix '2001:838:ad00::'
        option ip6prefixlen '40'
        option ip4prefixlen '16'

Di Chaos Calmer dan Barrier Breaker default /etc/config/network akan bekerja setelah kita menginstalasi package 6rd. dhcpv6 akan di abaikan jika tidak berhasil.

Jika kita memilih nama tunnel-interface bukan 'wan6' maka pastikan bahwa nama interface tersebut masuk ke network-option di firewall-zone 'wan' di /etc/config/firewall.

Package 6rd harus di instalasi untuk menggunakan 6rd-tunnel.


6to4 tunnel

6to4 adalah mekanisme IPv6 tunneling yang paling sederhana, yang menggantungkan diri pada gateway yang tersedia secara publik.

/etc/config/network:

config 'interface' 'wan6'
        option 'proto' '6to4'

config 'interface' 'lan'
        option 'proto' 'static'
        option ip6assign 60
...

Jika kita memilih nama tunnel-interface bukan 'wan6' pastikan bahwa nama interface tersebut masuk ke network-option di firewall-zone 'wan' di /etc/config/firewall.

Package 6to4 harus di instalasi untuk menggunakan 6to4-tunnel.

Dual-Stack Lite tunnel (ds-lite IPv4 in IPv6)

ds-lite adalah sebuah mekanisme transisi yang digunakan oleh ISP untuk mendukung IPv4-connectivity di atas sambungan native IPv6.

Di Chaos Calmer dan versi selanjutnya, konfigurasi ds-lite biasanya auto-detect sehingga konfigurasi manual tidak diperlukan. Cukup dengan menginstalasi package ds-lite dan reboot biasanya sudah cukup.

/etc/config/network:

config 'interface' 'wan6'
        option 'ifname' 'eth1'
        option 'proto' 'dhcpv6'

config 'interface' 'wan'
        option 'proto' 'dslite'
        option 'peeraddr' '2001:db80::1' # ISP DS-Lite AFTR

Jika kita memilih nama tunnel-interface bukan 'wan6' pastikan bahwa nama interface tersebut masuk ke network-option di firewall-zone 'wan' di /etc/config/firewall.

Package ds-lite harus di instalasi untuk menggunakan ds-lite-tunnel.

Konfigurasi Downstream LAN-Interface

OpenWRT menyediakan mekanisme delegasi prefix local yang flexible. Ini dapat di aktifkan untuk masing-masing LAN-interface dengan 3 parameter yang masing-masing optional:

  • ip6assign: Prefix size digunakan untuk assigned prefix ke interface (contoh, 64 akan assign /64-prefixes)
  • ip6hint: Subprefix ID yang akan digunakan jika ada (contoh, 1234 dengan ip6assign 64 akan assign prefix :1234::/64)
  • ip6class: Filter untuk prefix class yang dapat di terima di interface (contoh, wan6 hanya akan assign prefix dengan kelas "wan6" tapi tidak untuk, misalnya, "local")

Setting ip6assign dan / atau ip6hint akan di abaikan jika subprefix yang di inginkan tidak bisa di assign. Dalam hal ini, OpenWrt akan pertama kali berusaha untuk mencoba assign sebuah prefix dengan panjang yang sama, tapi berbeda subprefix-ID. Jika ini gagal maka panjang prefix akan di kurangi sampai assignment sesuai dengan yang di inginkan. Jika ip6hint tidak di set maka ID sembarang akan di pilih. Setting ip6assign-parameter ke nilai < 64 akan membuat e DHCPv6-server untuk memberikan /64 pertama via DHCPv6-Prefix Delegation ke downstream router di Interface. Jika ip6hint tidak cocok dengan ip6assign yang diberikan dia akan membulatkan ke bawah ke nilai yang paling mungkin.

Jika ip6class tidak di set maka semua prefix class akan di terima pada interface ini. Default class untuk sebuah prefix adalah interface-name (seperti "wan6") atau "local" untuk ULA-prefix. Ini dapat digunakan untuk memilih upstream interface dari mana subprefix akan di assigned. Untuk prefix yang diterima dari metoda dynamic-configuration seperti DHCPv6 sangat mungkin prefix-class tidak sama dengan source-interface tapi, misalnya, merupakan potongan dari nilai class prefix yang diberikan ISP.

/etc/config/network

config globals globals
        option ula_prefix fd00:db80::/48  

config interface wan6
        option proto static
        option ip6prefix 2001:db80::/56
        ...

config interface lan
        option proto static
        option ip6assign 60
        option ip6hint 10
        ...

config interface guest
        option proto static
        option ip6assign 64
        option ip6hint abcd
        list ip6class wan6
        ...

Hasil dari konfigurasi di atas adalah:

  • LAN interface akan diberikan prefix 2001:db80:0:10::/60 dan fd00:db80:0:10::/60.
  • DHCPv6-server dapat memberikan ke dua prefixes kecuali 2001:db80:0:10::/64 dan fd00:db80:0:10::/64 ke downstream router di LAN via DHCPv6-PD.
  • guest interface hanya akan di assinged prefix 2001:db80:0:abcd::/64 karena class filter.

Router Advertisement & DHCPv6

OpenWRT dapat memberikan RA & DHCPv6 server dan relay. Secara default SLAAC, stateless dan stateful DHCPv6 di enable di sebuah interface. Jika ada prefix yang besarnya /64 atau lebih besar maka address yang akan di berikan dari masing-masing prefix. Jika semua prefix di sebuah interface mempunyai besar lebih dari /64 maka DHCPv6-Prefix Delegation akan diaktifkan untuk downstream-router. Jika sebuah default route ada, router akan advertise dirinya sebagai default router pada interface.

OpenWRT juga mampu mendetek jika tidak ada prefix yang tersedia dari upstream interface dan dapat switch ke mode relay secara automatis untuk meng-extend konfigurasi dari upstream interface ke downstream interface. Hal ini sangat bermanfaat untuk meletakan OpenWRT dibelakang IPv6-router yang tidak memberikan prefix via DHCPv6-PD.

Contoh bagian konfigurasi untuk SLAAC + DHCPv6 server mode (/etc/config/dhcp)

config dhcp lan
    option dhcpv6 server
    option ra server

Contoh bagian konfigurasi untuk SLAAC saja (/etc/config/dhcp)

config dhcp lan
    option dhcpv6 disabled
    option ra server

Contoh bagian konfigurasi untuk relay (/etc/config/dhcp)

config dhcp wan6
    option dhcpv6 relay
    option ra relay
    option ndp relay
    option master 1

config dhcp lan
    option dhcpv6 relay
    option ra relay
    option ndp relay

Package odhcpd harus di instalasi untuk dapat memberikan layanan ini.

Routing Mangement

OpenWRT menggunakan source-address dan source-interface sebagai dasar untuk policy-routing system. Teknik ini dibutuhkan agar dapat secara benar menangani berbagai uplink interface. Setiap delegated prefix akan ditambahkan dengan unreachable route untuk menghindari IPv6-routing loops.

Untuk menentukan status dari route, kita dapat melihat informasi yang diberikan oleh ifstatus.

Contoh (ifstatus wan6):

...
"ipv6-address": [
        {
                "address": "2001:db80::a00:27ff:fe67:cd9c",
                "mask": 64,
                "preferred": 1681,
                "valid": 7081
        }
],
"ipv6-prefix": [
        {
                "address": "2001:db80:0:100::",
                "mask": 56,
                "preferred": 86282,
                "valid": 86282,
                "class": "wan6",
                "assigned": {
                        "lan": {
                                "address": "2001:db80:0:110::",
                                "mask": 60
                        }
                 }
         }
],
"route": [
        {
                "target": "2001:db80::",
                "mask": 48,
                "nexthop": "fe80::800:27ff:fe00:0",
                "metric": 1024,
                "valid": 7081
         },
        {
                "target": "::",
                "mask": 0,
                "nexthop": "fe80::800:27ff:fe00:0",
                "metric": 1024,
                "valid": 7081
        }
],
...

Interpretasinya adalah:

  • Pada interface ada 2 route yang diberikan: 2001:db80::/48 dengan default-route via router fe80::800:27ff:fe00:0.
  • route ini hanya dapat digunakan oleh traffic yang dibuat secara lokal dan traffic dengan source-address yang benar, yaitu dari local address atau dari address yang diberikan oleh delegated prefix.

OpenWRT menambahkan IPv6-route (seperti default routes) ke routing-table yang spesifik dan tidak ke main-table oleh karenanya mereka tidak akan terlihat secara default. Kita dapat menggunakan perintah ip -6 untuk melihat semua kebijakan routing yang ada.

Migrasi dari Attitude Adjustment 12.09 atau sebelumnya

IPv6 Forwarding

Untuk memastikan IPv6 forwarding bekerja dengan benar, cek /etc/sysctl.conf berisi entri berikut:

net.ipv6.conf.default.forwarding=1
net.ipv6.conf.all.forwarding=1

Konfigurasi Downstream untuk LAN-Interface

Sangat tidak di sarankan untuk menggunakan ip6addr untuk menset address / prefix di downstream interface (seperti lan) karena ini akan mudah menyebabkan konflik dengan local address delegation. Hal ini juga mungkin akan menyebabkan hasil yang tidak di inginkan atau rusak karena source-based policy-routing yang digunakan di IPv6-stack.

Mohon menggunakan opsi baru ip6assign dan ip6hint .

Contoh: kita ingin prefix yang didelegasikan 2001:db80:1234::/48 dan kita ingin LAN interface kita mempunyai subprefix 2001:db80:1234:5678::/64 kita dapat menggunakan konfigurasi berikut:

config 'interface' 'lan'
       option 'proto' 'static'
       option 'ip6assign' '64'
       option 'ip6hint' '5678'
       ...

Jika router dapat ping6 ke internet, tapi mesin di lan memperoleh error "Destination unreachable: Unknown code 5" atau "Source address failed ingress/egress policy" maka opsi ip6assign tidak ada di lan interface anda.

Router Advertisement & DHCPv6

Penggunaan radvd saat ini menjadi keharusan. Layanan 6relayd digunakan untuk Router Advertisement dan DHCPv6 dan mengambil address dari interface secara automatis.

Upstream Configuration for WAN-Interfaces

Perubahan Generik

Router Advertisement tidak akan di terima secara defauly oleh karenanya OpenWRT tidak akan mengkonfigurasi diri sendiri dengan route default dan / atau address. Jika opsi interface accept_ra dan send_rs sudah dibuang. Kita harus menambahkan sebuah interface dengan proto dhcpv6 - juga untuk menerima RA saja.

6in4 tunnel dan sambungan Statik IPv6

Saat ini perlu untuk menambah routed-prefix kita (misalnya routed /48 dari tunnel kita) sebagai opsi ip6prefix ke tunnel/static-interface di /etc/config/network. Jika kita membuang opsi ini lan-client tidak akan bisa mencapai Internet.

Contoh:

config 'interface' 'wan6'
        option 'proto' '6in4'
        option 'peeraddr' '62.12.34.56
        option 'ip6addr' '2001:DB8:2222:EFGH::2/64'
        option 'ip6prefix' '2001:DB8:1234:ABCD::/64' # <- routed prefix kita
        ...

6rd dan 6to4 tunnel

Public address prefix kita akan di hitung secara automatis dan akan dikirim ke network subsystem (netifd). Kita perlu mengikuti saran untuk konfigurasi lan-interface.

Referensi