# Przekierowanie ruchu sieciowego pomiędzy kartami sieciowymi

##### Włączenie przekazywania pakietów (IP Forwarding)

Na początku należy sprawdzić konfigurację sysctl

```bash
sudo vim /etc/sysctl.conf
```

i szukamy wpisu:

```bash
net.ipv4.ip_forward = 1
```

Przeładowujemy konfigurację

```bash
sudo sysctl -p
```

[![image.png](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-03/scaled-1680-/d4Mimage.png)](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-03/d4Mimage.png)

i sprawdzamy czy opcja jest aktywna:

```bash
cat /proc/sys/net/ipv4/ip_forward
```

[![image.png](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-03/scaled-1680-/vBfimage.png)](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-03/vBfimage.png)

Jeśli wynik to `1`, przekazywanie pakietów jest włączone.

##### Konfiguracja NAT (SNAT) poprzez **IPTABLES**

```bash
sudo iptables -t nat -I POSTROUTING -p all -s AdresacjaIPskąd ! -d AdresacjaIPdokąd -j SNAT --to-source JakimIPmaWychodzić
```

Przykład z całymi podsieciami:

```bash
sudo iptables -t nat -I POSTROUTING -p all -s 172.18.0.0/29 ! -d 172.18.0.0/29 -j SNAT --to-source 10.95.227.9
```

##### **Co robi ta reguła?**

- **iptables →** komenda którą nanosimy zmiany
- **-t nat →** Modyfikuje tablicę NAT.
- **-I POSTROUTING →** Wstawia regułę do łańcucha POSTROUTING, czyli po podjęciu decyzji o routingu.
- **-p all →** Dotyczy wszystkich protokołów (TCP, UDP, ICMP itp.).
- **-s 172.18.0.0/29 →** Ogranicza regułę do ruchu wychodzącego z tej podsieci.
- **! -d 172.18.0.0/29 →** Nie dotyczy ruchu wewnątrz tej samej podsieci (eliminuje NAT dla ruchu lokalnego).
- **-j SNAT --to-source 10.95.227.9 →** Zamienia źródłowy adres IP na 10.95.227.9, aby umożliwić komunikację z innymi sieciami.

Sprawdzamy czy reguła została dodana:

```bash
sudo iptables -t nat -L -v -n
```

[![image.png](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-03/scaled-1680-/2dcimage.png)](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-03/2dcimage.png)

Zapisujemy konfigurację:

```bash
sudo service iptables save
```

```bash
sudo iptables-save | sudo tee /etc/sysconfig/iptables
```