32
20-Mar-2009 DREN IPv6 1 DREN IPv6 Implementation Google IPv6 Implementors Conference 20 Mar 2009 Mountain View, CA Ron Broersma DREN Chief Engineer High Performance Computing Modernization Program [email protected]

DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

20-Mar-2009 DREN IPv6 1

DREN IPv6 Implementation

Google IPv6 Implementors Conference20 Mar 2009

Mountain View, CA

Ron BroersmaDREN Chief Engineer

High Performance Computing Modernization [email protected]

Page 2: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

20-Mar-2009 DREN IPv6 2

Introduction• Aggressive deployment of IPv6 to DoD’s R&E WAN

(DREN) and to all campuses of one major customer (SPAWAR)

• These are production networks with 10’s of thousands of users and systems.– i.e., not just a testbed

• Goals– See what works and what’s broken– See what’s missing– Share lessons learned

DREN: “Defense Research and Engineering Network”

Page 3: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

DoD world of networks

• “Operational”– Uses: command &

control, official business, no R&D

– WANs: NIPRnet, SIPRnet

– Run by: DISA– IPv6 not approved– Did do an IPv6 ping

last year.

• “RDT&E”– R&D, Test & Eval,

Modeling and Simulation, HPC, etc.

– DREN, SDREN

– HPC Program– DoD’s IPv6 “pilot”– Full production IPv6

20-Mar-2009 DREN IPv6 3

I live hereI live here

Page 4: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

Historically• 1990’s

– early implementations (NRL)– Ad hoc experiments, 6bone, etc.

• 2001-2002– Became official coordinated project– Built and operated dedicated IPv6 WAN for early adopters

• 2003– DREN selected as DoD IPv6 “pilot”– Started efforts to IPv6-enable all production networks and

services

• Today– Have been successfully operating IPv6 across production

networks and services for years20-Mar-2009 DREN IPv6 4

Page 5: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

Our IPv6 philosophy

• Push the “I believe” button, and turn on IPv6 everywhere to see what works (and what doesn’t)

• Do it in a production environment– can get away with this in an R&D environment,

but not on operational networks.• Go native. (no tunnels)• Even if the world doesn’t convert for years,

R&D environments need it now.• Figure out how to deploy IPv6 to the rest of

DoD in the future.

20-Mar-2009 5DREN IPv6

Page 6: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

Level of effort?• Easy parts

– Dual-stacking the nets (WANs, LANs)• IPv6 ping test

– Enabling IPv6 functionality in modern operating systems– Establishing basic IPv6 services (DNS, SMTP, NTP)– Enabling IPv6 in some commodity services (HTTP)

• A little more challenging– Getting the address plan right

• Usually get it right on the third try– Operating and debugging a dual stack environment– Multicast (but easier than IPv4)

• Hard parts– Creating the security infrastructure (firewalls, IDS, proxys, IDP/IPS,

VPNs, ACLs)– Working around missing or broken functionality– Creating incentives to upgrade and try IPv6– Getting the vendors to fix bugs or incorporate necessary features

• Not enough market pressure, so other activities take priority

20-Mar-2009 DREN IPv6 6

Page 7: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

Some things we learned

• Vendors aren’t eating their own dogfood• Need to be willing to “break some glass”• We desperately need feature parity between

IPv4 and IPv6 in all products• Operating dual stack brings sufficient

additional pain in some situations, that it can make you wish for IPv6-only.

20-Mar-2009 DREN IPv6 7

Page 8: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

20-Mar-2009 DREN IPv6 8

Not eating own dog-food

• Look in DNS to see if there were AAAA records for www, MX, and DNS.

• Quick sampling of major computer and network companies showed no public facing IPv6.– Akamai is a big problem

• Also see Mark Prior’s version at http://www.mrp.net/Internet2_IPv6_Survey.html

Jan 2008June 2007 July 2008 Feb 2009

Page 9: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

IPv6 Surveyhttp://www.mrp.net/IPv6_Survey.html

First few pages of 24 page reportFirst few pages of 24 page report

First “all green”First “all green”

20-Mar-2009 9DREN IPv6

Page 10: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

IPv6 deployment mostly complete

20-Mar-2009 DREN IPv6 10

