Tablica routingu

Teoria i zasady dziażania statycznego routingu zostanż omówione na zajeciach.


Wżżczenie przekazywania pakietów

Dodanie adresu do karty sieciowej tap0 (komunikacja z guest0) na maszynie template:

root@template:~# ip address show dev tap0
4: tap0:  mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
    link/ether ba:0e:84:26:09:45 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::b80e:84ff:fe26:945/64 scope link
       valid_lft forever preferred_lft forever
root@template:~# ip address add 192.168.0.1/24 dev tap0
root@template:~# ip address show dev tap0
4: tap0:  mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
    link/ether ba:0e:84:26:09:45 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.1/24 scope global tap0
    inet6 fe80::b80e:84ff:fe26:945/64 scope link
        valid_lft forever preferred_lft forever
root@template:~#

Dodatkowo (korzystajżc z polecenia pokazanego powyżej):

  • dodaj adres 192.168.1.1 na interfejsie tap1 na maszynie template
  • Wyżżcz konfiguracjż interfejsu mechanizmem wbudowanym w debian
    	root@guest0:~# ifdown eth0
    	
    	root@guest1:~# ifdown eth0
    	
  • dodaj adres 192.168.0.101 na interfejsie eth0 na maszynie guest0
  • dodaj adres 192.168.1.102 na interfejsie eth0 na maszynie guest1
  • Podnież interfejsy tap0 i tap1 na template oraz eth0 na geust0 i guest1:
    	root@template:~# ip link set dev tap0 up
    	root@template:~# ip link set dev tap1 up
    	
    	root@guest0:~# ip link set dev eth0 up
    	
    	root@guest1:~# ip link set dev eth0 up
    	
  • Na maszynie template tablica routingu powinna wyglżdaż tak (z wyjżtkiem ostatniej linii):
    	root@template:~# ip r s
    	default via 192.168.47.2 dev eth0
    	192.168.0.0/24 dev tap0  proto kernel  scope link  src 192.168.0.1
    	192.168.1.0/24 dev tap1  proto kernel  scope link  src 192.168.1.1
    	192.168.47.0/24 dev eth0  proto kernel  scope link  src 192.168.47.133
    	root@template:~#
    	
  • Podnież interfejsy tap0 i tap1:
    	root@template:~# ip link set dev tap0 up
    	root@template:~# ip link set dev tap1 up
    	
  • Dodaj trasż domyżlnż w guest0 i guest1:
    	root@guest0:~# ip route add default via 192.168.0.1
    	
    	root@guest1:~# ip route add default via 192.168.1.1
    	
  • sprawdż czy z guest0 czy dziaża ping do 192.168.1.102
  • wykonaj polecenie opisane poniżej (wżżczenie przekazywania pakietów)
  • po tej modyfikacji sprawdż czy z guest0 czy dziaża ping do 192.168.1.102

Wżżcz przekazywanie pakietów miżdzy interfejsami:

root@template:~# cat /proc/sys/net/ipv4/ip_forward
0
root@template:~# echo "1" > /proc/sys/net/ipv4/ip_forward
root@template:~# cat /proc/sys/net/ipv4/ip_forward
1
root@template:~#

Zadanie:

  • Uruchom na guest0 polecenie, które bżdzie nasżuchiważo na porcie 12345: "nc -l -p 12345".
  • Uruchom na guest1 polecenie, które bżdzie żżczyżo siż na port 12345 na adres 192.168.0.1: "nc 192.168.0.1 12345"
  • Sprawdż czy komunikacja dziaża
  • Kiedy uruchomisz polecenie nasżuchujżce w tle (dodaj & na kożcu), możesz sprawdziż poleceniem "netstat -tn", kto jest pożżczony do serwera - jaki numer IP jest widoczny.
  • Ustaw maskowanie adresów IP i sprawdż kto jaki numer IP jest widocznym podczas polaczenia do nasluchujacego nc.
    	root@template:~# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.0.0/24 -j SNAT --to-source 192.168.0.1
    	root@template:~#
    	
  • Sprawdz czy maszyna guest1 ma dostep do Internetu (dlaczego nie?). Wykonaj translacje adresu zrodlowego w celu maskowania adresu na interfejs maszyny template widoczny na zewnatrz (w tym przykladzie 192.168.47.33 - sprawdz jaki adres ma interfejs eth0 na Twoim template):
    	root@template:~# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 192.168.47.33 
    	root@template:~#
    	
  • Ustaw nc nasluchujace na porcie 12345 na guest0. Z guest1 polacz sie na adres ip guest0 na port 12346. Polaczenie nie udalo sie. Nastepnie wykonaj:
    	root@template:~# iptables -t nat -A PREROUTING -p tcp -d 192.168.0.101 --dport 12345 -j DNAT --to-destination 192.168.0.101:12345
    	root@template:~#
    	
    Co siż stażo?