27
Windows Internet Windows Internet Connection Sharing Connection Sharing Dave Eitelbach Dave Eitelbach Program Manager Program Manager Networking And Communications Networking And Communications Microsoft Corporation Microsoft Corporation

Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Embed Size (px)

Citation preview

Page 1: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Windows Internet Windows Internet Connection SharingConnection Sharing

Dave Eitelbach Dave Eitelbach Program ManagerProgram ManagerNetworking And CommunicationsNetworking And CommunicationsMicrosoft CorporationMicrosoft Corporation

Page 2: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

GoalsGoals

Enable multiple users in the home Enable multiple users in the home to connect to the Internetto connect to the Internet

Handle roaming laptops transparentlyHandle roaming laptops transparently Simplify or eliminate configurationSimplify or eliminate configuration Enable telecommuting using the Enable telecommuting using the

Internet as a WAN (VPNs)Internet as a WAN (VPNs)

Page 3: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Issues For Deployment Issues For Deployment Of Home NetworksOf Home Networks Installation should be easyInstallation should be easy

There are no Net admins at home .There are no Net admins at home .

Automatic Network Configuration Automatic Network Configuration has to be automatichas to be automatic There are no Net admins at home ..There are no Net admins at home ..

Network health and recovery should Network health and recovery should take care of itselftake care of itself There are no Net admins at home ...There are no Net admins at home ...

Page 4: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

RequirementsRequirements

Transparent network configuration Transparent network configuration for end userfor end user

No client software (from both No client software (from both IHVs and OEMs)IHVs and OEMs)

Support for legacy and non-Windows clientsSupport for legacy and non-Windows clients Demand dial supportDemand dial support Support for remote client UI for demand dial Support for remote client UI for demand dial

control and progress indicationcontrol and progress indication Dial control and client “usage” APIsDial control and client “usage” APIs

Comprehensive protocol supportComprehensive protocol support Built in support for basic protocols (e.g., FTP, etc.)Built in support for basic protocols (e.g., FTP, etc.) Built-in support for Internet games (no config UI) Built-in support for Internet games (no config UI) Built-in support for VPNs (e.g., PPTP)Built-in support for VPNs (e.g., PPTP)

Page 5: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Connecting To The InternetConnecting To The Internet

Share the Internet connection Share the Internet connection transparently for bothtransparently for both Dial-Up mediaDial-Up media Always-available mediaAlways-available media

Resolve Internet names to addressesResolve Internet names to addresses Use Internet protocols (DNS and Use Internet protocols (DNS and

DHCP) to solve the problemDHCP) to solve the problem Clients on the home network Clients on the home network

should just workshould just work

Page 6: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Addresses And The InternetAddresses And The Internet

Home network clients need to share Home network clients need to share the public IP address of the gateway the public IP address of the gateway system when sending and receiving system when sending and receiving traffic on the Internettraffic on the Internet Internet addresses must be Internet addresses must be

unique and routableunique and routable Private home addresses won’t workPrivate home addresses won’t work

Consumer Internet access (via an ISP) Consumer Internet access (via an ISP) is typically a single IP addressis typically a single IP address

Page 7: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Connection Sharing Connection Sharing ArchitectureArchitecture ““Connection Sharing" components:Connection Sharing" components:

NATNAT transparently shares single public IP transparently shares single public IP address for clients on the local networkaddress for clients on the local network

DHCP AllocatorDHCP Allocator assigns address, gateway assigns address, gateway and name server on the local-network and name server on the local-network

DNS ProxyDNS Proxy resolves names on behalf of resolves names on behalf of local-network clientslocal-network clients

Auto-dialAuto-dial makes connections automatically makes connections automatically

Page 8: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Alternative Gateways Alternative Gateways

Basic options for Internet GatewayBasic options for Internet Gateway Application Proxy ServerApplication Proxy Server Winsock Proxy Server Winsock Proxy Server Network Address Translator (NAT)Network Address Translator (NAT)

Page 9: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Application ProxyApplication Proxy

stackstack

winsockwinsock

appapp

stackstack

winsockwinsock

app-proxyapp-proxy

Every application on every client must be Every application on every client must be configured to use proxyconfigured to use proxy

Proxy requires logic for every applicationProxy requires logic for every application

Page 10: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Winsock ProxyWinsock Proxy

stackstack

winsockwinsock

appapp

stackstack

winsock winsock proxyproxy

Client winsock must be configured to Client winsock must be configured to forward socket calls to winsock proxyforward socket calls to winsock proxy