So, now what?So, now what?

Page 11: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

20-Mar-2009 DREN IPv6 11

Some current initiatives

• Try to move some things to IPv6-only:– Network Management– VTC network– DNS zone xfer and dynamic updates– AAA (RADIUS, LDAP, Kerberos)

• Fixing remote users on VPNs• Ways to keep DNS up to date• Incentives for customers

Page 12: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

20-Mar-2009 DREN IPv6 12

Network Mgmt using IPv6

• Goals– Determine if network management can be

performed using IPv6.• What works? What is missing?

– Determine if ALL network management can be performed using IPv6.

• Can we make the Management LAN IPv6-only? If not, what are the showstoppers?

– Work with vendors to IPv6-enable all management functions on their products.

Page 13: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

20-Mar-2009 DREN IPv6 13

IPv6 on Mgmt LAN• Configuring an IPv6 address on mgmt interfaces

– Foundry: OK– Ericsson ATM switch: failed– Cisco: OK– Juniper router: OK– Juniper Netscreen: OK (5.4 or later)– Misc appliances: mostly failed

• Inter-site IPSEC mesh– ns204 didn’t support IPv6 tunnels

• Replace all with SSG-5s– Tunneled IPv4 and IPv6 traffic in IPv4 IPSEC tunnel.– Tested IPv6 traffic in IPv6 tunnel – worked well– Moved IPv4 traffic to IPv6 tunnel – also worked well– Shut down IPv4 tunnels!

• But v4 traceroutes never show the v6 hop.

Page 14: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

20-Mar-2009 DREN IPv6 14

Address plan• Addressing

– Wanted something akin to private address space.– Used ULA (RFC4193), but without the ugly random “Global ID”.

• ULA = FC00::/7• FD00::/7 implies “locally assigned”• FDgg:gggg:gggg:ssss:iiii:iiii:iiii:iiii

– g : random global ID, s : subnet, i : interface ID– First try: g = 0, s = small integer (“site”), i = match host num from

v4 address• FD00:0:0:1::10:30• Problem: network discovery took too long

– range was 0 to 0xffffff (took weeks)– Second try: g = 0, s = small integer, i = hex value of host num

from v4 address• FD00:0:0:1::A1E

– Discovery much faster, range now 0 to 0xffff (2 hrs)– Third try: s = 0, g = small integer in first byte followed by 0’s

• FD01::A1E– Shorter, less typing, often shorter than old IPv4 address. ☺

Page 15: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

20-Mar-2009 DREN IPv6 15

Network mgmt apps• InMon Traffic Sentinel

– Tried to make it do snmp to a switch using IPv6.• Could not configure an IPv6 target address.

– Feature request for full IPv6 support• Delivered in less than 3 months

• InMon and sflow– InMon relies on sflow for discovery and autoconfiguration.– Tried to make Foundry switch send sflow to an IPv6 target.

• Could not configure an IPv6 target address.

– Feature request to Foundry to implement sflow via IPv6 in entire product line

• Delivered in 9 months

Lesson: We don’t have time to discover all these shortcomings serially

Page 16: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

20-Mar-2009 DREN IPv6 16

Find all showstoppers• Set up IPv6-only mgmt LAN, with switches

configured for IPv6-only.• Learned that additional things were not

implemented:• Foundry:

– FDP (like CDP) can’t report neighbor’s IPv6 address» Have to wait for LLDP

– FES class switches – IPv6 MIB not implemented– FESX class switches – IPv6 MIB not supported until release 4.1– ServerIron – no IPv6 support except in very latest release

• Netscreen:– SNMP via IPv6 not supported

• Freeradius– No IPv6 support until 2.0 (what’s in RHEL 5 or later).

Page 17: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

20-Mar-2009 DREN IPv6 17

INM issues• Ironview Network Manager

(Foundry)– Didn’t support IPv6 at all

until 3.0 release (10/2007)– Now works, but has cosmetic

issues• Doesn’t shorten any of the

IPv6 addresses– FD01:0:0:0:0:0:0:A1E

(should be FD01::A1E)

– Device discovery works much faster if only the bottom few bits are used for individual device numbers.

Page 18: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

