Just to confirm, with your setup, you expect that a ping of 9000 bytes should be dropped due to the fact that even a single frame of 9000 bytes will surpass the 1 kbps limit you have placed, correct?
Remember that RSVP will reserve bandwidth on an end to end path. With the command you have above, you are reserving 1kbps. That doesn’t mean that anything above that will be dropped. If the link is capable of supporting more than that, it will transmit data at higher rates. That’s why your pings are succeeding.
RSVP mechanisms, like all QoS mechanisms, will only be enabled when there is network congestion. In such cases, priority will be given to those packets conforming to the RSVP commands. Other traffic will be dropped only if congestion on the links doesn’t allow them to pass through. In your case I’m assuming there is no other traffic, so your pings go through successfully.
RSVP requires that each and every router in the intended path participate in reserving the appropriate resources. In order to achieve this, the ultimate receiver, which in this lab is R4, will send a RESV message upstream, all the way back to the original sender, which is R1. R1 will then send an RESV CONFIRM message back downstream all the way to R4.
For this reason, when you look at the debugs of R3 for example, you will indeed see that the RESV is received from R4 first, it is then forwarded to R1 (192.168.12.1). Once R1 receives it, it sends back an RESV CONFIRM message, which reaches R3, and is then forwarde3d to R4. So the order of the events is correct.
R3 can only forward whatever it has received. So it receives the RESV and then sends it. It then receives an RESV CONFIRM and then sends it.
Hmm, I’m not sure why you’re not able to get it working. However, you will find that it’s not possible to directly filter RSVP protocols while capturing. You will have to use the IP protocol type of 0x2e. Take a look at this link from Wireshark (although I see that it is incomplete, it does have some info).
1st cmd issued at interface level (config-if)#ip rsvp bandwidth 128 64 tells the router it must do a 128Kbps BW Reservation ? But what happen if nobody request a RSV PATH MSG ? For example for 10Mbps interface has been configured with this cmd , it means if someone want to forward 10Mbps towards this interface couldn’t do that because there are 128Kbps allocated ?
2 cmd at global config : R1(config)#ip rsvp sender-host 192.168.34.4 192.168.12.1 tcp 23 0 64 32 this cmd emulate a host or in other words R1 behaves as a host requesting a BW reservation for a certain flow ?
3rd cmd at R4 : R4(config)#ip rsvp reservation-host 192.168.34.4 192.168.12.1 tcp 23 0 ff rate 64 32 also R4 behaves as a host but the purpose of this cmd is a kind of confirmation or acknowledgment to R1 request ?
This command configures the following on the interface:
128 Kbps have been allocated for use with RSVP. This is the largest total bandwidth that can be set aside for RSVP purposes.
64 Kbps is the largest bandwidth that can be reserved for a single flow.
So on this setup, you can have a maximum of two flows each of 64 Kbps. Any requests for anything larger or any request after two flows have already been allocated will fail. If nobody requests to reserve bandwidth, nothing will be allocated. These values are the limits set for this path.
Yes, this command is used to make the router act as a host and request bandwidth to be allocated. Note here that typically routers will not do this. This is a specialized command that is used under lab conditions. RSVP hosts are typically workstations, servers, IP phones or other end devices.
Yes, this command simulates another host device, but this time, the one that receives and responds to the RSVP PATH message. Again this is used for simulation and testing purposes and has no functionality in production networks.
To summarize:
The sender-host command is used to simulate a host generating an RSVP PATH message
The reservation-host command is used to simulate a host generating RSP RESV messages