> For the complete documentation index, see [llms.txt](https://linkmeup.gitbook.io/sdsm/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://linkmeup.gitbook.io/sdsm/11.-mpls-l3vpn/11.1.-mpls-l3vpn-i-dostup-v-internet/1.-vrf-aware-nat/0.-praktika.md).

# Практика

Egress PE в нашем случае — *Linkmeup\_R1*, который является шлюзом в интернет для всей сети linkmeup — никаких абсолютно дополнительных настроек на других узлах.\
Пусть *PC2* из сети C3PO Electronic (*C3PO\_2*) хочет получить доступ в Интернет.\
*PC1 из TARS’ Robotics не трогаем и оставляем без изменений — они со своими белыми адресами — отдельная история, хотя их тоже вполне можно натить таким же образом.*

**1)** Итак, во-первых на *Linkmeup\_R1* должен быть VRF C3PO. Он уже есть, но если бы не было, нужно было бы, чтобы было бы.\
Конфигурация VRF типичная и она не поменялась:

```
Linkmeup_R1(config)#ip vrf C3PO
Linkmeup_R1(config-vrf)#rd 64500:100
Linkmeup_R1(config-vrf)#route-target export 64500:100
Linkmeup_R1(config-vrf)#route-target import 64500:100
```

**2)** Настраиваем NAT\
Включаем **ip nat inside** в ту сторону, откуда получаем пакеты для трансляции, то есть в сторону P-маршрутизатора *Linkmeup\_R2*:

```
Linkmeup_R1(config)#interface FastEthernet 0/1
Linkmeup_R1(config-if)#ip nat inside
```

В сторону Интернета включаем **ip nat outside**:

```
Linkmeup_R1(config)#interface FastEthernet 1/1
Linkmeup_R1(config-if)#ip nat outside
```

Создаём ACL, где разрешаем доступ из сети C3PO в интернет:

```
Linkmeup_R1(config)#access-list 100 permit ip 192.168.0.0 0.0.255.255 any
```

И собственно сам NAT:

```
Linkmeup_R1(config)#$ip nat inside source list 100 interface FastEthernet 1/1 vrf C3PO overload
```

**3)** В BGP, как и в прошлый раз, прописываем отправку маршрута по умолчанию в данный VRF:

```
Linkmeup_R1(config)#router bgp 64500
Linkmeup_R1(config-router)#address-family ipv4 vrf C3PO
Linkmeup_R1(config-router-af)#redistribute static
Linkmeup_R1(config-router-af)#default-information originate
```

> Поосторожней с редистрибьюцией в продакшне. Используй только вместе с фильтрацией.

Заметьте, что здесь недостаточно одной только команды redistribute static, чтобы забрать и анонсировать маршрут по умолчанию. Для этого дополнительно придётся выполнить явно команду **default-information originate**.\
Чтобы этот маршрут анонсировался BGP, нужно, чтобы он был в таблице маршрутизации:

```
Linkmeup_R1(config)#ip route vrf C3PO 0.0.0.0 0.0.0.0 101.0.0.1 global
```

Сейчас сразу не заработает, потому что я слегка слукавил, говоря, что никакие настройки нигде кроме интернет-шлюза не понадобятся.\
Дело в том, что мы сгенерировали маршрут по умолчанию для VRF C3PO на *Linkmeup\_R1* и по BGP передали его на *Linkmeup\_R3*, но тут он и застрял, не дойдя до *C3PO\_2* — нужно заставить OSPF анонсировать маршрут по умолчанию. Как и в предыдущий раз без явной команды **default-information originate** он этого делать не будет:

```
Linkmeup_R3(config)#router ospf 2 vrf C3PO
Linkmeup_R3(config-router)# default-information originate
```

Проверяем:\
![](https://habrastorage.org/getpro/habr/post_images/03c/084/3f3/03c0843f30c324e7c70fb10ff0dd1030.png)\
*Было бы странно, если бы не заработало.*
