This chapter explores the complex topic of network virtualization. Instead of attempting to cover all technologies or presenting low-level technical details, the chapter considers the motivation for virtualized networks, the general concepts, the use of SDN, and the ways cloud providers can employ virtualization technologies. The chapter begins by pointing out that a data center provider and tenant have goals for network communication. A provider minimizes cost by sending traffic from all tenants over a single underlying network, and a tenant desires that their traffic be isolated from other tenants. The chapter describes network virtualization mechanisms that a provider can use to guarantee isolation while passing traffic over a common network, including VLAN, VxLAN, and NAT technologies. It goes on to describe the need for automated network configuration and operation. It explains Software Defined Networking (SDN) and the OpenFlow protocol. Finally, the chapter concludes by explaining programmable networks and the P4 language.