doc:appunti:net:ipv6_on_ppp
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| doc:appunti:net:ipv6_on_ppp [2024/07/05 12:51] – [IPv6 source address problem] niccolo | doc:appunti:net:ipv6_on_ppp [2024/07/05 15:37] (current) – [Troubleshooting IPv6 problems] niccolo | ||
|---|---|---|---|
| Line 547: | Line 547: | ||
| To give a **persistent addresses** to the client, take note of the DUID received by the server and put it into a **host** section of the server configuration **dhcp6s.conf** (see above). The DUID is composed of a 64 bit random string and the MAC address of the client' | To give a **persistent addresses** to the client, take note of the DUID received by the server and put it into a **host** section of the server configuration **dhcp6s.conf** (see above). The DUID is composed of a 64 bit random string and the MAC address of the client' | ||
| - | ==== IPv6 source | + | FIXME: What to do to protect LAN hosts from the internet? |
| + | |||
| + | ===== MRU and MTU for PPPoE ===== | ||
| + | |||
| + | In Debian GNU/Linux the default configuration file for the **pppd** daemon is **/ | ||
| + | |||
| + | The standard MTU size for Ethernet is 1500 bytes; PPPoE header uses 6 bytes and the PPP protocol ID uses 2 bytes, so the default MTU on a PPPoE interface is **1492** bytes. On the receiving side we don't want to pose restrictions to the peer, so we stay with the 1500 bytes default: | ||
| + | |||
| + | < | ||
| + | debug | ||
| + | mtu 1492 | ||
| + | mru 1500 | ||
| + | </ | ||
| + | |||
| + | During the negotiation phase the **pppd** daemon may receive specific MRU requests from the internet provider, here it is a //debug// log in syslog: | ||
| + | |||
| + | < | ||
| + | pppd[975]: rcvd [LCP ConfReq id=0x1 <mru 1488> <auth pap> <magic 0xd18deef6> | ||
| + | </ | ||
| + | |||
| + | In this case the pppd will configure the **ppp** interface with the requested **1488 MTU**, instead of the 1492 from the configuration file. | ||
| + | |||
| + | ===== IPv6 Prefixes ===== | ||
| + | |||
| + | ^ FE80::/ | ||
| + | ^ FF02:: | ||
| + | ^ FF02:: | ||
| + | ^ FF02:: | ||
| + | |||
| + | |||
| + | ===== Troubleshooting IPv6 problems ===== | ||
| + | |||
| + | In general, to troubleshoot any networking issue, you use the **ping** command to check if the remote address is responding: | ||
| + | |||
| + | < | ||
| + | # ping -6 2a01: | ||
| + | </ | ||
| - | FIXME It was a problem | + | In some cases it is useful also to **ping your own addresses** (you can have more than one). Discover all of them with: |
| < | < | ||
| - | ip -6 address show dev enp0s7 | + | # ip -6 address show dev enp0s7 |
| </ | </ | ||
| Line 565: | Line 601: | ||
| </ | </ | ||
| - | Notice | + | In the example above the interface have two **global** scope addresses, one assigned via DHCPv6 and the other obtained via SLAAC. The first one has the **dadfailed** |
| - | Enabling the DHCPv6 | + | If you have only one global IP address |
| < | < | ||
| + | # ip -6 route show | ||
| + | 2a02: | ||
| + | 2a02: | ||
| + | fe80::/64 dev enp0s7 proto kernel metric 256 pref medium | ||
| + | default via fe80:: | ||
| + | </ | ||
| + | |||
| + | **NOTICE**: The default router can be reached via its **link** scope address (as seen above) or via its **global** scope address: both can be used. | ||
| + | |||
| + | If you sniff the ping request on the router, you can see the problem more clearly: | ||
| + | |||
| + | < | ||
| + | # tcpdump -i eth0 -n ' | ||
| + | ... | ||
| IP6 fe80:: | IP6 fe80:: | ||
| id 56698, seq 1, length 64 | id 56698, seq 1, length 64 | ||
| Line 576: | Line 626: | ||
| </ | </ | ||
| - | The default gateway on the client | + | The client |
| < | < | ||
| - | ip -6 route get 2a01: | + | # ip -6 route get 2a01: |
| 2a01: | 2a01: | ||
| via 2a02: | via 2a02: | ||
| Line 587: | Line 638: | ||
| </ | </ | ||
| - | You can compare the result when the SLAAC is enabled: | + | You can compare the result when you have at least one working global IP address: |
| < | < | ||
| - | ip -6 route get 2a01: | + | # ip -6 route get 2a01: |
| 2a01: | 2a01: | ||
| via fe80:: | via fe80:: | ||
| Line 598: | Line 649: | ||
| </ | </ | ||
| - | In the first case the **src** address is the **link scope** one, not suitable for routing. In the second case it is the one received via SLAAC, which has a **global scope** and indeed it is working. Notice that the address of the router (shown as the **via** address) is not releveant, the //link scope// one does work. | + | In the first case the **src** address is the **link scope** one, not suitable for routing. In the second case it is the one received via SLAAC, which has a **global scope** and indeed it is working. Notice that the address of the router (shown as the **via** address) is not releveant, |
| - | FIXME How to solve? | ||
| - | |||
| - | FIXME: What to do to protect LAN hosts from the internet? | ||
| - | |||
| - | ===== MRU and MTU for PPPoE ===== | ||
| - | |||
| - | In Debian GNU/Linux the default configuration file for the **pppd** daemon is **/ | ||
| - | |||
| - | The standard MTU size for Ethernet is 1500 bytes; PPPoE header uses 6 bytes and the PPP protocol ID uses 2 bytes, so the default MTU on a PPPoE interface is **1492** bytes. On the receiving side we don't want to pose restrictions to the peer, so we stay with the 1500 bytes default: | ||
| - | |||
| - | < | ||
| - | debug | ||
| - | mtu 1492 | ||
| - | mru 1500 | ||
| - | </ | ||
| - | |||
| - | During the negotiation phase the **pppd** daemon may receive specific MRU requests from the internet provider, here it is a //debug// log in syslog: | ||
| - | |||
| - | < | ||
| - | pppd[975]: rcvd [LCP ConfReq id=0x1 <mru 1488> <auth pap> <magic 0xd18deef6> | ||
| - | </ | ||
| - | |||
| - | In this case the pppd will configure the **ppp** interface with the requested **1488 MTU**, instead of the 1492 from the configuration file. | ||
| - | |||
| - | ===== IPv6 Prefixes ===== | ||
| - | |||
| - | ^ FE80::/ | ||
| - | ^ FF02:: | ||
| - | ^ FF02:: | ||
| - | ^ FF02:: | ||
| ===== Web References ===== | ===== Web References ===== | ||
doc/appunti/net/ipv6_on_ppp.1720176680.txt.gz · Last modified: by niccolo
