# How to route a /56 ipv6 prefix to a vm



## benoitc (May 25, 2022)

I'm trying to route a /56 acquired on the host using BGP. Instead of using a bridge I would like to have full L3 routing internally. For it, I am using a tap between the host and the vm.

What I did for now:

on the host:

```
route -6 -net <prefix>/56 -interface tap0
ifconfig tap0 inet6 <subprefix>::1/64
```

on the guest

```
ifconfig vtnet0 inet6 <subprefix>::2/64
route -6 add default <subprefix>::1
```

Where subprefix is a /64 subnet of the /56 (the first one is :200).

Doing above I can ping each others and ping /beeing pinged from/ an external ip on the guest. But once I want to handle anotther subnet from the /56  on one interface of the vm (say :201), I can't ping it neither one remote host on this subnet can:


```
ifconfig vtnet1 inet6 <subprefix2>::1/64
```

What do I miss on the vm to be able to use the rest of the prefix routed to it?


----------



## SirDice (May 25, 2022)

benoitc said:


> ```
> ifconfig tap0 inet6 <subprefix>::1/64
> ```


Don't assign an address to the tap0 interface on the host side.


----------



## benoitc (May 25, 2022)

SirDice said:


> Don't assign an address to the tap0 interface on the host side.


but then which default gateway should I assign to the  vm?


----------



## benoitc (May 27, 2022)

SirDice I meant , the main goal here is to have the host acting as a router and announce all paths it needs via BGP.  So there would be no bridge there, this is why I figured I had to make it addressable from the guest. What would be the other alternative?


----------

