1 Linux 1.1 Linux 1.1.1 Linux 1.1.2 Linux Linux --help arp help manual manual TCP/IP ARPIP RFC1812 2.2.3 IPV4 IPv6 RFC ftp 1.1.3 1 ARP ip addr show up eth0 IP ip neigh show ARP VLAN VLAN IP Ping ICMP echo request ICMP echo reply ip neigh show ARP MAC ip addr show up ping6 2001:da8:d800::3( IPV6 ) ARP ip -6 neigh show 2001:da8:da00::3 MAC MAC ARP ping ip neigh show 2 lp ip route show ip f inet6 route show IPv4 IPv6
ip addr show /etc/sysconfig/network-scripts, eth0 ifcfg-eth0 /etc/sysconfig/network FORWARD IPv4IPv6 /etc/sysconfig/network FORWARD /proc/sys/net/ipv4/ip-forward /proc/sys/net/ipv6/conf/all/forwarding FORWARD /proc/sys/net/ipv4/ip_forward /proc/sys/net/ipv6/conf/all/forwarding 3 ip route show IPv4 IPv4 ping R 202.38.64.8 IP IP IP IP 1 2 3 4 5 6 7 8 1.2 Linux 1.2.1 FTP NAT FTPIRC ftp ftp FTP ftp 21 ftp ftp ftp NAT www ftp FTP ftp 20 ftp FTP NAT NAT FTP
NAT ftp FTP NAT NAT FTP FTP ftp ftp 21 8001 ftp 21 ftp ftp Linux 2.4 moduleinsmod ip_conntrack_ftp ports=21,8001;insmod ip_nat_ftp ports=21,8001 tcpdump FTP FTP PASV FTP PORT Linux ftp ftp, passive gftp tcpdump -X -s 0 ftp ftp 202.38.64.123202.38.75.11 mail.ustc.edu.cn tcpdump ftp 1.2.2 tcpdump WWW Apache Virtual Host www www http://name1.ustc.edu.cn http://name2.ustc.edu.cn www www tcpdump www lynxlinks firefox www TCP 80 Host Apache name1.ustc.edu.cnname2.ustc.edu.cn IP httpd www http://name2.ustc.edu.cn GETHTTP1.1 Host: name2.ustc.edu.cn Apache http Host: IP www IP Internet http://debian.ustc.edu.cnhttp://lug.ustc.edu.cn tcpdump -X -s 512 www http Host:
1.2.3 IPv4 iptables iptalbes a) iptables -t nat -A POSTROUTING -s 192.168.33.0/22 -d! 192.168.1.0/24 -o eth2 -j SNAT --to 202.38.75.33 b) iptables -t nat -A POSTROUTING -s 192.168.33.0/22 -d 192.168.1.0/24 -o eth0 -j SNAT --to 192.168.1.33 c) iptables -t nat -A PREROUTING -s 192.168.1.0/24 -i eth1 -j DNAT --to 202.38.75.9 d) iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT --to-port 3128 e) iptables -A INPUT -p tcp -d 202.38.75.75 --dport 23 -i eth0 -j DROP f) iptables -A OUTPUT -p tcp --dport 23 telnet -j REJECT 1.2.4 tcpdump IPv6 1.2.4.1 tcpdump ICMPv6 echo request echo reply tcpdump v x n host ADDRESS and 2001:da8:d800::3 ping6 2001:da8:d800::3 (ICMPv6) ADDRESS IPv6 ping IPv6 ICMPv6 1.2.4.2 tcpdump tcpdump 1.2.4.3 tcpdump IPv6 tcpdump
1.2.4.4 tcpdump IPv6 1.2.4.5 tcpdump IPv6 TCP tcpdump TCP tcpdump TCP A B A B (1) A B SYN Hello (2) B A SYN SYN/ACK Welcome (3) A SYN/ACK ACK OK A B B ftp A B 21 B 2 RST TCP RST TCP tcpdump (1) (1) (2) (2) (3) TCP SYNACKRST UDP TCP/IP 1 1.3 1.3.1 Linux Linux 1 cdchmodcplnlsmkdirmvpwdrmrmdir 2 catheadlessmoretailwc 3 chfnfingeridpasswdwhoami 4
ftplynxlinksncftppingsshtelnettraceroutewget 5 killkilla11pstop 6 dfdufree 7 picovim 8 cmpdifffindgreplocatesortwhatiswhereis 9 compressgziptarzip 1.3.2 Linux man x x Linux manual man 3 scanfman 1 lsman 8 netstat man1 man2 man3 C man4 man5 man6 man7 man8 root /sbin/ /sbin/ifconfig man1 PATH export PATH=$PATH:/sbin:/usr/sbin/ shell.bash_profile man9 1.3.3 tcpdump tcpdump -a tcpdump -e tcpdump -i e 0ehi tcpdump -n IP tcpdump -s tcpdump -v IP tcpdump -x 16
tcpdump -X 16 ASCII tcpdump host name1.net and name2.net tcpdump port 21 tcpdump arp ARP tcpdump ether src 00:50:BA:A6:75:65 tcpdump not tcp and not udp and not icmp tcpdump net 202.38.64.0/24 IP tcpdump e i eth2 n v x host name1.net and name2.net and udp dst port 8000 eth2 name1.net name2.net 8000 UDP tdpdump eth0 tcpdump vim tcpdump n > dump.log.1 Alt+F1 Alt+F2 Ctrl+c tcpdump dump.log.1
2 IPv6 2.1.1 (socket) Linux TCP UDP IPv6 IPv6 2.1.2 IPv4 IPv6 C/S IPv6 IPv6 TCP IPv6 socket c 2.1.3 1. TCP IPv6 vim #include <stdio.h> #include <netinet/in.h> #define MAXLINE 1024 int main (int argc, char **argv) { int sockfd, n; char recvline[maxline+1]; char mesg[] = "Hello World!"; struct sockaddr_in6 servaddr; if (argc!=2) { printf("usage: %s <IPv6_address>\n", argv[0]); exit(1); if ((sockfd = socket (AF_INET6, SOCK_STREAM, 0)) < 0) { perror("socket"); exit(2);
bzero(&servaddr,sizeof (servaddr)); servaddr.sin6_family = AF_INET6; servaddr.sin6_port = htons (7) ; if (inet_pton(af_inet6, argv[1], &servaddr.sin6_addr) <= 0) { printf("inet_pton error for %s\n", argv[1]); exit(3); if (connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0) { perror("connect"); exit(4); if (write(sockfd, mesg, strlen(mesg)) < 0) { perror("write"); exit(5); n = read(sockfd, recvline, MAXLINE); if (n < 0) { perror ("read"); exit(6); recvline[n] = '\0' ; if (puts(recvline) == EOF){ perror("puts"); exit(7); close(sockfd); return 0;./a.out 2001:da8:d800:1075::1? "HelloWorld!" IPv6 www GMT 8 HTTP HEAD char mesg[]="hello World!"; char mesg[]="head / HTTP\n\n"; servaddr.sin6_port = htons(7); servaddr.sin6_port = htons(80);./a.out 32001:da8:d800::3
(daytime) ( daytime ) HTTP HEAD / IPv6 TCP Mandrake Linux 6.1 PC Linux 2. TCP IPv6 vim #include <netdb.h> #include <netinet/in.h> #define MAXLINE 1024 char *ipv6addr (struct sockaddr_in6 *sa) { static char string[40]; unsigned char *p, *q = string; int i = 1; for (p = sa->sin6_addr. in6_u. u6_addr8; i<=8; i++) { sprintf (q, "%02x", *p++); q+=2; sprintf (q, "%02x", *p++); q+=2; sprintf (q++, ":"); return string; int tcp_listen (const char *host, const char *serv, socklen_t *addrlenp) { int listenfd, n; const int on = 1; struct addrinfo hints, *res; bzero (&hints, sizeof (struct addrinfo)); hints.ai_flags = AI_PASSIVE; hints.ai_family = AF_INET6; hints.ai_socktype = SOCK_STREAM; n = getaddrinfo (host, serv, &hints, &res); //return 0 on success if (addrlenp == NULL n!= 0) { perror ("getaddrinfo in tcp_listen") ; exit (1); listenfd = socket (res->ai_family, res->ai_socktype, res->ai_protocol); if (listenfd < 0) {
perror ("exception in tcp_listen") ; exit (1); setsockopt (listenfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)); if (bind (listenfd, res->ai_addr, res->ai_addrlen)!= 0) { perror ("exception in tcp_listen"); exit (1); if (res == NULL listen (listenfd, 1024) < 0) { perror ("exception in tcp_listen") ; exit (1); *addrlenp = res->ai_addrlen; //size of protocol address return (listenfd); int main (int argc, char** argv) { int listenfd, connfd; socklen_t addrlen; char buff[maxline]; time_t ticks; struct sockaddr_in6 *cliaddr; if (argc == 3) listenfd = tcp_listen (argv[1], argv[2], &addrlen); else{ printf ("usage: %s <Host_IP> <TCP_Port>\n", argv[0]); exit (1); if ((cliaddr = (struct sockaddr_in6 *) malloc (addrlen)) == NULL) { perror ("malloc"); exit(1); while (1) { connfd = accept(listenfd, cliaddr, &addrlen); printf ("connection from %. 39s\n", ipv6addr(cliaddr)); snprintf (buff, sizeof (buff), "%. 24s\r\n", ctime (&ticks)); write (connfd, buff, strlen (buff)); close (connfd);
IPv6 ADDRESSIPv4 address Alt+Fl./a.out ::1 2000 Alt+F2 telnet 1../telnet ::1 2000 2../telnet ADDRESS 2000 3../telnet address 2000? telnet Alt+Fl./a.out ADDRESS 2000 123 Alt+Fl./a.out ::0 2000 123 a.out Ctrl+c ( connection from )? 3 IPv4 IPv4compatible IPv4mapped? 3. UDP IPv6 vim #include <netdb.h> #include <netinet/in.h> #define MAXLINE 1024 int udp_client (const char *host, const char *serv,struct sockaddr **saptr, socklen_t *lenp) { int sockfd, n; struct addrinfo hints, *res; bzero(&hints, sizeof(struct addrinfo)); hints.ai_family = AF_INET6; hints.ai_socktype = SOCK_DGRAM; if ((n == getaddrinfo(host, serv, &hints, &res))!= 0) { printf ("udp_client error for %s, %s: %s\n", host, serv, gai_strerror (n)); exit (1); sockfd = socket (res->ai_family, res->ai_socktype, res->ai_protocol); if (sockfd < 0) { perror ("exception in udp_client"); exit (1); *saptr = (struct sockaddr *) malloc (res->ai_addrlen); memcpy ((void*) *saptr, res->ai_addr, res->ai_addrlen);
*lenp = res->ai_addrlen; return (sockfd); int main (int argc, char** argv) { int sockfd, n; struct sockaddr *sa; socklen_t salen; char buff[maxline] = "Hello World!"; if (argc == 3) sockfd = udp_client (argv[1], argv[2], &sa, &salen); else{ printf ("usage: %s <Host_IP> <UDP_Port>\n", argv[0]); exit (1); sendto (sockfd, buff, strlen (buff),0,sa, salen); n = recvfrom (sockfd, buff, MAXLINE,0,NULL, NULL); buff[n] = 0; puts (buff); return 0; A TCP(UDP) UDP(TCP) A 23 TCP telnet 23 UDP telnet TCP UDP l 7 TCP UDP 7 UDP./a.out 32001:da8:d800:1075::1 7 1./a.out 32001:da8:d800:1075::1 13
3 IP 3.1 Linux Linux NetSim Cisco 3.2 3.2.1 Linux IP Linux student Linux net2007 network@2007 1 /sbin/ifconfig eth0 IP 2 /sbin/arp n ARP 3 IP ping ICMP echo request 4 ICMP echo reply /sbin/arp n ARP MAC 5 ifconfig 6 /sbin/route n IPv4 IPv4 7/sbin/route n IPv4 ifconfig 8 /etc/sysconfig/network-scripts /ifcfg-eth0 /etc/sysconfig/network /proc/sys/net/ipv4/ip_forward 9 bbs IP ping R [ ] 3.2.2 Cisco IP netsim CCNP Cisco
http://network.ustc.edu.cn/network/scenariolabsccna.rar common PDF Lab 1 Setting up a Serial Interface Lab3 IP Addressing Lab4 Static Route Lab5 Default Routes Lab6 RIP Routes 3.2.2.1 netsim5.31 3routerlab.top http://network.ustc.edu.cn/network/3routerlab.top netmap 3routerlab.top Netsim 3 3 5 erouters RouterA RouterB RouterC eswitchs SwitchA SwitchB SwitchC estations A1 A2 B1 C1 C2 1. 202.38.75.0/24 A 120 B 30 C 60 202.38.75.0/24
2. IP IP 1 3. ping 4. RIP ping 3.2.2.2 Netsim 3.2.2.2.1 NetSim NetSim Boson Cisco NetSim6 NetSim5.31 NetSim http://network.ustc.edu.cn/network/netsimbooki.pdf http://network.ustc.edu.cn/network/netsimbookii.pdf 3.2.2.2.2 NetSim Netsim Netsim
Netsim NetSim NetMap NetMap *.top
3.2.2.2.3 Cisco 1 2.
4 Cisco VLAN 4.1 VLAN 4.2 Interne LAN 1 ISOOSI ISOOSI TCP/IP IP 2 VLAN VLAN VLAN VLAN VLAN VLAN 2VLAN VLAN VLAN VLAN VLAN VLAN MAC VLAN VLAN Interne IP VLAN (1) VLAN VLAN VLAN VLAN
VLAN VLAN (2) MAC VLAN MAC VLAN MAC VLAN VLAN MAC VLAN MAC (3) VLAN VLAN VLAN 3VLAN (1) (2) VLAN VLAN VLAN VLAN VLAN VLAN VLAN (3) (4) 4VLAN VLAN VLAN VLAN VLAN 4.3 netsim5.31 vlan3550.top http://if.ustc.edu.cn/~xltie/vlan3550.top netmap
EEIS1 CS1 SW1 Fastethernet 0/1 Fastethernet 0/12 SW1 SW1 VLAN EEIS1 CS1 1. estations EEIS1 EEIS1 IP 192.168.3.1/24 ip /ip 192.168.3.1 255.255.255.0 2. estations CS1 CS1 IP 192.168.3.2/24 ip /ip 255.255.255.0 3. EEIS1 CS1 EEIS1 CS1 ping EEIS1 CS1 ping SW1 VLANVLAN0010 VLAN0020 SW1 Fastethernet 0/1Fastethernet 0/6 VLAN0010 Fastethernet 0/7Fastethernet 0/12 VLAN0020 EEIS1 CS1 VLAN VLAN EEIS1 CS1 EEIS1 CS1 ping 1. eswitchs SW1 enable 2. vlan database vlan vlan 10 10 VLAN0010 VLAN vlan 20 20 VLAN0020 VLAN exit VLAN
3. configure terminal 4. interface range Fastethernet0/1 6 Fastethernet0/1~ Fastethernet0/6 switchport access vlan 10 VLAN0010 exit 5. interface range Fastethernet0/7 12 Fastethernet0/7~ Fastethernet0/12 switchport access vlan 20 VLAN0020 exit 6. end 7. show running-config 8. copy running-config startup-config 9. EEIS1 CS1 ping ping EEIS1 CS1 VLAN 4.4 1. Catalyst 2950 and Catalyst 2955 Switch Software Configuration Guide configuring vlans 2. Catalyst 2950 and Catalyst 2955 Switch Command Reference 3. Catalyst 3550 Multilayer Switch Software Configuration Guide configuring vlans