Transparent for most applicationsTransparent for most applications

Page 11: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Network Address TranslationNetwork Address Translation

stackstack

winsockwinsock

appapp

NATNAT

No client configuration; transparent for all No client configuration; transparent for all applications on the clientapplications on the client

NAT requires protocol handlers for some NAT requires protocol handlers for some protocols (FTP, games, etc) protocols (FTP, games, etc)

Page 12: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Internet

10.0.0.2

10.0.0.3 10.0.0.1 157.55.0.1

Network Address TranslatorNetwork Address Translator

NAT (Network Address Translation)NAT (Network Address Translation) Typically maps set of private addresses Typically maps set of private addresses

to set of public addressesto set of public addresses NAT keeps state on private source IP address and NAT keeps state on private source IP address and

public destination address for outbound flowspublic destination address for outbound flows NAT changes the IP address information and edits NAT changes the IP address information and edits

needed IP header information on the flyneeded IP header information on the fly

Page 13: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

10.0.0.2

131.107.1.7D

S 172.31.249.14 10.0.0.2=172.31.249.14

Records the mapping between Records the mapping between original and replacement addressoriginal and replacement address

What Is NAT?What Is NAT?

A NAT changes IP addresses in A NAT changes IP addresses in packets on the flypackets on the fly

Page 14: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Autoconfiguring The Autoconfiguring The Home Network Via DHCPHome Network Via DHCP The client machines in the home network need to be The client machines in the home network need to be

configured for address, name server address, and configured for address, name server address, and default gateway addressdefault gateway address

Static addressing requires “networking 101” Static addressing requires “networking 101” knowledge, and configuration of each PCknowledge, and configuration of each PC

Automatic self-addressing generates a unique Automatic self-addressing generates a unique address for each PC (in single subnet)address for each PC (in single subnet)

DHCP (Dynamic Host Configuration Protocol) DHCP (Dynamic Host Configuration Protocol) assigns IP address, default gateway, and DNS info assigns IP address, default gateway, and DNS info to each clientto each client

DHCP is widely used on both Enterprise and small DHCP is widely used on both Enterprise and small networks (e.g., Small Business Server)networks (e.g., Small Business Server)

Page 15: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Autoconfiguring The Autoconfiguring The Home Network Via DHCPHome Network Via DHCP Enable mobile laptopsEnable mobile laptops

Laptops will come home from Enterprise networkLaptops will come home from Enterprise network They should work on both the Enterprise network They should work on both the Enterprise network

as well as the home network without as well as the home network without reconfigurationreconfiguration

Laptops must return to the Enterprise network Laptops must return to the Enterprise network without causing network problemswithout causing network problems Base solution on standard protocols, DHCPBase solution on standard protocols, DHCP

Page 16: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

a c c e s sp o i n t

l o c a lc l i e n t 1

l o c a lc l i e n t 2

l o c a l c l i e n tb r o a d c a s t s

D H C P r e q u e s t

a c c e s s p o i n tg i v e s g a t e w a y

a n d D N S

DHCP AllocatorDHCP Allocator A simplified DHCP server for A simplified DHCP server for

the home networkthe home network Assumes single segment LAN (i.e., single Assumes single segment LAN (i.e., single

subnet) connected to the Internet gatewaysubnet) connected to the Internet gateway Relies on broadcast-based defenseRelies on broadcast-based defense Multiple segments would require true DHCP Multiple segments would require true DHCP

server and potentially DHCP relaysserver and potentially DHCP relays Assigns its own address Assigns its own address

(i.e., the address of the (i.e., the address of the “private” interface of “private” interface of Internet sharing PC) Internet sharing PC) as the DNS address as the DNS address and default gateway and default gateway addressaddress

Page 17: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

ac c es spoin t

loc a lc lient 1

loc a lc lient 2

DNSs erv er

runs DNSproxy

ISProuter

servicesDHCP clients

translatesaddresses

DNS ProxyDNS Proxy

DHCP Allocator provides its own address as DNS DHCP Allocator provides its own address as DNS server address to home network client machinesserver address to home network client machines Clients have DNS server address in disconnected dial-up caseClients have DNS server address in disconnected dial-up case Clients are shielded from changing Internet Clients are shielded from changing Internet

DNS server addressesDNS server addresses

Internet DNS requests are then proxied Internet DNS requests are then proxied to the Internet connectionto the Internet connection Dial up link is connected if neededDial up link is connected if needed

Page 18: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Home LANHome LAN

Windows InternetWindows InternetConnection SharingConnection Sharing