Syslog over IPv6• syslogd (what’s in most Linux distributions, including all RHEL

releases) does not support IPv6.• New “rsyslog” is a replacement

– IPv6 support– Compatible with syslog config file (/etc/syslog.conf)– Fedora moved to this in Fedora 8

• Splunk doesn’t care• Converting all the clients out there to use IPv6 destination:

– Foundry: OK– Cisco: OK– Netscreen Firewalls and VPNs: OK– Aruba (wireless): NO– Ascend (dialup): NO– Bluecoat (proxy): NO– New microwave radio: NO

20-Mar-2009 DREN IPv6 18

Page 19: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

DNS zone transfers

• Can we force all zone xfers over v6?• Need to change the config on the slaves

20-Mar-2009 DREN IPv6 19

zone ”nosc.mil" {type slave;file "slaves/nosc";masters {

128.49.4.20;};

};

zone ”nosc.mil" {type slave;file "slaves/nosc";masters {

128.49.4.20;};

};

zone ”nosc.mil" {type slave;file "slaves/nosc";masters {

2001:480:10:4::20;};

};

zone ”nosc.mil" {type slave;file "slaves/nosc";masters {

2001:480:10:4::20;};

};

Change this to the IPv6 address of the master server

Like this

Page 20: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

DNS zone transfers• Need to update ACLs on the master server

• Notifications: – The master sends a “notify” to all slaves listed by “NS”

records. – Dual stack slaves get notified at both the IPv4 and IPv6

addresses.– The IPv4 notifications now fail

– Adding the IPv4 address back in the master list on the slave server seems to be OK, and the zone xfers go via IPv6

– Also change all instances of “also-notify” to IPv6 address20-Mar-2009 DREN IPv6 20

Allow-transfer {198.253.48.7;2001:480:10:1048::7;

}

Allow-transfer {198.253.48.7;2001:480:10:1048::7;

}Add the IPv6 address of the slave server

named[15666]: zone nosc.mil/IN: refused notify from non-master: 128.49.4.20#51718named[15666]: zone nosc.mil/IN: refused notify from non-master: 128.49.4.20#51718

Page 21: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

Dynamic DNS updates

• In the ISC DHCP configuration file, you specify the address of the DNS master

• The “primary” line will not take an IPv6 address.

• If you specify a FQDN for primary that has a AAAA record, it will not use it.

20-Mar-2009 DREN IPv6 21

ddns-update-style interim;ddns-domainname "sd.spawar.navy.mil";zone sd.spawar.navy.mil. {primary 128.49.4.20;

key DHCP_UPDATER;}

ddns-update-style interim;ddns-domainname "sd.spawar.navy.mil";zone sd.spawar.navy.mil. {primary 128.49.4.20;

key DHCP_UPDATER;}

Page 22: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

VTC Network• Connect VTC equipment to the IP network

– Normally all done with ISDN– We’ll try to do it “IPv6-only”

• Tandberg – manufacturer of our existing VTC units– Supports IPv6 very well (we were pleasantly

surprised)– Not much else to say… It just works.

20-Mar-2009 DREN IPv6 22

Page 23: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

AAA services• RADIUS

– Needed to upgrade servers to freeradius 2.0 to support IPv6

• Kerberos, LDAP servers– Just works, as expected

• LDAP client issue– Could not make some perl and PHP based apps connect to

LDAP via IPv6– Perl module Net::LDAP has no IPv6 support until 0.35

• Latest RHEL only has 0.33

– Need to modify code to ask for IPv6– Perl modules need to be made IP version agnostic

20-Mar-2009 DREN IPv6 23

Page 24: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

Fixing the VPN problem• Travelers and telecommuters use client VPNs to connect to the

corporate Intranet securely– Like Cisco IPSEC VPN or Juniper SSL VPN

• Only tunnels IPv4 traffic (today)• IPv6 traffic, if supported at all, goes outside this tunnel, and is

blocked by the site firewall.– Seriously impacts performance for IPv6-enabled remote users.– They disable IPv6 to fix it (bad scenario)

• Solution:– Deploy ISATAP to Intranet. Works well!– But MACs don’t have ISATAP client support.

• Bug report filed with Apple

20-Mar-2009 DREN IPv6 24

Page 25: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