169.254.0.3169.254.0.3

169.254.0.4169.254.0.4

InternetInternet

NAT translates NAT translates packets to and from packets to and from the assigned public the assigned public IP addressIP address

C orpora te R A SClients access Clients access corporate networks corporate networks using PPTP through using PPTP through the NATthe NAT

DHCP allocator DHCP allocator assigns address, assigns address, gateway, and name-gateway, and name-server on home LAN;server on home LAN;DNS proxy forwards DNS proxy forwards queriesqueries

Connection Sharing Connection Sharing ExampleExample Auto-configured home/Auto-configured home/

small-office networkingsmall-office networking

Page 19: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Windows Internet Windows Internet Connection SharingConnection Sharing Windows 2000 and Windows 98 will provide Windows 2000 and Windows 98 will provide

base Connection Sharing capabilitiesbase Connection Sharing capabilities DHCP AllocatorDHCP Allocator DNS ProxyDNS Proxy Network Address TranslationNetwork Address Translation

Support for popular applications and gamesSupport for popular applications and games APIs for config, status, and dial controlAPIs for config, status, and dial control Enable ISV hybrid solutions on Enable ISV hybrid solutions on

Windows platformWindows platform

Page 20: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Windows Internet Windows Internet Connection Sharing Connection Sharing Requirements revisitedRequirements revisited Transparent network configuration Transparent network configuration

for end user - for end user - YESYES Support for legacy and non-Windows clients - Support for legacy and non-Windows clients - YESYES Demand dial support - Demand dial support - YESYES Support for remote client UI for demand dial control Support for remote client UI for demand dial control

and progress indication - and progress indication - YESYES Dial control and client “usage” APIsDial control and client “usage” APIs

No client software (from both IHVs and OEMs) - No client software (from both IHVs and OEMs) - YESYES Comprehensive protocol support - Comprehensive protocol support - YESYES

Easy support (e.g., no config UI) for popular Internet games Easy support (e.g., no config UI) for popular Internet games VPN (e.g., PPTP)VPN (e.g., PPTP)

Page 21: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Windows Connection SharingWindows Connection Sharing

TCPIPTCPIPNATNAT

KernelKernel

UserUserDHCPDHCP DNS ProxyDNS Proxy

ExtensionsExtensions

Automates Automates addressing of addressing of LAN clientsLAN clients

Forwards name queries Forwards name queries from LAN clientsfrom LAN clients

Shares single IP Shares single IP address among address among LAN clientsLAN clients

Automatically dials Automatically dials public network for public network for LAN clientsLAN clients

Forwards packets Forwards packets through NAT through NAT before routingbefore routing

Windows 2000 Connection Windows 2000 Connection Sharing ArchitectureSharing Architecture

Page 22: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

NDISNDIS

ICSMACICSMAC PPPMACPPPMACEthernetEthernet

IPIP ICSPROTICSPROT

TCP/UDPTCP/UDP

Internal Home Network Modem

NDIS protocolsNDIS protocols

NDIS adaptersNDIS adapters

Data flow in kernelData flow in kernel

Windows 98 Internet Connection Windows 98 Internet Connection Sharing Architecture Sharing Architecture

Page 23: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Windows 2000 Connection Windows 2000 Connection Sharing IntegrationSharing Integration Turning on Turning on

connection connection sharing for sharing for new dial-up new dial-up connectionsconnections

Page 24: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Windows 2000 Connection Windows 2000 Connection Sharing IntegrationSharing Integration Turning on Turning on

connection connection sharing for sharing for existing existing connectionsconnections

Page 25: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Windows 98 Internet Windows 98 Internet Connection SharingConnection Sharing Turning on Turning on

Internet Internet Connection Connection SharingSharing

Page 26: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Windows Internet Windows Internet Connections Sharing DemoConnections Sharing Demo

ICS PCICS PC

Client PCClient PC

Client PCClient PC

Internet

DSL linkDSL link

HomePNAHomePNA

Page 27: Windows Internet Connection Sharing Dave Eitelbach Program Manager Networking And Communications Microsoft Corporation

Call To ActionCall To Action

Provide feedback on your key Internet Provide feedback on your key Internet sharing requirementssharing requirements Send e-mail to [email protected] e-mail to [email protected]

Ship “Sharing Enabled” PCsShip “Sharing Enabled” PCs Broadband + LANBroadband + LAN Dial + LANDial + LAN ISDN + LANISDN + LAN

Build value add control applications Build value add control applications and UI on base Internet Sharing APIsand UI on base Internet Sharing APIs