Google via IPv6

• We registered for Google AAAA’s

• Nobody noticed (good), until…• When one site’s web proxy broke IPv6, then

people really noticed, and it got fixed quickly– Canary in a coal-mine effect

20-Mar-2009 DREN IPv6 25

$ dig www.google.com aaaa

;; ANSWER SECTION:www.google.com. 152199 IN CNAME

www.l.google.com.www.l.google.com. 90 IN AAAA 2001:4860:0:2001::68

$ dig www.google.com aaaa

;; ANSWER SECTION:www.google.com. 152199 IN CNAME

www.l.google.com.www.l.google.com. 90 IN AAAA 2001:4860:0:2001::68

Page 26: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

Keeping DNS updated

• Need to get PTRs and some AAAA’s in DNS for all devices doing IPv6

• Manual editing of zone files?– Much more painful than IPv4– How do you know when some device starts doing

IPv6 and gets a SLAAC address?

• DHCPv6?– Use DHCPv6 to provide addresses, and use

dynamic DNS update– Problem: too many clients do not yet support

DHCPv6 (Windows XP, MAC OSX, others)20-Mar-2009 DREN IPv6 26

Page 27: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

DNS auto-update

• Scheme #1– Cook all the PTRs based on MAC addrs

• We can find the MAC addrs of all devices on-net• We can figure out their IPv6 prefix based on their IPv4

address• Assume bottom half of address (IID) is EUI-64• Generate PTRs for everything

– It works, except for all those windows machines that prefer temporary (privacy) addresses

– Disabling privacy addresses everywhere not practical

20-Mar-2009 DREN IPv6 27

Page 28: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

DNS auto-update• Scheme #2

– Use SNMP to poll the routers• Grab the ARP cache and the ND table

– For all MAC addresses in the ND table with global unicast addresses matching the site IPv6 prefix:

• Find the corresponding IPv4 address from the ARP cache• Find the FQDN for the IPv4 address in DNS (PTR lookup)• Build a PTR record for the IPv6 address, using FQDN from IPv4 address• Push to DNS dynamically if required

– Works well– Yes, there are some additional complexities, and optimizations

required, like garbage collection of those temporary addresses.– Lingering problems with IPv6 objects in the IP-MIB and IPV6-MIB

• We really need all routers supporting RFC 4293 (version independent IP-MIB)

20-Mar-2009 DREN IPv6 28

Page 29: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

Creating incentives• We don’t centrally control most customer devices

(desktops, laptops, servers, printers, etc.)– Have to look for mechanisms to get these users to turn on

IPv6 and use it– Modern Operating systems (Vista, MAC OSX, Linux) get

IPv6-enabled automatically, but (for example) XP users need to “ipv6 install”.

• For some servers, when their client base is mostly IPv6-enabled, we remove “A” record from DNS for that server.– The rest of the clients migrate quickly– Customers in environments lacking IPv6 generate local

demand for fully IPv6 support

20-Mar-2009 DREN IPv6 29

Page 30: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

Things that are breaking us

• DoD DMZ effort– New DNS proxys don’t support IPv6

• Our research DNS domains are in the .mil hierarchy

– In fact, none of it supports IPv6

• Efforts to consolidate public web sites to DISA hosting centers– We will lose IPv6 for our public web sites, which is

unacceptable.

20-Mar-2009 DREN IPv6 30

“Our national interest is at stake in this issue”

Page 31: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

A national strategic goal?• IPv6-enable all public facing services

– The stuff outside your firewall

• It is fairly easy to do (low hanging fruit)– You don’t have to worry about your internal network just yet.– Eliminates prerequisite of IPv6-enabling your whole security stack

• Benefit to IPv6 community is huge– External parties generally only care about your public facing

services, not your internal stuff.– IPv6 clients can then get to you native, without address translators

(CGN and other NATs).

• DoD or OMB should incentivize something like this– Simple concept, fairly easy to do, substantial benefit on many

fronts.

20-Mar-2009 DREN IPv6 31

Page 32: DREN IPv6 Implementation– Getting the address plan right • Usually get it right on the third try – Operating and debugging a dual stack environment – Multicast (but easier

20-Mar-2009 DREN IPv6 32

END